FFmpeg工具的简单使用

1 什么是FFmpeg

1.1 简介

FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件)。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多codec都是从头开发的。

FFmpeg提供了强大的命令行工具,非常方便用户使用以及二次开发。

官方网站:http://www.ffmpeg.org/

1.2 组件

FFmpeg项目由以下几部分组成:

1.FFmpeg视频文件转换命令行工具,也支持经过实时电视卡抓取和编码成视频文件;

2.ffserver基于HTTP、RTSP用于实时广播的多媒体服务器.也支持时间平移;

3.ffplay用 SDL和FFmpeg库开发的一个简单的媒体播放器;

4.libavcodec一个包含了所有FFmpeg音视频编×××的库。为了保证最优性能和高可复用性,大多数编×××从头开发的;

5.libavformat一个包含了所有的普通音视格式的解析器和产生器的库。

2 怎么安装FFmpeg

FFmpeg可以在Windows、Linux、Mac OS等多种操作系统环境中进行安装和使用。

1.windows版本下安装ffmpeg工具:

先下载指定(https://ffmpeg.zeranoe.com/builds/) 有Static,Shared,Dev三个版本,

可以下载了static版本(是个zip压缩包),解压到指定目录,去配置环境变量,比如d:\ffmpeg\bin,这样bin下面的ffmpeg.exe就可以在命令行中使用了,可以用ffmpeg -version测试一下:

2.在Linux系统下安装

首先需要安装一些×××:lame、libogg、libvorbis、xvid、x264、libdts、a52、faac、amr-nb、amr-wb、lib52等,可以采用源码安装或者rpm、deb等二进制方式安装,安装步骤较简单,跳过。

上面一切安装成功之后,下面就可以安装FFmpeg了,同样可以采用源码安装或者二进制文件安装两种方式。

以源码安装为例,在http://ffmpeg.mplayerhq.hu/download.html下载最新的源码包,例如下载的是ffmpeg-2.0.tar.gz,将其上传到Linux系统的某一个目录,进入该目录然后执行下面的命令进行安装:

tar –xvf ffmpeg-2.0.tar.gz

cd ffmpeg-2.0

./configure --prefix=/usr --enable-gpl  --enable-shared --enable-libmp3lame --enable-libogg --enable-libvorbis --enable-libamr-nb  --enable-libamr-wb --enable-libxvid --enable-libx264 --enable-liba52 --enable-liba52bin --enable-libfaac --enable-libfaad --enable-libfaadbin --enable-pp --enable-pthreads --disable-ffserver --disable-ffplay

make && make install 

3 怎么使用FFmpeg

ffmpeg相关的命令语法详见附录。

命令行工具的用法

1.1 播放音频

使用ffplay命令就可以播放一个音频文件了,例如执行下面的命令播放一个mp3文件:

ffplay.exe D:\Download\4b.mp3

执行之后就会弹出一个窗口进行播放。

1.2 播放视频

跟播放音频文件类似,播放视频文件的时候,将命令后面的文件改为视频文件的路径即可。例如,播放一个mp4文件,执行如下命令:

ffplay.exe D:\Download\beijing5-360p.mp4

1.3 视频格式转换

将flv转换为mp4格式:

ffmpeg -y -i D:\Download\beijing5-360p.flv -ab 56k -ar 22050 -b:v 500k -r 29.97 -s 640x358D:\Download\beijing5-360p.mp4

参数说明如下:

1.–y表示覆盖输出文件;

2.–i表示输入文件;

3.–ab表示音频数据流量,一般选择32、64、96、128;

4.–ar表示音频采样率,单位为Hz;

5.–b:v表示视频码率;

6.–r表示帧速率,单位为Hz;

7.–s640x358表示帧尺寸,输出的分辨率为640x358;

8.D:\Download\beijing5-360p.flv表示输出的文件。

简单方法为:

ffmpeg -i D:\Download\beijing5-360p.flv D:\Download\beijing5-360p.mp4

格式为:

ffmpeg -i [待转换文件详细地址(包括文件名及文件后缀)] [转换后文件存储地址及文件名及后缀]

1.4 截图

执行如下命令进行截图:

ffmpeg -y -i D:\Download\beijing5-360p.mp4 -ss 165.000 -frames 1 -f p_w_picpath2 D:\Download\p_w_picpaths\cap%3d.jpg

参数说明如下:

1.–y表示覆盖输出文件;

2.–i D:\Download\beijing5-360p.mp4表示输入文件;

3.-ss165.000表示起始时间为165.000秒;

4.-frames1表示只记录一个帧;

5.-fp_w_picpath2表示格式为p_w_picpath2;

6.D:\Download\p_w_picpaths\cap%3d.jpg表示输出文件,%3d类似C语言的数字输出格式,输出为3位数字。

1.5 录制屏幕

ffmpeg录制视频的方法很简单,执行下面的命令:

ffmpeg -f alsa -ac 1-i pulse -acodec aac -f x11grab -s 1024x600 -i :0.0 –sameq a.mp4

这条命令不但可以录制屏幕,还可以录制声音,其中录制声音的部分是:-f alsa -ac 1 -i pulse-acodec aac。录制视频的是: -f x11grab -s1024x600 -i :0.0 –sameq。

 

剪切的同时,格式不变,音视频参数不变:ffmpeg -y -i bjysxyt5.mp4 -ss 00:00:00.0 -t 00:01:00.0 -acodec copy -vcodec copy -async 1 bjysxyt1.mp4
剪切的同时,音视频参数不变,只转换格式:ffmpeg -y -i bjysxyt5.mp4 -ss 00:00:00.0 -t 00:01:00.0 -acodec copy -vcodec copy -async 1 bjysxyt1.flv
剪切的同时,格式不变,只转换音视频参数:ffmpeg -y -i bjysxyt5.mp4 -ss 00:00:00.0 -t 00:01:00.0 -ab 56k -ar 44100 -b:v 2200k -r 29.97 -s 640x360 bjysxyt1.mp4
剪切的同时,既转换格式又转换音视频参数:ffmpeg -y -i bjysxyt5.mp4 -ss 00:00:00.0 -t 00:01:00.0 -ab 56k -ar 44100 -b:v 2200k -r 29.97 -s 640x360 bjysxyt1.flv

说明:-i表示输入文件;-acodec copy -vcodec copy 表示音频、视频不进行编解码,直接复制源视频;-ss表示起始时间,-t表示时长,格式均为“小时:分钟:秒”。

1.7 获取视频信息
 

ffprobe -v quiet -print_format json -show_format -show_streams VIDEO_FILE

其他使用方法参见链接:https://blog.csdn.net/tjhyx2012/article/details/112782327

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时光如昨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值