选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

压缩 DASH 清单 - AWS Elemental MediaPackage

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

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

压缩 DASH 清单

AWS Elemental MediaPackage 中提供了压缩 DASH 清单的功能,以提高低功耗设备上 VOD 和直播的性能及处理能力。

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 控制台压缩 DASH 清单,请在 DASH 端点上的清单布局中选择压缩。为确保轨道在正确的时间可用,MediaPackage 会检查源内容中的帧速率和音频采样率,以确定是否可以压缩清单。

注意

字幕跟踪总是使用相同的速率,所以 MediaPackage 总是用字幕压缩适配集。

MediaPackage 执行以下操作:

  • 如果适配集中所有表示形式的速率相同,则 MediaPackage 会将所有 SegmentTemplate 对象折叠为一个对象,然后将其移到 AdaptationSet 级别。这样,模板中的信息在整个清单中不会重复。为了让播放设备在不同的表现形式中使用相同的模板信息,MediaPackage 向 mediainitialization 请求 URL 添加了一个 $RepresentationID$ 变量。播放设备会用当前请求的表示形式 ID 替换该变量。MediaPackage 还会将 ContentProtection 元素(如果存在)移动到适配集。

  • 如果不同表示形式的速率不同,MediaPackage 会进行压缩,并将速率最频繁的 SegmentTemplate 移动到 AdaptationSet。具有不同速率的表示形式保留其段模板。表示形式的速率覆盖自适应集处的速率。

  • 如果视频适配集中恰好使用了两个帧速率,MediaPackage 会按如下方式压缩:

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

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

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

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

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

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

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。