我正在尝试将带有 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 编码,我会永远爱你!