如何使用FFMPEG强制恒定比特率

如何使用FFMPEG强制恒定比特率,ffmpeg,bitrate,Ffmpeg,Bitrate,我使用FFMPEG(命令行输入)将视频转换为特定的输出格式。我面临的问题是,当我尝试将恒定比特率(700 kbps)传递给FFMPEG时,结果是以不同比特率(比如1000 kbps)输出视频。这种现象在所有视频中都会发生。为什么会发生这种情况?我需要保持恒定的比特率。有人能帮我吗 我的FFMPEG版本是0.5 我要传递给FFMPEG的命令行参数是 -i {inputfile} -b 700k -ab 64k -vcodec libx264 -acodec libfaac -ac 2 -ar 44

我使用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}
编辑:

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

 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}
为什么会发生这种情况?

试试这个:

ffmpeg 
-i input 
-b 1200k 
-minrate 1200k 
-maxrate 1200k 
-bufsize 1200k 
-ab 64k 
-vcodec libx264 
-acodec aac -strict -2 
-ac 2 
-ar 44100 
-s 320x240 
-y output.mp4
必须使用aac而不是libfaac,这需要“-strict-2”

还必须在输出文件名中添加“.mp4”

我将“-y”移到了输出文件名旁边,因为它告诉它覆盖文件,但它似乎在您拥有它的地方也能工作

我是在64位OS X 10.8.4上做的;ffmpeg版本1.2.1-tessus


我看到相同的ffmpeg版本在32位和64位linux系统上的工作方式不同,所以谁知道这是否适用于您。

谢谢您的回答。32位和64位之间的区别是什么?如何区分.mp4文件的视频和音频比特率