我正在尝试使用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 Video(使用命令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.WTF?那甚至不是很接近!
我已经尝试过更改这么多参数并添加大量不同的东西,我花了两天时间用Google搜索,但我似乎无法让它工作.如果我使用MainConcept H.264编码器对视频进行编码,我可以得到一个恒定的比特率,但我需要这个来使用ffmpeg.
如果有人可以帮我弄清楚如何用FFmpeg进行CBR H.264编码,我会永远爱你!