FFmpeg中文版是一款开源免费的音视频编辑处理工具,采用LGPL或GPL许可证打造,并能够提供强大的命令行工具与录制、转换、流化音视频的一站式解决方案,以帮助用户轻松记录、转换数字音频、视频,并能将其转化为流。
FFmpeg内置了先进的音频/视频编解码库libavcodec,使用它不仅能够记录、转换数字音频,还能够其转化为流的开源计算机程序,此外更是提供了屏幕录制、直播应用安全下载等功能,有需求的朋友可以前来下载。
1、视频采集
ffmpeg视频采集功能非常强大,不仅可以采集视频采集卡或USB摄像头的图像,还可以进行屏幕录制,同时还支持以RTP方式将视频流传送给支持RTSP的流媒体服务器,支持直播应用。
2、视频格式转换
视频格式转换,比如可以将多种视频格式转换为flv格式,可不是视频信号转换 。
ffmpeg可以轻易地实现多种视频格式之间的相互转换(wma,rm,avi,mod等),例如可以将摄录下的视频avi等转成视频网站所采用的flv格式。
3、视频截图
对于选定的视频,截取指定时间的缩略图。视频抓图,获取静态图和动态图,不提倡抓gif文件;因为抓出的gif文件大而播放不流畅。
4、给视频加水印
使用ffmpeg 视频添加水印(logo)。
1、音频转换
ffmpeg -i my_audio.wav my_audio.mp3-i 后为要转换的音频文件,my_audio.mp3为目的音频文件
2、视频转换
ffmpeg -i my_video.mpeg -s 500×500 my_video.flv-i 后为源视频文件,-s 表示设置目标视频文件的分辨率 my_video.flv为目的视频文件
3、从视频中截取图片
ffmpeg -i test.mpg image%d.jpg默认1s截取25张图片,可以通过-r设置每秒截取的图片数量
-r fps 设置帧率,也就是每秒截取图片的数量(默认25)
ffmpeg -i test.mpg -r 1 image%d.jpg这样子每1s截取1张图片
还可以设置截取间隔,起止
-ss 设定时间位置,语法:hh:mm:ss[.xxx]
-t 时长:限制转码/捕获视频的时间,语法:hh:mm:ss[.xxx]
ffmpeg -i test.mpg -r 25 -ss 00:00:10 -t 00:00:05 images%05d.png在第10秒开始,以每秒截取25张图片的速度,截取5秒时长的图片
4、从视频中截取音频
ffmpeg -i video.avi -f mp3 audio.mp3-f 强制选择格式
ffmpeg -i video.avi -vn audio.mp3-vn 取消截取视频(也就是只输出音频文件)
5、创建截屏视频
ffmpeg -f x11grab -r 25 -s wxga -i :0.0 /tmp/outputFile.mpg0.0 是你X11 server的屏幕显示号吗,和DISPLAY一样样的.
此条命令以每秒25帧的速率来截取wxga屏幕视频,当然这里可以用-s 来设置视频分辨率,输出文件是/tmp/outputFile.mpg
6、用图片制作视频
ffmpeg -f image2 -i img%d.jpg /tmp/a.mpg
将`img001.jpg’,`img002.jpg'这种顺序排列的图片文件转制作为视频
7、从webcam中截取视频
ffmpeg -f video4linux2 -s 320x240 -i /dev/video0 out.mpg
同时截取音频和视频:
ffmpeg -f oss -i /dev/dsp -f video4linux2 -s 320x240 -i /dev/video0 out.mpg
/dev/video0为视频设备 /dev/dsp为音频设备
-c:指定编码器
-c copy:直接复制,不经过重新编码(这样比较快)
-c:v:指定视频编码器
-c:a:指定音频编码器
-i:指定输入文件
-an:去除音频流
-vn:去除视频流
-preset:指定输出的视频质量,会影响文件的生成速度,有以下几个可用的值 ultrafast,superfast,veryfast,faster,fast,medium,slow,slower,veryslow。
-y:不经过确认,输出时直接覆盖同名文件。
一、下载FFmpeg
二、下载好后解压到你想安装的文件目录下
我的安装目录是D:\dev\app\ffmpeg-win64
三、配置FFmpeg环境变量,如下:
先进入bin目录获取路径:D:\dev\app\ffmpeg-win64\bin
打开系统开始菜单--右击计算机--点击属性--选中高级系统设置--选择高级--选择环境变量设置
在系统变量里选择path,选择编辑,将FFmpeg的bin目录的路径D:\dev\app\ffmpeg-win64\bin;加进去,记得加上分号,点击“确定”保存,即配置完成。
四、使用命令行窗口检验是否安装成功
调用命令行(windows+R输入cmd)输入“ffmpeg –version”,如果出现如下说明配置成功。
接下来我们就可以在命令提示行中任意文件夹下运行FFmpeg。
1、在命令行中输入ffmpeg -i (你的视频地址) -r (帧数)-vcodec bmp (你要放图片的文件夹)\%04d.bmp(可以选择图片格式)
2、转换视频为图片
3、转换完成
ffmpeg工具主要用途为编码、解码、转码,常用ffmpeg做的为转码操作,使用ffmpeg转码主要原理为:
如果转码操作则涉及到封装的改变,从而可以通过设置AVCodec与AVFormat的操作参数进行封装与编码的改变,下面举一个例子:
从图中可以看到:
1、转封装格式从rmvb格式转为mp4;
2、视频编码从rv40转为mpeg4;
3、视频码率从原来的377 kb/s 转为 200 kb/s;
4、视频帧率从原来的 23.98 fps转为 15 fps
可以分析出,这个例子的流程与前面提到的流程相同,首先解封装,需要解的封装为rmvb,然后解码,其中视频编码为rv40,音频编码为cook;然后解码后的视频编码为mpeg4,然后封装为一个没有音频的mp4文件。