我使用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}
Run Code Online (Sandbox Code Playgroud)
编辑:
当我使用以下参数时,我能够强制CBR的波动为+/- 3%.
ffmpeg -i myfile.avi
-b 4000k -minrate 4000k
-maxrate 4000k -bufsize 1835k out.m2v
Run Code Online (Sandbox Code Playgroud)
但是当我使用-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}
Run Code Online (Sandbox Code Playgroud)
为什么会这样?
ox.*_*ox. 12
试试这个:
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
Run Code Online (Sandbox Code Playgroud)
不得不使用aac而不是libfaac,这需要"-strict -2".
还必须在输出文件名中添加".mp4".
我在输出文件名旁边移动了"-y",因为它告诉它覆盖文件,但它似乎也适用于你拥有它的地方.
我是在64位OS X 10.8.4上做到的; ffmpeg版本1.2.1-tessus.
我已经看到相同的ffmpeg版本在32位和64位Linux系统上的工作方式不同,所以谁知道这对你有用.
| 归档时间: |
|
| 查看次数: |
44255 次 |
| 最近记录: |