最新参数以官方文档为准。本文档中部份参数可能已过时
列表参数是通过互联网收集整理,如参数在实际使用过程中存在问题,请移步:https://ffmpeg.org/ffmpeg.html 查看官方文档说明
基础选项
|
参数名 |
描述 |
|
-L |
license |
|
-h |
帮助 |
|
-fromats |
显示可用的格式,编解码的,协议的... |
|
-f |
fmt 强迫采用格式fmt |
|
-I |
filename 输入文件 |
|
-y |
覆盖输出文件 |
|
-c |
[: stream_specifier ] codec (* input/output,per-stream *) |
|
-t |
duration 设置纪录时间 hh:mm:ss[.xxx]格式的记录时间也支持, 例如: 指定操作的持续时间("-t 0.01"相当于取原视频中的第10s~10.01秒) , 一般用于截取视频使用, 而不是用在截图上. |
|
-i |
输入您要处理的视频文件路径,例如:ffmpmg -i pingcap-xxx.mp4 |
|
-fs |
设置文件大小上限 |
|
-ss |
position 搜索到指定的时间 [-]hh:mm:ss[.xxx]的格式也支持, 是指视频*放播**的时间进度 |
|
-title |
string 设置标题 |
|
-author |
string 设置作者 |
|
-copyright |
string 设置版权 |
|
-comment |
string 设置评论 |
|
-timestamp |
时间戳 |
|
-album |
album名 |
|
-v |
与log相关的 |
|
-target |
type 设置目标文件类型(vcd,svcd,dvd) 所有的格式选项(比特率,编解码以及缓冲区大小)自动设置, 只需要输入如下的就可以了:ffmpeg -i myfile.avi -target vcd /tmp/vcd.mpg |
|
-hq |
激活高质量设置 |
|
-itsoffset |
offset 设置以秒为基准的时间偏移,该选项影响所有后面的输入文件。该偏移被加到输入文件的时戳,定义一个 正偏移意味着相应的流被延迟了 offset秒。 [-]hh:mm:ss[.xxx]的格式也支持 |
|
-dframes |
设置要记录的帧数 |
视频选项
常规参数
|
参数名 |
描述 |
|
-b |
bitrate 设置比特率,缺省200kb/s |
|
-bitexact |
使用标准比特率 |
|
-r |
帧速率(fps 设置帧频 缺省25,可以改,确认非标准桢率会导致音画不同步,所以只能设定为15或者29.97) |
|
-s |
size 设置帧大小 格式为WXH 缺省160X128.下面的简写也可以直接使用:Sqcif 128X96 qcif 176X144 cif 252X288 4cif 704X576 |
|
-aspect |
aspect 设置横纵比 4:3 16:9 或 1.3333 1.7777 |
|
-croptop |
设置顶部切除尺寸(in pixels) |
|
-cropbottom |
设置底部切除尺寸(in pixels) |
|
-cropleft size |
设置左切除尺寸 (in pixels) |
|
-cropright size |
设置右切除尺寸 (in pixels) |
|
-padtop |
设置顶部补齐尺寸(in pixels) 像素单位 |
|
-padbottom |
size –padleft size –padright size –padcolor color 设置补齐条颜色(hex,6个16进制的数,红:绿:兰排列,比如 000000代表黑色) |
|
-padleft size |
左补齐(in pixels) |
|
-padright size |
右补齐(in pixels) |
|
-padcolor color |
补齐带颜色(000000-FFFFFF) |
|
-vn |
不做视频记录(取消视频) |
|
-bt |
tolerance 设置视频码率容忍度kbit/s |
|
-maxrate |
bitrate设置最大视频码率容忍度 |
|
-minrate |
bitreate 设置最小视频码率容忍度 |
|
-bufsize |
size 设置码率控制缓冲区大小 |
|
-vcodec |
codec 强制使用codec编解码方式。 如果用copy表示原始编解码数据必须被拷贝。 |
|
-sameq |
使用同样视频质量作为源(VBR) |
|
-pass |
n 选择处理遍数(1或者2)。两遍编码非常有用。第一遍生成统计信息,第二遍生成精确的请求的码率 |
|
-passlogfile |
file 选择两遍的纪录文件名为file |
|
-vb |
指定视频比特率(bits/s) |
|
-vframes number |
设置转换多少桢(frame)的视频 |
|
-newvideo |
在现在的视频流后面加入新的视频流 |
高级参数
|
参数名 |
描述 |
|
-g |
gop_size 设置图像组大小 |
|
-intra |
仅适用帧内编码 |
|
-qscale |
q 使用固定的视频量化标度(VBR) |
|
-qmin |
q 最小视频量化标度(VBR) |
|
-qmax |
q 最大视频量化标度(VBR) |
|
-qdiff |
q 量化标度间最大偏差 (VBR) |
|
-qblur |
blur 视频量化标度柔化(VBR) |
|
-qcomp |
compression 视频量化标度压缩(VBR) |
|
-rc_init_cplx |
complexity 一遍编码的初始复杂度 |
|
-b_qfactor |
factor 在p和b帧间的qp因子 |
|
-i_qfactor |
factor 在p和i帧间的qp因子 |
|
-b_qoffset |
offset 在p和b帧间的qp偏差 |
|
-i_qoffset |
offset 在p和i帧间的qp偏差 |
|
-rc_eq |
equation 设置码率控制方程 默认tex^qComp |
|
-rc_override |
override 特定间隔下的速率控制重载 |
|
-me |
method 设置运动估计的方法 可用方法有 zero phods log x1 epzs(缺省) full |
|
-dct_algo |
algo 设置dct的算法 可用的有 0 FF_DCT_AUTO 缺省的DCT 1 FF_DCT_FASTINT 2 FF_DCT_INT 3 FF_DCT_MMX 4 FF_DCT_MLIB 5 FF_DCT_ALTIVEC |
|
-idct_algo |
algo 设置idct算法。可用的有 0 FF_IDCT_AUTO 缺省的IDCT 1 FF_IDCT_INT 2 FF_IDCT_SIMPLE 3 FF_IDCT_SIMPLEMMX 4 FF_IDCT_LIBMPEG2MMX 5 FF_IDCT_PS2 6 FF_IDCT_MLIB 7 FF_IDCT_ARM 8 FF_IDCT_ALTIVEC 9 FF_IDCT_SH4 10 FF_IDCT_SIMPLEARM |
|
-er |
n 设置错误残留为n 1 FF_ER_CAREFULL 缺省 2 FF_ER_COMPLIANT 3 FF_ER_AGGRESSIVE 4 FF_ER_VERY_AGGRESSIVE |
|
-ec |
bit_mask 设置错误掩蔽为bit_mask,该值为如下值的位掩码 1 FF_EC_GUESS_MVS (default=enabled) 2 FF_EC_DEBLOCK (default=enabled) |
|
-bf |
frames 使用frames B 帧,支持mpeg1,mpeg2,mpeg4 |
|
-mbd |
mode 宏块决策 0 FF_MB_DECISION_SIMPLE 使用mb_cmp 1 FF_MB_DECISION_BITS 2 FF_MB_DECISION_RD |
|
-4mv |
使用4个运动矢量 仅用于mpeg4 |
|
-part |
使用数据划分 仅用于mpeg4 |
|
-bug |
param 绕过没有被自动监测到编码器的问题 |
|
-strict |
strictness 跟标准的严格性 |
|
-aic |
使能高级帧内编码 h263+ |
|
-umv |
使能无限运动矢量 h263+ |
|
-deinterlace |
不采用交织方法 |
|
-interlace |
强迫交织法编码仅对mpeg2和mpeg4有效。当你的输入是交织的并且你想要保持交织以最小图像损失的时候采用该选项。 可选的方法是不交织,但是损失更大 |
|
-pix_fmt |
format set pixel format, 'list' as argument shows all the pixel formats supported |
|
-psnr |
计算压缩帧的psnr |
|
-vstats |
输出视频编码统计到vstats_hhmmss.log |
|
-vhook |
module 插入视频处理模块 module 包括了模块名和参数,用空格分开 |
|
-intra |
仅适用帧内编码 |
|
-qscale |
q 以<数值>质量为基础的VBR,取值0.01-255,约小质量越好 |
|
-loop_input |
设置输入流的循环数(目前只对图像有效) |
|
-loop_output |
设置输出视频的循环数,比如输出gif时设为0表示无限循环 |
|
-g |
int 设置图像组大小 |
|
-cutoff |
int 设置截止频率 |
|
-qmin |
int 设定最小质量,与-qmax(设定最大质量)共用,比如-qmin 10 -qmax 31 |
|
-qmax |
int 设定最大质量 |
|
-qdiff |
int 量化标度间最大偏差 (VBR) |
|
-bf |
int 使用frames B 帧,支持mpeg1,mpeg2,mpeg4 |
音频选项
|
参数名 |
描述 |
|
-ab |
设置比特率(单位:bit/s,也许老版是kb/s)前面-ac设为立体声时要以一半比特率来设置,比如192kbps的就设成96, 转换 默认比特率都较小,要听到较高品质声音的话建议设到160kbps(80)以上。 |
|
-ar |
设置音频采样率 (单位:Hz),PSP只认24000 |
|
-ac |
设置声道数,1就是单声道,2就是立体声,转换单声道的TVrip可以用1(节省一半容量),高品质的DVDrip就可以用2, 缺省为1 |
|
-an |
取消音频 |
|
-acodec |
指定音频编码('copy' to copy stream) |
|
-aframes |
设置转换多少桢(frame)的音频 |
|
-aq |
设置音频质量 (指定编码) |
|
-vol volume |
设置录制音量大小(默认为256) <百分比> ,某些DVDrip的AC3轨音量极小,转换时可以用这个提高音量,比如200就是原来的2倍 |
|
-newaudio |
在现在的音频流后面加入新的音频流 |
字幕选项
|
参数名 |
描述 |
|
-sn |
取消字幕 |
|
-scodec codec |
设置字幕编码('copy' to copy stream) |
|
-newsubtitle |
在当前字幕后新增 |
|
-slang code |
设置字幕所用的ISO 639编码(3个字母) |
音频/视频捕获选项
常规参数
|
参数名 |
描述 |
|
-vd |
device 设置视频捕获设备。比如/dev/video0 |
|
-vc |
channel 设置视频捕获通道 DV1394专用 |
|
-tvstd |
standard 设置电视标准 NTSC PAL(SECAM) |
|
-dv1394 |
设置DV1394捕获 |
|
-av |
device 设置音频设备 比如/dev/dsp |
高级参数
|
参数名称 |
描述 |
|
-map |
file:stream 设置输入流映射 |
|
-debug |
打印特定调试信息 |
|
-benchmark |
为基准测试加入时间 |
|
-hex |
倾倒每一个输入包 |
|
-bitexact |
仅使用位精确算法 用于编解码测试 |
|
-ps |
size 设置包大小,以bits为单位 |
|
-re |
以本地帧频读数据,主要用于模拟捕获设备 |
|
-loop |
循环输入流(只工作于图像流,用于ffserver测试) |
示例1
# 示例1
ffmpeg*ex.e** 10 -i possible.mkv test.jpg
# 示例2
ffmpeg*ex.e** -ss 10 -i possible.mkv -y -f image2 -t 0.01 0.jpg
# 示例3
ffmpeg*ex.e** -ss 00:00:10 -i possible.mkv -y -f image2 -frames:v 1 test.jpg
-i: 选择输入文件, 如"-i possible.mkv"是指定ffmpeg*ex.e**输入的媒体文件为possible.mkv -ss: 选择开始时间, 如"-ss 10"是将视频指向10秒, 也就是从10秒开始 -y: 强制覆盖文件(防止因为重名出错) -f: 指定输出的文件格式, 如"-f image2" -t: 指定操作的持续时间("-t 0.01"相当于取原视频中的第10s~10.01秒), 一般用于截取视频使用, 而不是用在截图上.
"-frames:v 1" for a single image 用于替换-t选项, 上面的-t选项在截图中使用是不合理的. 该操作可以指定1张图片 test.jpg // 为输出文件
示例2
ffmpeg -i ${input_video} -vcodec copy -an -f flv rtmp://${server}/live/${streamName}
- -vcodec : 指定视频解码器, v 是指视频(video), code 指解码器,后面跟解码器名称, copy 表示不作解码;
- -acodec: 指音频解码器, a 是指音频(audio), 后面跟解码器名称,an 代表 audio none , node 代表去掉音频。