fMP4、hvc1 或 hev1 使用什么 HEVC 编解码器标签?

jms*_*msn 8 video-streaming http-live-streaming hevc mpeg-dash fmp4

将 HEVC 视频复用到分段 MP4 以使用 MPEG-DASH/HLS 进行流式传输时,如何选择要使用的正确编解码器标签(hvc1或)?hev1

我认为根据标签的不同,复用略有不同ISO/IEC FDIS 14496-15

当示例条目名称为“hvc1”时,对于所有类型参数集的数组,array_completeness 的默认强制值为 1,对于所有其他数组,默认强制值为 0。当样本条目名称为“hev1”时,所有数组的 array_completeness 默认值为 0。

除了这个还有别的吗?

为什么有两个标签,在这两个标签之间选择的标准是什么?

旁注:出于某种原因, Apple 更喜欢hvc1根据其HLS 创作规范。

Mar*_*ann 12

“hvc1”将所有参数集存储在示例描述框下方的 MP4 容器内。“hev1”存储带内(HEVC 流内)的所有参数集。

参数集本质上是解码流所需的强制元数据。

因此,您有两种略有不同的方法将 HEVC 混合到 MP4 中。

我会根据播放和运输场景进行选择。

您的播放器或传输规范可能需要其中之一。

  • 苹果的QuickTime(Mac OS Big Sur)似乎不能播放hev1,但hvc1可以播放文件 (6认同)
  • 我认为“hev1”甚至支持带内和带外参数集。请参阅“ISO/IEC FDIS 14496-15:2019(E)”的“8.3.2”部分。 (2认同)