压缩的 DASH 清单 - Amazon Elemental MediaPackage

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

压缩的 DASH 清单

压缩 DASH 清单的功能仅适用于 AWS Elemental MediaPackage 中的实时工作流程。

AWS Elemental MediaPackage 中的默认 DASH 清单包括有关每个表示形式(轨道)的重复数据。对于某些播放器,处理具有所有这类数据的清单的过程很困难且很慢。为减少一些负担,MediaPackage 可以通过将某些属性从Representation对象执行AdaptationSet对象。这样,不必为清单中的每种表示形式定义属性,而是在更高级别定义这些属性一次。然后,表示形式从自适应集继承这些属性。

例 默认 DASH 清单

在以下示例中,每个 Representation. 中都列出了 SegmentTemplate 对象及其所有元素。清单中的每个自适应集都具有相同的布局:

<AdaptationSet mimeType="video/mp4" segmentAlignment="true" subsegmentAlignment="true" startWithSAP="1" subsegmentStartsWithSAP="1" bitstreamSwitching="true"> <Representation id="1" width="640" height="360" frameRate="30/1" bandwidth="749952" codecs="avc1.640029"> <SegmentTemplate timescale="30000" media="index_video_1_0_$Number$.mp4?m=1543947824" initialization="index_video_1_0_init.mp4?m=1543947824" startNumber="1"> <SegmentTimeline> <S t="62000" d="60000" r="9"/> </SegmentTimeline> </SegmentTemplate> </Representation> <Representation id="2" width="854" height="480" frameRate="30/1" bandwidth="1000000" codecs="avc1.640029"> <SegmentTemplate timescale="30000" media="index_video_3_0_$Number$.mp4?m=1543947824" initialization="index_video_3_0_init.mp4?m=1543947824" startNumber="1"> <SegmentTimeline> <S t="62000" d="60000" r="9"/> </SegmentTimeline> </SegmentTemplate> </Representation> <Representation id="3" width="1280" height="720" frameRate="30/1" bandwidth="2499968" codecs="avc1.640029"> <SegmentTemplate timescale="30000" media="index_video_5_0_$Number$.mp4?m=1543947824" initialization="index_video_5_0_init.mp4?m=1543947824" startNumber="1"> <SegmentTimeline> <S t="62000" d="60000" r="9"/> </SegmentTimeline> </SegmentTemplate> </Representation> </AdaptationSet>

例 压缩的 DASH 清单

在本例中,SegmentTemplate 对象及其所有元素均折叠为一并移至 AdaptationSet。播放设备了解到此自适应集中的每种表示形式都使用此相同模板:

<AdaptationSet mimeType="video/mp4" segmentAlignment="true" subsegmentAlignment="true" startWithSAP="1" subsegmentStartsWithSAP="1" bitstreamSwitching="true"> <SegmentTemplate timescale="30000" media="index_video_$RepresentationID$_0_$Number$.mp4?m=1543947824" initialization="index_video_$RepresentationID$_0_init.mp4?m=1543947824" startNumber="1"> <SegmentTimeline> <S t="62000" d="60000" r="9"/> </SegmentTimeline> </SegmentTemplate> <Representation id="1" width="640" height="360" frameRate="30/1" bandwidth="749952" codecs="avc1.640029"/> <Representation id="2" width="854" height="480" frameRate="30/1" bandwidth="1000000" codecs="avc1.640029"/> <Representation id="3" width="1280" height="720" frameRate="30/1" bandwidth="2499968" codecs="avc1.640029"/> </AdaptationSet>

有关压缩 DASH 清单的信息,请参阅AWS Elemental MediaPackage 压缩清单.

AWS Elemental MediaPackage 压缩清单

要从 AWS Elemental MediaPackage age 控制台压缩 DASH 清单,请选择紧凑为了清单布局在 DASH 端点上。为确保轨道适时可用,AWS Elemental MediaPackage 检查源内容中的帧率和音频采样率,以确定是否可以压缩清单。

注意

标题轨道始终使用相同的速率,因此 AWS Elemental MediaPackage 始终使用字幕压缩自适应集。

AWS Elemental MediaPackage age 采取以下操作:

  • 如果速率跨自适应集中的所有表示形式均相同,AWS Elemental MediaPackage 将所有SegmentTemplate对象变成一个并将其移动到AdaptationSet级别。这样,模板中的信息在整个清单中不会重复。为允许播放设备跨表示形式使用相同的模板信息,MediaPackage 添加了$RepresentationID$变量到mediainitialization请求 URL。播放设备将此变量替换为当前正发出请求的表示形式的 ID。MediaPackage 还会移动ContentProtection元素,当它存在的时候,也适应套装。

  • 如果速率跨表示形式不同,AWS Elemental MediaPackage 将压缩并移到SegmentTemplate以最常见的费率AdaptationSet. 具有不同速率的表示形式保留其段模板。表示形式的速率覆盖自适应集处的速率。

  • 如果视频自适应集中确切使用两个帧率,AWS Elemental MediaPackage 压缩如下所示:

    • 当使用 24 和 48 时,压缩的模板使用 48 表示帧率,使用 48000 表示时基。

    • 当使用 25 和 50 时,压缩的模板使用 50 表示帧率,使用 50000 表示时基。

    • 当使用 29.97 和 59.94 时,压缩的模板使用 59.95 表示帧率,使用 60000 表示时基。

    • 当使用 30 和 60 时,压缩的模板使用 60 表示帧率,使用 60000 表示时基。

    如果使用两个视频帧率但它们不符合上述的双倍模式之一,则无法压缩此集。

  • 如果跨自适应集的表示形式没有重复速率,则无法对该自适应集进行压缩。