为什么FFMPEG会为视频增加额外的比特率?


1

我使用FFMPEG(命令行输入)将我的视频转换为特定的输出格式。我面临的问题是当我尝试将恒定比特率(700 kbps)传递给FFMPEG时,结果是具有不同比特率(例如1000 kbps)的输出视频。所有视频都会出现这种现象。为什么会发生这种情况?我需要保持恒定的比特率。谁能帮我吗。

我的FFMPEG版本是0.5

我传递给FFMPEG的命令行参数是,

-i {inputfile}
-b 700k -ab 64k
-vcodec libx264
-acodec libfaac -ac 2 -ar 44100
-y -s 320x240 
{outputfile}

编辑:

当我使用以下参数时,我能够强制CBR的波动为+/- 3%。

 ffmpeg -i myfile.avi
 -b 4000k -minrate 4000k 
 -maxrate 4000k -bufsize 1835k   out.m2v

但是当我使用-maxrate和 - minrate以及我的参数集时,我无法强制CBR。我的参数设置如下,

-i {inputfile}
-b 1200k -minrate 1200k 
 -maxrate 1200k -bufsize 1200k 
-ab 64k -vcodec libx264
-acodec libfaac -ac 2 -ar 44100
-y -s 320x240 
{outputfile}

为什么会这样?


1
不要忘记您的音频比特率增加了64 kbps。
llogan 2012年

我以为-b交换机已被弃用了。
Marco

@Marco它并没有被弃用,但它确实具有与以往不同的含义:-b用于设置视频比特率,但现在它设置了整体比特率(视频和音频)。要设置视频比特率,您应该更正确地使用-b:v(而-b:a不是-ab)。但这些都不会对提问者特别有帮助。
Evilsoup 2013年

Answers:


1

要强制使用CBR,你应该使用minratemaxrate并且bufsize(见这里

ffmpeg -i myfile.avi
       -b 4000k -minrate 4000k -maxrate 4000k -bufsize 1835k
       out.m2v
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.