本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
紧凑的 DASH 清单
AWS Elemental 提供了压缩 DASH 的功能,可以改善低功耗设备上的 VOD 和直播性能和处理能力 MediaPackage。
来自的默认 DASH 清单 MediaPackage 包含有关每个表现(曲目)的重复数据。对于某些播放器,处理具有所有这类数据的清单的过程很困难且很慢。为了减轻一些负担, 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 Ele MediaPackage mental 如何压缩清单。
AWS Ele MediaPackage mental Compacts 如何
要从 AWS Elemental MediaPackage 控制台压缩 DASH 清单,请在 DASH 终端节点上为 Manifest 布局选择 “紧凑”。为确保轨道适时可用, MediaPackage 检查源内容中的帧率和音频采样率,以确定是否可以压缩清单。
注意
字幕曲目始终使用相同的速率,因此 MediaPackage 务必使用字幕压缩改编集。
MediaPackage 执行以下操作:
如果速率跨自适应集中的所有表示形式均相同, MediaPackage 将所有
SegmentTemplate
对象折叠为一,然后将其移到AdaptationSet
级别。这样,模板中的信息在整个清单中不会重复。要允许播放设备在不同表示形式中使用相同的模板信息,请在media
和initialization
请求 URL 中 MediaPackage 添加一个$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 表示时基。
如果使用两个视频帧率但它们不符合上述的双倍模式之一,则无法压缩此集。
-
如果跨自适应集的表示形式没有重复速率,则无法对该自适应集进行压缩。