不一致的 libx264 I 帧间隔。为什么?

Inconsistent libx264 I-frame interval. Why?

为什么I帧间隔定义为固定值,但在某些情况下却不一致?

我正在使用 ffmpeg 和下面的命令,而 I 帧 coded_picture_number 如下所示:0 10 20 30 38 47 57 ... 196 206 215 225 235 245 255

ffmpeg -i football.y4m -c:v libx264 -bf 0 -g 10 football.mp4

有问题的视频数据是footbal (b) at xiph.org

如果编码器计算出它在比特率方面的成本更低,它仍然可以更早地放置关键帧。如果是这样,下一个 KF 将被放置在距过早关键帧 10 帧的位置。

要抑制该行为,请使用

ffmpeg -i football.y4m -c:v libx264 -bf 0 -g 10 -x264opts scenecut=0 football.mp4