

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

# DASH MPD 示例
<a name="manifest-dash-example"></a>

以下各节提供了 DASH 起源 MPDs 和个性化的示例 MPDs。了解这些示例可以帮助您配置 MediaTailor工作流程并对其进行故障排除。

有关如何将查询参数应用于 DASH 清单和区段的信息，请参阅[MediaTailor DASH 隐式会话初始](manifest-query-parameters-dash-implicit-session-initialization.md)。

## 了解 DASH MPD 结构
<a name="dash-mpd-overview"></a>

基于 HTTP 的动态自适应流式传输 (DASH) 使用媒体演示描述 (MPD) 清单来提供流媒体内容。MPD 是一个 XML 文档，描述了媒体内容的结构和可用性。

MPD（媒体演示说明）  
MPD 是 DASH 流媒体中的主要清单文件，用于描述媒体内容的结构和可用性。它包含有关构成流媒体内容的时段、改编集、表示形式和片段的信息。  
这种清单类型在各种上下文中也有其他几个名称，包括 DASH 清单、DASH MPD、主清单（与 HLS 比较时）或演示文稿清单。  
在 MediaTailor 工作流程中，MPD 是播放请求的入口点，也是广告个性化的起点。

周期  
周期是 DASH 演示文稿中的一个时间部分。每个 Period 都包含一个或多个改编集，代表媒体时间跨度。在广告插入工作流程中，通常使用单独的时间段来划分内容和广告。  
在 MediaTailor 工作流程中，使用时间段将主要内容与广告内容分开，每个广告通常由自己的时间段表示。

AdaptationSet  
对一个或多个媒体内容组件的一 AdaptationSet 组可互换编码版本进行分组。例如，一个 AdaptationSet 可能包含多个视频质量级别，而另一个可能包含多个音频语言选项。  
在 MediaTailor 工作流程中， AdaptationSets 在广告插入期间保留，以保持内容和广告之间媒体类型的一致性。

表示  
表示形式是其中媒体内容的特定编码版本。 AdaptationSet每种表示形式通常在比特率、分辨率或其他编码参数上有所不同，允许客户端根据网络条件和设备功能选择最合适的版本。  
在 MediaTailor 工作流程中，广告周期中的表现尽可能与内容时段中的表现形式紧密匹配，以确保流畅的观看体验。

有关 DASH 清单类型的更多详细信息，请参阅[DASH 清单类型](dash-manifest-types.md)。

有关 DASH 清单结构和配置的信息 AWS Elemental MediaPackage，请参阅 DASH 概述中的 MediaPackage 用户指南部分。

## 直播 DASH MPD 示例
<a name="dash-manifest-live-examples"></a>

本节提供实时 DASH 的示例 MPDs。每个示例都列出了从源站服务器收到的 MPD，然后使用广告对 MPD MediaTailor 进行了个性化设置。

### DASH MPD 拼接插入示例
<a name="dash-manifest-splice-insert-example"></a>

**接头插入的 DASH 原点 MPD 示例**  
以下来自 MPD 的示例显示了 DASH 从内容来源收到的清单中的广告可用性。此示例使用`SpliceInsert`标记来表示广告可用。

```
<Period start="PT173402.036S" id="46041">
  <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml">
    <Event duration="9450000">
      <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="183265" tier="4095">
        <scte35:SpliceInsert spliceEventId="99" spliceEventCancelIndicator="false" outOfNetworkIndicator="true" spliceImmediateFlag="false" uniqueProgramId="1" availNum="1" availsExpected="1">
          <scte35:Program><scte35:SpliceTime ptsTime="7835775000"/></scte35:Program>
          <scte35:BreakDuration autoReturn="true" duration="9450000"/>
        </scte35:SpliceInsert>
        <scte35:SegmentationDescriptor segmentationEventId="99" segmentationEventCancelIndicator="false" segmentationDuration="9450000">
          <scte35:DeliveryRestrictions webDeliveryAllowedFlag="true" noRegionalBlackoutFlag="true" archiveAllowedFlag="true" deviceRestrictions="3"/>
          <scte35:SegmentationUpid segmentationUpidType="8" segmentationUpidLength="0"/>
          <scte35:SegmentationTypeID segmentationType="52"/>
          <scte35:SegmentNum segmentNum="1"/>
          <scte35:SegmentsExpected segmentsExpected="1"/>
        </scte35:SegmentationDescriptor>
      </scte35:SpliceInfoSection>
    </Event>
  </EventStream>
  <AdaptationSet mimeType="video/mp4" segmentAlignment="true" subsegmentAlignment="true" startWithSAP="1" subsegmentStartsWithSAP="1" bitstreamSwitching="true">
    <Representation id="1" width="960" height="540" frameRate="30000/1001" bandwidth="1000000" codecs="avc1.4D401F">
      <SegmentTemplate timescale="30000" media="index_video_1_0_$Number$.mp4?m=1528475245" initialization="index_video_1_0_init.mp4?m=1528475245" startNumber="178444" presentationTimeOffset="10395907501">
        <SegmentTimeline>
          <S t="10395907501" d="60060" r="29"/>
          <S t="10397709301" d="45045"/>
        </SegmentTimeline>
      </SegmentTemplate>
    </Representation>
  </AdaptationSet>
  <AdaptationSet mimeType="audio/mp4" segmentAlignment="0" lang="eng">
    <Representation id="2" bandwidth="96964" audioSamplingRate="48000" codecs="mp4a.40.2">
      <SegmentTemplate timescale="48000" media="index_audio_2_0_$Number$.mp4?m=1528475245" initialization="index_audio_2_0_init.mp4?m=1528475245" startNumber="178444" presentationTimeOffset="16633452001">
        <SegmentTimeline>
          <S t="16633452289" d="96256" r="3"/>
          <S t="16633837313" d="95232"/>
          <S t="16633932545" d="96256" r="4"/>
          <S t="16634413825" d="95232"/>
          <S t="16634509057" d="96256" r="5"/>
          <S t="16635086593" d="95232"/>
          <S t="16635181825" d="96256" r="4"/>
          <S t="16635663105" d="95232"/>
          <S t="16635758337" d="96256" r="5"/>
          <S t="16636335873" d="71680"/>
        </SegmentTimeline>
      </SegmentTemplate>
    </Representation>
  </AdaptationSet>
</Period>
```

在这个 Origin MPD 示例中：
+ 该`<EventStream>`元素包含 SCTE-35 标记，用于指示广告可用
+ 该`<scte35:SpliceInsert>`元素提供有关广告可用性的详细信息
+ `<scte35:BreakDuration>`元素指定广告时段的持续时间
+ 这些`<AdaptationSet>`元素定义了可用的视频和音频流

**用于拼接插件的 DASH 个性化 MPD 示例**  
AWS Elemental MediaTailor 根据广告规格对广告进行个性化设置。个性化设置反映了从播放器和当前正在进行的广告活动接收的查看者数据。

以下示例显示了对广告进行 AWS Elemental MediaTailor 个性化设置后的可用性。

```
<Period id="178443_1" start="PT96H15M30.25S">
  <BaseURL>http://111122223333.cloudfront.net/nbc_fallback_2/</BaseURL>
  <AdaptationSet bitstreamSwitching="false" frameRate="30/1" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
    <SegmentTemplate startNumber="1" timescale="90000"/>
    <Representation bandwidth="10000000" codecs="avc1.640028" height="1080" id="1" width="1920">
      <SegmentTemplate initialization="nbc_fallback_ad_2_1080p_10init.mp4" media="nbc_fallback_ad_2_1080p_10_$Number%09d$.mp4" startNumber="1" timescale="90000">
        <SegmentTimeline>
          <S d="180000" r="13" t="0"/>
          <S d="176940" t="2520000"/>
        </SegmentTimeline>
      </SegmentTemplate>
    </Representation>
    <Representation bandwidth="4000000" codecs="avc1.64001f" height="720" id="2" width="1280">
      <SegmentTemplate initialization="nbc_fallback_ad_2_720p_9init.mp4" media="nbc_fallback_ad_2_720p_9_$Number%09d$.mp4" startNumber="1" timescale="90000">
        <SegmentTimeline>
          <S d="180000" r="13" t="0"/>
          <S d="176940" t="2520000"/>
        </SegmentTimeline>
      </SegmentTemplate>
    </Representation>
  </AdaptationSet>
  <AdaptationSet mimeType="audio/mp4" segmentAlignment="0" lang="eng">
    <Representation id="8" bandwidth="128000" audioSamplingRate="48000" codecs="mp4a.40.2">
      <SegmentTemplate initialization="nbc_fallback_ad_2_audio_2init.mp4" media="nbc_fallback_ad_2_audio_2_$Number%09d$.mp4" startNumber="1" timescale="90000">
        <SegmentTimeline>
          <S d="180000" r="13" t="0"/>
          <S d="176940" t="2520000"/>
        </SegmentTimeline>
      </SegmentTemplate>
    </Representation>
  </AdaptationSet>
</Period>
```

在这个个性化 MPD 示例中：
+ MediaTailor 为广告内容创建了新的时段
+ 该`<BaseURL>`元素指向广告内容的位置
+ 这些`<AdaptationSet>`元素保持与内容相似的结构
+ 这些`<Representation>`元素为广告内容提供了不同的质量等级

### DASH MPD 时间信号示例
<a name="dash-manifest-time-signal-example"></a>

**DASH 原点 MPD 时间信号示例**  
以下来自 MPD 的示例显示了 DASH 从内容来源收到的清单中的广告可用性。此示例使用`TimeSignal`标记来表示广告可用。

```
<Period start="PT173402.036S" id="46041">
  <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml">
    <Event duration="9450000">
      <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="183265" tier="4095">
        <scte35:TimeSignal>
          <scte35:SpliceTime ptsTime="7835775000"/>
        </scte35:TimeSignal>
        <scte35:SegmentationDescriptor segmentationEventId="99" segmentationEventCancelIndicator="false" segmentationDuration="9450000">
          <scte35:DeliveryRestrictions webDeliveryAllowedFlag="true" noRegionalBlackoutFlag="true" archiveAllowedFlag="true" deviceRestrictions="3"/>
          <scte35:SegmentationUpid segmentationUpidType="8" segmentationUpidLength="0"/>
          <scte35:SegmentationTypeID segmentationType="52"/>
          <scte35:SegmentNum segmentNum="1"/>
          <scte35:SegmentsExpected segmentsExpected="1"/>
        </scte35:SegmentationDescriptor>
      </scte35:SpliceInfoSection>
    </Event>
  </EventStream>
  <AdaptationSet mimeType="video/mp4" segmentAlignment="true" subsegmentAlignment="true" startWithSAP="1" subsegmentStartsWithSAP="1" bitstreamSwitching="true">
    <Representation id="1" width="960" height="540" frameRate="30000/1001" bandwidth="1000000" codecs="avc1.4D401F">
      <SegmentTemplate timescale="30000" media="index_video_1_0_$Number$.mp4?m=1528475245" initialization="index_video_1_0_init.mp4?m=1528475245" startNumber="178444" presentationTimeOffset="10395907501">
        <SegmentTimeline>
          <S t="10395907501" d="60060" r="29"/>
          <S t="10397709301" d="45045"/>
        </SegmentTimeline>
      </SegmentTemplate>
    </Representation>
  </AdaptationSet>
</Period>
```

在这个 Origin MPD 示例中：
+ 使用该`<scte35:TimeSignal>`元素代替 `<scte35:SpliceInsert>`
+ `<scte35:SegmentationDescriptor>`提供了有关广告可用性的更多信息

**DASH 个性化 MPD 时间信号示例**  
AWS Elemental MediaTailor 根据广告规格对广告进行个性化设置。个性化设置反映了从播放器和当前正在进行的广告活动接收的查看者数据。

以下示例显示了对广告进行 AWS Elemental MediaTailor 个性化设置后的可用性。

```
<Period id="178443_1" start="PT96H15M30.25S">
  <BaseURL>http://111122223333.cloudfront.net/nbc_fallback_2/</BaseURL>
  <AdaptationSet bitstreamSwitching="false" frameRate="30/1" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
    <SegmentTemplate startNumber="1" timescale="90000"/>
    <Representation bandwidth="10000000" codecs="avc1.640028" height="1080" id="1" width="1920">
      <SegmentTemplate initialization="nbc_fallback_ad_2_1080p_10init.mp4" media="nbc_fallback_ad_2_1080p_10_$Number%09d$.mp4" startNumber="1" timescale="90000">
        <SegmentTimeline>
          <S d="180000" r="13" t="0"/>
          <S d="176940" t="2520000"/>
        </SegmentTimeline>
      </SegmentTemplate>
    </Representation>
  </AdaptationSet>
</Period>
```

时间信号的个性化 MPD 与拼接插入的 MPD 类似，它为广告内容 MediaTailor 创建了一个新的周期。

## VOD DASH MPD 示例
<a name="dash-manifest-vod-examples"></a>

本节提供视频点播 (VOD) DASH MPDs 的示例。每个示例都列出了从源站服务器收到的 MPD，然后使用广告对 MPD MediaTailor 进行了个性化设置。

VOD DASH MPDs 遵循与直播相同的结构 MPDs，但它们通常在 MPD 元素中有一个`type="static"`属性，并且可能包含不同内容片段的多个时段。

有关 VOD DASH 的示例 MPDs，请参阅中的 MediaTailor 文档。[DASH 广告标记](dash-ad-markers.md)

## 个性化的主要区别 MPDs
<a name="dash-manifest-key-differences"></a>

对 DASH MediaTailor 进行个性化设置时 MPDs，它会进行一些重要的更改：

经期处理  
+ 为广告内容创建了新的时段
+ 调整时段开始时间以保持时间表的连续性
+ EventStream 带有 SCTE-35 标记的元素会被处理和移除

AdaptationSet 和陈述处理  
+ AdaptationSets 在广告中，创建时段是为了匹配内容而创建的 AdaptationSets
+ 为广告内容的不同质量水平创建了陈述
+ SegmentTemplate 元素已更新为指向广告内容

了解这些更改可以帮助您解决 MediaTailor 工作流程中的问题，并确保正确配置 CDN 和播放器。

## 相关主题
<a name="dash-manifest-related-topics"></a>

有关 DASH MPDs 和的更多信息 MediaTailor，请参阅以下主题：
+ [DASH 清单类型](dash-manifest-types.md)-详细说明 DASH 清单类型
+ [使用 CDN 优化 MediaTailor 广告个性化和内容交付](integrating-cdn.md)-有关将 CDN 与以下内容一起使用的信息 MediaTailor
+ [MediaTailor 广告插入的工作原理](what-is-flow.md)- MediaTailor 广告插入工作原理概述
+ 有关 DASH 清单结构和 MediaPackage 配置的全面信息，请参阅 DASH 概述中的 MediaPackage 用户指南部分。