0

示例命令:

-map 0:0 -f mp4 -vcodec libx264 -preset slow -profile:v main -vf scale="640:trunc(ow/a/2)*2" -vb 700k -minrate 650k -maxrate 750k -bufsize 10000k -an -g 48 -x264opts keyint=48:min-keyint=10:scenecut=40 -flags +cgop -sc_threshold 40 -pix_fmt yuv420p -threads 0 -y

编码没有错误,但我想了解以下几点-

1)上面的命令会保证GOP大小的范围是{10,48},如果任何场景变化值(frame1到fame2)>40%,那么那里引入了关键帧?

2) 这意味着在 3 小时的源视频中,不能保证 GOP 大小将保持不变

3) 不考虑,我正在创建 7 个 MP4 文件,每个文件具有不同的比特率和分辨率。(这些 Mp4 将在后期进行编码以进行平滑处理)。因此,我的目标是自适应流媒体。但是当我这样做时,我发现如果 GOP 大小在每个比特率之间不一致。我的意思是,例如:如果在 Bitrate1 - GOP 大小像 10、20、48 等等,在其他比特率中它不是相同的序列。我希望我的问题是有道理的。

那么有没有一种方法可以确保 GOP 的大小可能会因单个输出而异。但如果源相同,它应该在每个比特率上保持一致吗?

也适用于自适应流 场景切换检测是否可取?

4

1 回答 1

0

您在 1) 和 2) 点上是对的,但在您的第 3) 点中,您说您正在更改比特率和视频分辨率。事实上,当将 x264 用于 ABR 时,保持所有编码使用相同 GOP 结构的唯一方法是(3 种可能性):

  • 只改变比特率,就可以了
  • 使用两步方法,--pass 1以最大分辨率和比特率(我认为更快......)运行编码,写出一个统计文件,然后通过重新使用这个统计文件来处理所有不同的比特率和分辨率--pass 3
  • --scenecut -1使用固定 GOP禁用场景切换检测并进行编码。
于 2014-03-24T15:59:20.023 回答