场景检测和一致的GOP大小自适应流



命令示例:

-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大小在单个输出中变化。但是如果源是相同的,那么每个比特率应该是一致的。

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

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

  • 只改变比特率,就可以了
  • 使用两步方法,用--pass 1运行编码,以最大分辨率和比特率(我认为更快…)写出一个统计文件,然后通过--pass 3重新使用这个统计文件用于所有不同的比特率和分辨率
  • --scenecut -1禁用场景切割检测,用固定GOP编码。

相关内容

  • 没有找到相关文章

最新更新