

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

# DASH 清单类型
<a name="dash-manifest-types"></a>

基于 HTTP 的动态自适应流式传输 (DASH) 使用媒体演示描述 (MPD) 清单来传送流媒体内容。了解 DASH 清单的结构和组件对于配置和排除 MediaTailor 工作流程故障至关重要。

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

**Example MPD 清单示例**  

```
<?xml version="1.0" encoding="UTF-8"?>
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd" profiles="urn:mpeg:dash:profile:isoff-live:2011" type="dynamic" minBufferTime="PT5.000S" maxSegmentDuration="PT2.005S" availabilityStartTime="2020-01-01T00:00:00Z" publishTime="2020-01-01T12:30:00Z" minimumUpdatePeriod="PT2.000S" timeShiftBufferDepth="PT5M">
  <Period id="1" start="PT0.000S">
    <AdaptationSet id="1" contentType="video" segmentAlignment="true" bitstreamSwitching="true" frameRate="30000/1001" maxWidth="1920" maxHeight="1080" par="16:9">
      <Representation id="1" mimeType="video/mp4" codecs="avc1.640028" width="1920" height="1080" bandwidth="5000000">
        <SegmentTemplate timescale="90000" initialization="init-stream$RepresentationID$.m4s" media="chunk-stream$RepresentationID$-$Number%05d$.m4s" startNumber="1" duration="180000"/>
      </Representation>
      <Representation id="2" mimeType="video/mp4" codecs="avc1.4d401f" width="1280" height="720" bandwidth="2800000">
        <SegmentTemplate timescale="90000" initialization="init-stream$RepresentationID$.m4s" media="chunk-stream$RepresentationID$-$Number%05d$.m4s" startNumber="1" duration="180000"/>
      </Representation>
      <Representation id="3" mimeType="video/mp4" codecs="avc1.4d401e" width="640" height="360" bandwidth="1100000">
        <SegmentTemplate timescale="90000" initialization="init-stream$RepresentationID$.m4s" media="chunk-stream$RepresentationID$-$Number%05d$.m4s" startNumber="1" duration="180000"/>
      </Representation>
    </AdaptationSet>
    <AdaptationSet id="2" contentType="audio" segmentAlignment="true" lang="eng">
      <Representation id="4" mimeType="audio/mp4" codecs="mp4a.40.2" audioSamplingRate="48000" bandwidth="128000">
        <SegmentTemplate timescale="48000" initialization="init-stream$RepresentationID$.m4s" media="chunk-stream$RepresentationID$-$Number%05d$.m4s" startNumber="1" duration="96000"/>
      </Representation>
    </AdaptationSet>
  </Period>
</MPD>
```

周期  
周期是 DASH 演示文稿中的一个时间部分。每个 Period 都包含一个或多个改编集，代表媒体时间跨度。在广告插入工作流程中，通常使用单独的时间段来划分内容和广告。  
这个组件也有其他几个名字：  
+ 内容细分
+ 时间轴部分
+ 节目片段
在 MediaTailor 工作流程中，使用时间段将主要内容与广告内容分开，每个广告通常由自己的时间段表示。  

**Example 时期示例**  

```
<Period id="ad-period-1" start="PT30.000S" duration="PT15.000S">
  <AdaptationSet id="1" contentType="video" segmentAlignment="true" bitstreamSwitching="true" frameRate="30000/1001" maxWidth="1920" maxHeight="1080" par="16:9">
    <Representation id="1" mimeType="video/mp4" codecs="avc1.640028" width="1920" height="1080" bandwidth="5000000">
      <SegmentTemplate timescale="90000" initialization="ad1/init-stream$RepresentationID$.m4s" media="ad1/chunk-stream$RepresentationID$-$Number%05d$.m4s" startNumber="1" duration="180000"/>
    </Representation>
  </AdaptationSet>
</Period>
```

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

表示  
表示形式是其中媒体内容的特定编码版本。 AdaptationSet每种表示形式通常在比特率、分辨率或其他编码参数上有所不同，允许客户端根据网络条件和设备功能选择最合适的版本。  
这个组件也被称为：  
+ 再现（类似于 HLS）
+ 质量级别
+ 比特率变体
+ 直播变体
在 MediaTailor 工作流程中，广告周期中的表现尽可能与内容时段中的表现形式紧密匹配，以确保流畅的观看体验。

分段  
区段是可以通过 URL 单独引用的媒体数据单元。片段包含实际的媒体内容（视频、音频等），并在 MPD 中引用。DASH 中有两种主要的区段类型：  
+ **初始化片段**：包含表示的初始化信息，例如编解码器参数和计时信息。
+ **媒体片段**：包含表示形式中特定时间范围内的实际媒体数据。
在 MediaTailor 工作流程中，区段 URLs 通常会被修改为指向相应的内容或广告媒体文件。

**注意**  
DASH 清单是基于 XML 的文件，通常使用扩展名。`.mpd`这些文件及其组件的术语可能因不同的文档和上下文而异，但是 DASH 流媒体架构中的基本结构保持不变。

配置时 MediaTailor，您需要在内容来源中提供 MPD 清单的 URL。 MediaTailor 然后处理清单的个性化设置，通常是根据您的配置为广告插入额外的时段。

有关 DASH 清单规范的更多信息，请参阅 [DASH 行业论坛实施指南](https://dashif.org/docs/DASH-IF-IOP-v4.3.pdf)。

# 高级 DASH 清单概念
<a name="dash-manifest-advanced-concepts"></a>

在中使用 DASH 清单时 MediaTailor，了解以下高级概念可以帮助您更有效地配置流媒体工作流程并对其进行故障排除：

时段开始时间计算  
在 DASH 清单中，周期开始时间是根据 MPD 的`availabilityStartTime`属性和周期的属性计算的`start`。对于直播，开始时间与可用性开始时间有关，而对于 VOD 内容，它通常与演示开始时间有关。  
在 MediaTailor 插入广告周期时，它会仔细计算开始时间，以确保内容和广告之间的无缝过渡。此计算考虑了：  
+ 原始时期的开始时间
+ 之前的广告时段的持续时间
+ 广告决策服务器响应中指定的任何时间偏移量

片前计时计算  
DASH 清单中的预贴广告需要特殊处理，因为它们会在主要内容开始之前出现。 MediaTailor 在清单的开头将预贴片广告作为单独的时段插入，并附上适当的开始时间和持续时间。  
对于预贴广告， MediaTailor请执行以下操作：  
+ 为每则预贴片广告创建一个新的广告周期
+ 将第一个前置片段的开始时间设置为 0
+ 调整主内容时段的开始时间，以考虑所有前置广告的总时长

Live-to-VOD 过渡  
直播结束后，DASH 清单可以从直播转换为 VOD（视频点播）格式。这种过渡包括将 MPD 的`type`属性从更改`dynamic`为，`static`以及调整其他属性，例如`timeShiftBufferDepth`和。`minimumUpdatePeriod`  
当 MediaTailor 流程在 live-to-VOD过渡期间出现时，它可以确保：  
+ 广告标记保留在 VOD 清单中
+ 调整周期开始时间以保持适当的时间
+ 清单仍然与 VOD 播放客户端兼容

DRM 处理  
DASH 清单中的数字版权管理 (DRM) 信息通常包含在 AdaptationSets 或陈述中的`ContentProtection`元素中。 MediaTailor 在广告插入期间保留这些元素，以确保内容保护保持不变。  
处理受 DRM 保护的内容时，请： MediaTailor  
+ 保留原始清单中的所有 ContentProtection 元素
+ 确保广告内容使用兼容的 DRM 方案（如果适用）
+ 在整个清单中保留所有与 DRM 相关的属性和元素

SCC 标志  
DASH 清单中的补充内容控制 (SCC) 标志提供了有关内容特征和播放要求的更多信息。这些标志通常作为属性或元素包含在 MPD 结构中。  
 MediaTailor 处理的常见 SCC 标志包括：  
+ 内容评级信息
+ 无障碍功能（隐藏式字幕、音频描述）
+ 内容咨询通知
+ 播放限制
MediaTailor 在清单处理期间保留这些标志，以确保所有内容元数据都保留在个性化清单中。

了解这些高级概念有助于您 MediaTailor 进行配置以获得最佳性能，并解决 DASH 流媒体工作流程中可能出现的任何问题。