简介
FFmpeg是一个自由软件,可以运行音频和视频各种格式的录影 转换 流功能,包含了libavcodec–这是一个用于多个项目中音频和视频的解码器库,以及libavformat–一个音频与视频格式转换库.
“FFmpeg”中的”FF”是指”Fast Forward”,这个项目最初是由Fabrice Bellard发起,而现在是由Michael Niedermayer在进行维护.如多FFmpeg的开发者同时也是MPlayer项目的成员,FFmpeg在MPlayer项目中是被设计为服务器版本进行开发.
2011年3月13日,FFmpeg部分开发人士决定另组Libav,同时制定了一套关于项目继续发展和维护的规则.
组成组件
此计划由几个组件组成:
- ffmpeg–一个命令行工具,用来对视频文件转换格式,也支持对电视卡即使编码.
- ffserver–一个HTTP多媒体即时广播流服务器,支持时光平移.
- ffplay–一个简单的播放器,基于SDL和FFmpeg库.
- libavcodec–包含全部FFmpeg音频/视频编解码库.
- libavformat–包含demuxers和muxer库
- libavutil–包含一些工具库
- libpostproc–对于视频做前处理的库
- libswscale–对于视频做缩放的库
参数
FFmpeg可使用众多参数,参数内容会根据ffmpeg版本而有差异,使用前建议先参考参数及编解码器的叙述.此外,参数明细可用ffmpeg -h显示;编解码器名称等明细可用ffmpeg -formats显示.
下列为较常使用的参数:
主要参数
- -i –设置输入档名.
- -f –设置输出可是.
- -y –若输出巍峨见已存在时则覆盖文件.
- -fs –超过指定的文件大小时则结束转换.
- -ss –从指定时间开始转换.
- -t从-ss时间开始转换(如-ss 00:00:01.00 -t 00:00:10.00即从00:00:01.00开始到00:00:11.00).
- -title –设置标题.
- -timestamp –设置时间戳.
- -vsync –增减Frame使影音同步.
视频参数
- -b:v –设置视频流量,默认为200Kbit/秒.
- -r –设置帧率值,默认为25.
- -s –设置画面的宽与高.
- -aspect –设置画面的比例.
- -vn –不处理视频,在仅针对声音做处理时使用.
- -vcodec(-c:v) –设置视频编解码器,未设置时则使用与输入巍峨见相同之编解码器.
声音参数
- -b:a设置每Channel的流量.
- -ar –设置采样率.
- -ac –设置声音的Channel数.
- acodec (-c:a) –设置声音编解码器,未设置时与视频相同,使用与输入文件相同的编解码器.
- -an –不处理声音,在仅针对视频做处理时使用.
- -vol –不设置音量大小,256为标准音量.(要设置成两倍音量时输入512,以此类推).
样例
ffmpeg -i in.mp4 out.yuv
ffmpeg -i in.mp4 -pix_fmt nv21 out.yuv
fmpeg –s w*h –pix_fmt yuv420p –i input.yuv –vcodec mpeg4 output.avi
ffmpeg.exe -ss 0:0:0 -t 0:0:2 -i test.mp4 -vcodec copy -acodec copy output.mp4
for /r %%a in (*.yuv) do ffmpeg -pix_fmt yuv420p -s 720*640 -i %%~nxa -o %%~na.jpg
ffmpeg.exe -s 1920*1088 -pix_fmt nv21 -ss 0:0:0 -t 0:0:2 -i output.yuv -pix_fmt nv12 out_yuwen.yuv
ffmpeg.exe -pix_fmt yuv420p -s 1280*720 -i out.yuv -vframes 30 -s 128*128 out.yuv