我正在做一个项目,我们正在拼接 HLS 视频片段。HLS 标准方便地包含一个 #EXT-X-DISCONTINUITY 指令,用于发出信号,表示播放器应该准备好播放具有不同 SPS 或 PPS 的视频(编码分辨率的变化将保证您需要这样的东西)。
在苹果 iPad 上,混合流播放良好。
不幸的是,我们瞄准的设备未能实现 HLS 规范的这一部分。我们已经确定这两个剪辑可以在设备上独立播放,但当它们属于同一个 HLS 流时,设备就会出现故障(拒绝渲染任何辅助剪辑,并在从主剪辑返回媒体后恢复渲染)。
现在,我们正在考虑重新编码其中一个剪辑,以匹配我们控制力较弱的剪辑。我已经能够使用如何使用 ffmpeg 设置 h.264 配置文件级别?
现在我需要协调 log2_max_frame_num_minus4。我该如何告诉 ffmpeg 使用 5 作为这个值?
答案1
不行。你必须重新编程 x264(H.264 编码器)才能做到这一点。
您确实必须进入源代码(encoder/set.c
)并对其进行硬编码,因为我不相信任何人曾打算设置该值。
或者您手动修复 SPS 中与该值相对应的字节,但可能会破坏 H.264 语法(当然,因为其他参数依赖于该值)。