

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

# `SegmentTemplate` 中的 `media` 属性
<a name="segtemp-format-media"></a>

`SegmentTemplate` 属性中的 `media` 属性定义播放设备在其中发送段请求的 URL。默认情况下，此 URL 使用 `$Number$` 变量来确定所请求的特定段。当播放设备请求段时，它将该变量替换为段的数字标识符。对于表示形式中的第一个段，将此标识符替换为 `SegmentTemplate` 属性中 `startNumber` 的值。每个额外的段增一。

当段改由指示何时可以播放的时间戳来标识时，某些播放器可以更好地在段之间导航。为了支持该使用案例， MediaPackage 在 `media` 属性的 URL 中使用 `$Time$` 变量，而不是 `$Number$`。当播放设备请求段时，它将该变量替换为段可供使用的开始时间。此开始时间在 `SegmentTimeline` 对象中的段 (`S`) 属性的 `t` 值中确定。有关示例，请参阅[工作方式](#how-stemp-works)。

## `$Time$` 变量的工作原理
<a name="how-stemp-works"></a>

通过 DASH 端点上的**段模板格式**设置启用 `$Time$` 变量，如 [创建 DASH 端点](endpoints-dash.md) 中所述。 AWS Elemental MediaPackage 执行以下操作：

1.  MediaPackage 生成 DASH 清单时，它会使用`SegmentTemplate`对象`media`值中的`$Time$`变量，如以下示例所示：  
**Example**  

   ```
   <SegmentTemplate timescale="30" media="index_video_1_0_$Time$.mp4?m=1122792372" initialization="index_video_1_0_init.mp4?m=1122792372" startNumber="2937928">
   ```

1. 当播放设备请求段时，则会使用 `media` 属性中定义的 URL，并将变量替换为所请求段的可用性开始时间。
**重要**  
替换变量的值必须是段的确切 `t` 值。如果请求使用任意时间戳， MediaPackage 不会寻求最近的段。  
**Example**  

   以下是表示形式中段模板的示例。它使用 `$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\$1video\$11\$12\$1*255197799*.mp4**。使用 360360 持续时间，下一个段请求为 **155\$1video\$11\$12\$1*255558159*.mp4**，以此类推，直到第九个段。

   最后一个段请求为 **155\$1video\$11\$12\$1*258441039*.mp4**。