【问题标题】:How to force Constant Bit Rate using FFMPEG如何使用 FFMPEG 强制恒定比特率
【发布时间】:2012-06-10 03:34:27
【问题描述】:

我使用 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 bitrate


    【解决方案1】:

    试试这个:

    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 系统上的工作方式不同,所以谁知道这是否适合你。

    【讨论】:

    猜你喜欢
    • 2016-10-12
    • 2018-06-11
    • 1970-01-01
    • 2017-08-14
    • 1970-01-01
    • 2017-10-21
    • 2017-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多