本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
SegmentTemplate 中的 media 属性
SegmentTemplate 属性中的 media 属性定义播放设备在其中发送段请求的 URL。默认情况下,此 URL 使用 $Number$ 变量来确定所请求的特定段。当播放设备请求段时,它将该变量替换为段的数字标识符。对于表示形式中的第一个段,将此标识符替换为 SegmentTemplate 属性中 startNumber 的值。每个额外的段增一。
当段改由指示何时可以播放的时间戳来标识时,某些播放器可以更好地在段之间导航。为了支持该使用案例, MediaPackage 在 media 属性的 URL 中使用 $Time$ 变量,而不是 $Number$。当播放设备请求段时,它将该变量替换为段可供使用的开始时间。此开始时间在 SegmentTimeline 对象中的段 (S) 属性的 t 值中确定。有关示例,请参阅工作方式。
$Time$ 变量的工作原理
通过 DASH 端点上的段模板格式设置启用 $Time$ 变量,如 创建 DASH 端点 中所述。 AWS Elemental MediaPackage 执行以下操作:
-
MediaPackage 生成 DASH 清单时,它会使用
SegmentTemplate对象media值中的$Time$变量,如以下示例所示:<SegmentTemplate timescale="30" media="index_video_1_0_$Time$.mp4?m=1122792372" initialization="index_video_1_0_init.mp4?m=1122792372" startNumber="2937928"> -
当播放设备请求段时,则会使用
media属性中定义的 URL,并将变量替换为所请求段的可用性开始时间。重要
替换变量的值必须是段的确切
t值。如果请求使用任意时间戳, MediaPackage 不会寻求最近的段。以下是表示形式中段模板的示例。它使用
$Time$变量:<SegmentTemplate timescale="30000" media="155_video_1_2_$Time$.mp4?m=1545421124" initialization="155_video_1_2_init.mp4?m=1545421124" startNumber="710"> <SegmentTimeline> <S t="255197799" d="360360" r="8"/> <S t="258441039" d="334334"/> </SegmentTimeline> </SegmentTemplate>第一个段的请求 URL 为
155_video_1_2_。使用 360360 持续时间,下一个段请求为255197799.mp4155_video_1_2_,以此类推,直到第九个段。255558159.mp4最后一个段请求为
155_video_1_2_。258441039.mp4