

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

# MediaTailor 特定于协议的参数行为
<a name="manifest-query-parameters-protocol-differences"></a>

AWS Elemental MediaTailor 对于 HLS 和 DASH 协议，对清单查询参数的处理方式有所不同。每种协议类型都有特定的应用位置和处理方法。

**HLS 与 DASH 参数处理对比**  
下表比较了如何 MediaTailor 处理 HLS 和 DASH 协议中的清单查询参数：


| 方面 | HLS 行为 | 达世币行为 | 
| --- | --- | --- | 
| 参数应用 | 直接应用于清单 URLs 和区段 URLs | 应用于位置元素、 SegmentTemplate 属性和区段 URLs | 
| 清单层次结构 | 多变体播放列表 → 媒体播放列表 → 片段 | MPD → 时期 AdaptationSets → 陈述 | 
| 初始化 URLs | 存在时应用于 HLS 初始化 URLs  | 应用于 SegmentTemplate 初始化属性 | 
| 会话处理 | 播放列表更新期间保留的参数 | MPD 位置元素中包含的用于会话连续性的参数 | 
| 广告细分处理 | 应用于媒体播放列表 URLs 中的广告区段 | 应用于广告周期 SegmentTemplate 媒体属性 | 

**参数应用程序位置**  
MediaTailor 将清单查询参数应用于以下位置：

## HLS 参数应用程序
<a name="hls-parameter-application"></a>

对于 HLS 流， MediaTailor 将清单查询参数应用于：
+ **多变播放列表 URLs：**参数附加到媒体播放列表引用中
+ **媒体播放列表 URLs：**参数包含在媒体播放列表的片段 URLs 中
+ **内容分段 URLs：**所有内容区段都包含清单查询参数
+ **广告细分 URLs：**广告区段接收用于 CDN 路由和授权的参数
+ **HLS 初始化 URLs：**Init 分段包含流中存在的参数
+ **Slate 片段 URLs：**Slate 内容包括用于一致 CDN 行为的参数

**Example HLS 参数应用示例**  
鉴于会话初始化：  

```
GET /v1/master/123456789/originId/index.m3u8?manifest.auth_token=abc123&manifest.region=us-west
```
多变播放列表包含媒体播放列表参考中的参数：  

```
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:BANDWIDTH=2665212,RESOLUTION=960x540
../../../manifest/123456789/originId/session/0.m3u8?auth_token=abc123&region=us-west
```
媒体播放列表包含片段中的参数 URLs：  

```
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:7
#EXTINF:6.006,
https://origin.com/segment1.ts?auth_token=abc123&region=us-west
#EXTINF:6.006,
../../../../segment/123456789/originId/session/0/2?auth_token=abc123&region=us-west
```

## DASH 参数应用程序
<a name="dash-parameter-application"></a>

对于 DASH 直播， MediaTailor 将清单查询参数应用于：
+ **MPD 位置元素：**位置元素包括清单刷新请求的参数
+ **SegmentTemplate 初始化属性：**Init 段 URLs 包含参数
+ **SegmentTemplate 媒体属性：**媒体片段 URL 模板包含参数
+ **内容区段 URLs：**根据模板生成的所有内容区段都包含参数
+ **广告细分 URLs：**广告周期细分包含 CDN 集成的参数
+ **服务器端举报重定向：**302 重定向到广告细分会保留参数

**Example DASH 参数应用示例**  
鉴于会话初始化：  

```
GET /v1/dash/123456789/originId/index.mpd?manifest.auth_token=abc123&manifest.region=us-west
```
DASH 清单包含多个位置的参数：  

```
<MPD>
    <Location>https://mediatailor.com/v1/dash/123456789/originId/index.mpd?auth_token=abc123&region=us-west&aws.sessionId=session</Location>
    <Period>
        <AdaptationSet>
            <Representation>
                <SegmentTemplate 
                    initialization="init.mp4?auth_token=abc123&region=us-west" 
                    media="segment_$Number$.mp4?auth_token=abc123&region=us-west"/>
            </Representation>
        </AdaptationSet>
    </Period>
</MPD>
```