【发布时间】:2011-10-30 19:49:42
【问题描述】:
我正在尝试将使用 ffmpeg 的视频编码为具有恒定比特率的 H.264(通过 libx264 库)。我知道,我知道,VBR 通常是首选,但对于这个特定的工作,我需要使用 CBR(只要它每秒这么多千字节;它不必是每帧的精确千字节,afaik) .我用来测试的示例视频来自这里:http://a1408.g.akamai.net/5/1408/1388/2005110403/1a1a1ad948be278cff2d96046ad90768d848b41947aa1986/sample_iTunes.mov.zip(来自http://support.apple.com/kb/HT1425)
使用 MPEG-4 视频(使用命令ffmpeg -i sample_iTunes.mov -b 819968 -minrate 819968 -maxrate 819968 out.mov)对视频进行编码时,我可以获得恒定的比特率,并且比特率符合预期。通过 QuickTime Inspector 阅读视频的规格,它的数据速率为 844.94 kbit/s。很酷。
但是,当我将编解码器更改为 libx264 时,它似乎完全忽略了我的比特率请求!我正在尝试的命令是“ffmpeg -i sample_iTunes.mov -vcodec libx264 -vpre medium -b 819968 -vb 819968 -minrate 819968 -maxrate 819968 -bufsize 400000 test.mov”。但是当我通过 QuickTime Inspector 检查视频规格时,它的数据速率为 254.74 kbit/s。怎么回事?那还差得远!
我尝试过更改这么多参数并添加大量不同的东西,我花了 2 天时间在谷歌上搜索,但我似乎无法让它工作。如果我使用 MainConcept H.264 编码器对视频进行编码,我可以获得恒定的比特率,但我需要它才能与 ffmpeg 一起使用。
如果有人能帮我弄清楚如何使用 FFmpeg 进行 CBR H.264 编码,我会永远爱你!
【问题讨论】: