Ffmpeg

 

简介

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