

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 整合 HLS 來源
<a name="manifest-hls"></a>

AWS Elemental MediaTailor 針對即時串流和隨選視訊 (VOD) 支援 `EXT-X-VERSION``3`或更高版本的 `.m3u8` HLS 資訊清單。當 MediaTailor 遇到廣告休息時間時，會根據內容類型嘗試廣告插入或替換。如果沒有足夠的廣告來填滿持續時間，在廣告休息時間的剩餘時間內，MediaTailor 會顯示基礎內容串流或設定的場記板。如需根據內容類型之 HLS 廣告行為的詳細資訊，請參閱 [了解 AWS Elemental MediaTailor 廣告插入行為](ad-behavior.md)。

下列各節提供 MediaTailor 如何處理 HLS 資訊清單的詳細資訊。

**Topics**
+ [HLS 支援的廣告標記](hls-ad-markers.md)
+ [啟用廣告標記傳遞](ad-marker-passthrough.md)
+ [HLS 資訊清單標籤處理](manifest-hls-tags.md)
+ [HLS 資訊清單範例](manifest-hls-example.md)

# HLS 支援的廣告標記
<a name="hls-ad-markers"></a>

AWS Elemental MediaTailor 透過剖析支援廣告標記的輸入資訊清單，識別 HLS 資訊清單中的廣告時段邊界。下列各節說明 MediaTailor 使用哪些標記。

## EXT-X-ASSET
<a name="hls-ad-markers-asset"></a>

`EXT-X-ASSET` 標籤包含廣告決策伺服器 (ADS) 用來為觀眾個人化內容的中繼資料。 `EXT-X-ASSET` 參數是逗號分隔的鍵值對。

若要使用此標籤，您必須符合下述要求：
+ 您必須對原始資訊清單中的 `EXT-X-ASSET` *值*進行 URL 編碼。下列範例顯示具有索引鍵和 URL 編碼值的 `EXT-X-ASSET` 標籤。

  ```
              #EXT-X-ASSET:GENRE=CV,CAID=12345678,EPISODE="Episode%20Name%20Date",SEASON="Season%20Name%20and%20Number",SERIES="Series%2520Name"
  ```
+ 您必須在 MediaTailor ADS 組態中包含動態`[asset.]`變數和*金鑰*。下列範例顯示使用 動態`[asset.]`變數和金鑰的 MediaTailor ADS 組態。

  ```
              https://myads.com/stub?c=[asset.GENRE]&g=[asset.CAID]&e=[asset.EPISODE]&s=[asset.SEASON]&k=[asset.SERIES]
  ```

**範例 VAST 請求**  
以下範例顯示向 ADS 提出的 VAST `GET` 請求。

```
            https://myads.com/stub?c=CV&g=12345678&e=Episode%20Name%20Date&s=Season%20Name%20and%20Number&k=Series%2520Name
```

## EXT-X-CUE-OUT 和 EXT-X-CUE-IN
<a name="hls-ad-markers-cue"></a>

這類廣告標記最常見。以下範例顯示這些提示標記的選項。

```
#EXT-X-CUE-OUT:DURATION=120
    ...
    #EXT-X-CUE-IN
```

```
#EXT-X-CUE-OUT:30.000
    ...
    #EXT-X-CUE-IN
```

```
#EXT-X-CUE-OUT
    ...
    #EXT-X-CUE-IN
```

## EXT-X-DATERANGE
<a name="hls-ad-markers-range"></a>

使用 `EXT-X-DATERANGE` 廣告標記標籤，您會使用 `SCTE35-OUT` 屬性來指定廣告時段的時間。

**注意**  
AWS Elemental MediaTailor 會忽略為`EXT-X-DATERANGE`廣告標記提供的任何`START-DATE`屬性。

您可以指定下列其中一種方法來指定廣告時段：
+ `EXT-X-DATERANGE` 標籤具有 `SCTE35-OUT` 和 `DURATION` 規格。

  範例

  ```
  #EXT-X-DATERANGE:ID="splice-6FFFFFF0",START-DATE="2019-01T00:15:00Z\",DURATION=60.000,SCTE35-OUT=0xF
  ```
+ 配對的 `EXT-X-DATERANGE` 標籤，第一個具有 `SCTE35-OUT` 規格，而第二個具有 `SCTE35-IN` 規格。

  範例

  ```
  #EXT-X-DATERANGE:ID="splice-6FFFFFF0",START-DATE="2019-01T00:15:00Z\",SCTE35-OUT=0xF
      ...
      #EXT-X-DATERANGE:ID="splice-6FFFFFF0",START-DATE="2019-01T00:15:00Z\",SCTE35-IN=0xF
  ```
+ 之前選項的組合。您可以指定 `EXT-X-DATERANGE` 標籤搭配 `SCTE35-OUT` 和 `DURATION` 規格，接著是 `EXT-X-DATERANGE` 標籤搭配 `SCTE35-IN` 規格。在此情況下，MediaTailor 會使用兩個規格中最早的提示設定。

  範例

  ```
  #EXT-X-DATERANGE:ID="splice-6FFFFFF0",START-DATE="2019-01T00:15:00Z\",DURATION=60.000,SCTE35-OUT=0xF
      ...
      #EXT-X-DATERANGE:ID="splice-6FFFFFF0",START-DATE="2019-01T00:15:00Z\",SCTE35-IN=0xF
  ```

## EXT-X-SPLICEPOINT-SCTE35
<a name="hls-ad-markers-splice"></a>

您可以在 base64 編碼二進位中附加 `EXT-X-SPLICEPOINT-SCTE35` 廣告標記標籤，搭配 SCTE-35 承載。解碼的二進位必須提供 SCTE-35 `splice_info_section`，包含提示出標記 `0x34` 用於供應商放置機會開始，以及提示入標記 `0x35` 用於供應商放置機會結束。

以下範例顯示的接合點規格，具有指定提示出和提示入標記的 base64 編碼二進位承載。

```
    #EXT-X-SPLICEPOINT-SCTE35:/DA9AAAAAAAAAP/wBQb+uYbZqwAnAiVDVUVJAAAKqX//AAEjW4AMEU1EU05CMDAxMTMyMjE5M19ONAAAmXz5JA==
    ...
    #EXT-X-SPLICEPOINT-SCTE35:/DA4AAAAAAAAAP/wBQb+tTeaawAiAiBDVUVJAAAKqH+/DBFNRFNOQjAwMTEzMjIxOTJfTjUAAIiGK1s=
```

# 啟用廣告標記傳遞
<a name="ad-marker-passthrough"></a>

根據預設，HLS 的 MediaTailor 個人化資訊清單不包含來源資訊清單的 SCTE-35 廣告標記。啟用廣告標記傳遞時，MediaTailor 會將下列廣告標記從原始資訊清單傳遞至個人化資訊清單：
+ EXT-X-CUE-IN
+ EXT-X-CUE-OUT
+ EXT-X-SPLICEPOINT-SCTE35

 廣告標記傳遞是選用的設定。如果您想要將 SCTE 廣告標記包含在 MediaTailor 個人化資訊清單中，請使用廣告標記傳遞。常見的使用案例包括下列項目：
+ 內容替換 - 執行內容替換或內容限制。
+ 廣告追蹤 - 根據是否存在一或多個廣告標記來觸發廣告追蹤資訊。
+ 玩家設定 - 根據是否存在廣告標記，在玩家的 UI 中啟用清除或倒數計時器功能。

**注意**  
MediaTailor 不會變更這些標記的值。例如，如果`60`原始資訊清單中`EXT-X-CUE-OUT`的值為 ，但未放置任何廣告，MediaTailor 不會將個人化資訊清單中的值變更為 `0` 。

## 啟用廣告標記傳遞
<a name="enable-ad-marker-passthrough"></a>

您可以使用 AWS 管理主控台 或 AWS Command Line Interface () 啟用廣告標記傳遞AWS CLI。

**使用主控台啟用廣告標記傳遞**

1. 在 https：//[https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/) 開啟 MediaTailor 主控台。

1.  選取**新組態**或**編輯組態**。

1. 在**進階設定**區段中，從下拉式選單中選取**啟用**。

**使用 AWS Command Line Interface (AWS CLI) 啟用廣告標記傳遞**  
使用 [put-playback-configuration](https://docs.aws.amazon.com/cli/latest/reference/mediatailor/put-playback-configuration.html) 命令。

# HLS 資訊清單標籤處理
<a name="manifest-hls-tags"></a>

本節說明 如何 AWS Elemental MediaTailor 管理個人化輸出資訊清單中的標籤。

## EXT-X-CUE 標籤
<a name="manifest-hls-tags-cue"></a>

MediaTailor 會將輸入資訊清單中的 `EXT-X-CUE-OUT-CONT`、 `EXT-X-CUE-OUT`和 `EXT-X-CUE-IN` 標籤取代為輸出資訊清單中的`EXT-X-DISCONTINUITY`標籤。`DISCONTINUITY` 標籤會標記以下邊界：
+ 主要內容轉場到廣告的位置
+ 廣告轉場到另一個廣告的位置
+ 廣告轉場回到主要內容的位置

## EXT-X-DATERANGE 標籤
<a name="manifest-hls-tags-daterange"></a>

MediaTailor 會將`EXT-X-DATERANGE`標籤從輸入資訊清單傳遞至輸出資訊清單。MediaTailor 也會插入對應至`EXT-X-DISCONTINUITY`標籤的`DATERANGE`標籤。`DISCONTINUITY` 標籤會標記以下邊界：
+ 主要內容轉場到廣告的位置
+ 廣告轉場到另一個廣告的位置
+ 廣告轉場回到主要內容的位置

## EXT-X-KEY 標籤
<a name="manifest-hls-tags-key"></a>

MediaTailor 會從輸入資訊清單傳遞`EXT-X-KEY`標籤。這些標籤表示主要內容已加密。由於廣告未加密，MediaTailor `EXT-X-KEY:METHOD=NONE`會在廣告時段開始時插入 。播放返回主要內容時，MediaTailor 會使用定義為加密類型的`METHOD`值插入`EXT-X-KEY`標籤，以重新啟用加密。

## 無法辨識的標籤
<a name="manifest-hls-tags-unknown"></a>

MediaTailor 會將所有未知和自訂標籤從輸入資訊清單傳遞至輸出資訊清單。

# HLS 資訊清單範例
<a name="manifest-hls-example"></a>

以下各節提供 HLS 產地來源資訊清單及個人化資訊清單的例子。了解這些範例可協助您設定 MediaTailor 工作流程並進行疑難排解。

如需如何將查詢參數套用至 HLS 資訊清單和區段的資訊，請參閱 [MediaTailor HLS 隱含工作階段初始化](manifest-query-parameters-hls-implicit-session-initialization.md)。

## 了解 HLS 播放清單類型
<a name="hls-playlist-overview"></a>

HTTP 即時串流 (HLS) 使用兩種主要播放清單類型：

多變體播放清單  
多變量播放清單是列出內容所有可用轉譯的最上層索引檔案。它包含媒體播放清單的參考，但不包含任何媒體區段本身。此播放清單允許玩家根據網路條件、裝置功能或使用者偏好設定選取最適當的轉譯。  
此播放清單類型也在各種內容中由多個其他名稱所知道，包括主播放清單、主資訊清單、主播放清單、主播放清單、索引檔案或主 M3U8。  
在 MediaTailor 工作流程中，多變量播放清單是播放請求的進入點，也是廣告個人化開始的位置。

媒體播放清單  
媒體播放清單包含內容特定轉譯 （品質層級） 的實際媒體區段資訊。它包含播放單一轉譯所需的時間資訊、區段 URLs 和其他中繼資料。  
此播放清單類型也稱為媒體播放清單、子資訊清單、區塊清單、媒體 M3U8 或轉譯播放清單。  
在 MediaTailor 工作流程中，媒體播放清單會個人化，以適當順序包含內容區段和廣告區段。

如需 HLS 播放清單類型的詳細資訊，請參閱 [HLS 播放清單類型](hls-playlist-types.md)。

## HLS 原始伺服器資訊清單範例
<a name="manifest-hls-ex-origin"></a>

下列範例顯示 HLS 從內容來源接收的 AWS Elemental MediaTailor HLS 多變體播放清單。

```
#EXTM3U
    #EXT-X-VERSION:3
    #EXT-X-INDEPENDENT-SEGMENTS
    #EXT-X-STREAM-INF:BANDWIDTH=2665726,AVERAGE-BANDWIDTH=2526299,RESOLUTION=960x540,FRAME-RATE=29.970,CODECS="avc1.640029,mp4a.40.2",SUBTITLES="subtitles"
    index_1.m3u8
    #EXT-X-STREAM-INF:BANDWIDTH=3956044,AVERAGE-BANDWIDTH=3736264,RESOLUTION=1280x720,FRAME-RATE=29.970,CODECS="avc1.640029,mp4a.40.2",SUBTITLES="subtitles"
    index_2.m3u8
    #EXT-X-STREAM-INF:BANDWIDTH=995315,AVERAGE-BANDWIDTH=951107,RESOLUTION=640x360,FRAME-RATE=29.970,CODECS="avc1.4D401E,mp4a.40.2",SUBTITLES="subtitles"
    index_3.m3u8
    #EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subtitles",NAME="caption_1",DEFAULT=YES,AUTOSELECT=YES,FORCED=NO,LANGUAGE="eng",URI="index_4_0.m3u8"
```

在此多變量播放清單範例中：
+ 這些`#EXT-X-STREAM-INF`標籤以不同的解析度和位元速率定義不同的轉譯
+ 每個轉譯都會參考媒體播放清單 （例如 `index_1.m3u8`)
+ `#EXT-X-MEDIA` 標籤定義字幕音軌

下列範例顯示 HLS 從內容來源 AWS Elemental MediaTailor 接收的 HLS 媒體播放清單。此範例使用 `EXT-X-CUE-OUT` 和 `EXT-X-CUE-IN` 標籤來描述廣告利用機會。

```
#EXTM3U
    #EXT-X-VERSION:3
    #EXT-X-TARGETDURATION:7
    #EXT-X-MEDIA-SEQUENCE:8779957
    #EXTINF:6.006,
    index_1_8779957.ts?m=1566416212
    #EXTINF:6.006,
    index_1_8779958.ts?m=1566416212
    #EXTINF:5.372,
    index_1_8779959.ts?m=1566416212
    #EXT-OATCLS-SCTE35:/DAlAAAAAsvhAP/wFAXwAAAGf+/+AdLfiP4AG3dAAAEBAQAAXytxmQ==
    #EXT-X-CUE-OUT:20.020
    #EXTINF:0.634,
    index_1_8779960.ts?m=1566416212
    #EXT-X-CUE-OUT-CONT:ElapsedTime=0.634,Duration=21,SCTE35=/DAlAAAAAsvhAP/wFAXwAAAGf+/+AdLfiP4AG3dAAAEBAQAAXytxmQ==
    #EXTINF:6.006,
    index_1_8779961.ts?m=1566416212
    #EXT-X-CUE-OUT-CONT:ElapsedTime=6.640,Duration=21,SCTE35=/DAlAAAAAsvhAP/wFAXwAAAGf+/+AdLfiP4AG3dAAAEBAQAAXytxmQ==
    #EXTINF:6.006,
    index_1_8779962.ts?m=1566416212
    #EXT-X-CUE-OUT-CONT:ElapsedTime=12.646,Duration=21,SCTE35=/DAlAAAAAsvhAP/wFAXwAAAGf+/+AdLfiP4AG3dAAAEBAQAAXytxmQ==
    #EXTINF:6.006,
    index_1_8779963.ts?m=1566416212
    #EXT-X-CUE-OUT-CONT:ElapsedTime=18.652,Duration=21,SCTE35=/DAlAAAAAsvhAP/wFAXwAAAGf+/+AdLfiP4AG3dAAAEBAQAAXytxmQ==
    #EXTINF:1.368,
    index_1_8779964.ts?m=1566416212
    #EXT-X-CUE-IN
    #EXTINF:4.638,
    index_1_8779965.ts?m=1566416212
    #EXTINF:6.006,
    index_1_8779966.ts?m=1566416212
    #EXTINF:6.006,
    index_1_8779967.ts?m=1566416212
    #EXTINF:6.006,
    index_1_8779968.ts?m=1566416212
```

在此媒體播放清單中，範例為：
+ `#EXTINF` 標籤會指定每個區段的持續時間
+ `#EXT-X-CUE-OUT` 標籤標記廣告休息時間的開頭
+ `#EXT-X-CUE-OUT-CONT` 標籤提供有關進行中廣告休息時間的資訊
+ `#EXT-X-CUE-IN` 標籤標記廣告休息時間的結尾

## HLS 個人化資訊清單範例
<a name="manifest-hls-ex-personalized"></a>

下列範例顯示個人化 AWS Elemental MediaTailor HLS 多變量播放清單。

```
#EXTM3U
    #EXT-X-VERSION:3
    #EXT-X-MEDIA:LANGUAGE="eng",AUTOSELECT=YES,FORCED=NO,TYPE=SUBTITLES,URI="../../../manifest/43f3e412052f2808dd84ea1da90e92e914edddee/external-canary-hls/ee1696a8-4f7f-4c4c-99de-9821131847e8/3.m3u8",GROUP-ID="subtitles",DEFAULT=YES,NAME="caption_1"
    #EXT-X-INDEPENDENT-SEGMENTS
    #EXT-X-STREAM-INF:CODECS="avc1.640029,mp4a.40.2",AVERAGE-BANDWIDTH=2526299,RESOLUTION=960x540,SUBTITLES="subtitles",FRAME-RATE=29.97,BANDWIDTH=2665726
    ../../../manifest/43f3e412052f2808dd84ea1da90e92e914edddee/external-canary-hls/ee1696a8-4f7f-4c4c-99de-9821131847e8/0.m3u8
    #EXT-X-STREAM-INF:CODECS="avc1.640029,mp4a.40.2",AVERAGE-BANDWIDTH=3736264,RESOLUTION=1280x720,SUBTITLES="subtitles",FRAME-RATE=29.97,BANDWIDTH=3956044
    ../../../manifest/43f3e412052f2808dd84ea1da90e92e914edddee/external-canary-hls/ee1696a8-4f7f-4c4c-99de-9821131847e8/1.m3u8
    #EXT-X-STREAM-INF:CODECS="avc1.4D401E,mp4a.40.2",AVERAGE-BANDWIDTH=951107,RESOLUTION=640x360,SUBTITLES="subtitles",FRAME-RATE=29.97,BANDWIDTH=995315
    ../../../manifest/43f3e412052f2808dd84ea1da90e92e914edddee/external-canary-hls/ee1696a8-4f7f-4c4c-99de-9821131847e8/2.m3u8
```

請注意MediaTailor 如何修改媒體播放清單 URLs以包含啟用個人化廣告插入的工作階段特定資訊。

下列範例顯示個人化 AWS Elemental MediaTailor 媒體播放清單。

```
#EXTM3U
    #EXT-X-VERSION:6
    #EXT-X-TARGETDURATION:7
    #EXT-X-MEDIA-SEQUENCE:8779957
    #EXT-X-DISCONTINUITY-SEQUENCE:0
    #EXTINF:6.006,
    https://777788889999.mediapackage.us-west-2.amazonaws.com/out/v1/e309ffd02ba8498d864dcaacff7a5ad9/index_1_8779957.ts?m=1566416212
    #EXTINF:6.006,
    https://777788889999.mediapackage.us-west-2.amazonaws.com/out/v1/e309ffd02ba8498d864dcaacff7a5ad9/index_1_8779958.ts?m=1566416212
    #EXTINF:5.372,
    https://777788889999.mediapackage.us-west-2.amazonaws.com/out/v1/e309ffd02ba8498d864dcaacff7a5ad9/index_1_8779959.ts?m=1566416212
    #EXT-X-DISCONTINUITY
    #EXTINF:3.066667,
    ../../../../segment/43f3e412052f2808dd84ea1da90e92e914edddee/external-canary-hls/ee1696a8-4f7f-4c4c-99de-9821131847e8/0/8779960
    #EXTINF:3.0,
    ../../../../segment/43f3e412052f2808dd84ea1da90e92e914edddee/external-canary-hls/ee1696a8-4f7f-4c4c-99de-9821131847e8/0/8779961
    #EXTINF:3.0,
    ../../../../segment/43f3e412052f2808dd84ea1da90e92e914edddee/external-canary-hls/ee1696a8-4f7f-4c4c-99de-9821131847e8/0/8779962
    #EXTINF:3.0,
    ../../../../segment/43f3e412052f2808dd84ea1da90e92e914edddee/external-canary-hls/ee1696a8-4f7f-4c4c-99de-9821131847e8/0/8779963
    #EXTINF:2.966667,
    ../../../../segment/43f3e412052f2808dd84ea1da90e92e914edddee/external-canary-hls/ee1696a8-4f7f-4c4c-99de-9821131847e8/0/8779964
    #EXT-X-DISCONTINUITY
    #EXTINF:6.006,
    https://777788889999.mediapackage.us-west-2.amazonaws.com/out/v1/e309ffd02ba8498d864dcaacff7a5ad9/index_1_8779963.ts?m=1566416212
    #EXTINF:1.368,
    https://777788889999.mediapackage.us-west-2.amazonaws.com/out/v1/e309ffd02ba8498d864dcaacff7a5ad9/index_1_8779964.ts?m=1566416212
    #EXTINF:4.638,
    https://777788889999.mediapackage.us-west-2.amazonaws.com/out/v1/e309ffd02ba8498d864dcaacff7a5ad9/index_1_8779965.ts?m=1566416212
    #EXTINF:6.006,
    https://777788889999.mediapackage.us-west-2.amazonaws.com/out/v1/e309ffd02ba8498d864dcaacff7a5ad9/index_1_8779966.ts?m=1566416212
    #EXTINF:6.006,
    https://777788889999.mediapackage.us-west-2.amazonaws.com/out/v1/e309ffd02ba8498d864dcaacff7a5ad9/index_1_8779967.ts?m=1566416212
    #EXTINF:6.006,
    https://777788889999.mediapackage.us-west-2.amazonaws.com/out/v1/e309ffd02ba8498d864dcaacff7a5ad9/index_1_8779968.ts?m=1566416212
```

在此個人化媒體播放清單中，範例為：
+ MediaTailor 已在內容區段之間插入廣告區段
+ `#EXT-X-DISCONTINUITY` 標籤會標記內容和廣告之間的轉換
+ 內容區段是從原始伺服器提供 （此範例中為MediaPackage)
+ 廣告客群是從 MediaTailor 的廣告客群儲存體提供

## 個人化資訊清單的主要差異
<a name="manifest-hls-key-differences"></a>

當 MediaTailor 個人化 HLS 資訊清單時，會進行幾項重要的變更：

多變量播放清單變更  
+ 變體播放清單 URLs會重新寫入，以指向包含工作階段資訊的 MediaTailor 受管 URLs 
+ 標籤順序可以重新組織，以獲得最佳播放

變體播放清單變更  
+ 廣告標記 (`EXT-X-CUE-OUT`、`EXT-X-CUE-IN`) 會取代為實際廣告區段
+ 在內容/廣告界限新增不連續性標記 (`EXT-X-DISCONTINUITY`)
+ 內容區段 URLs會重新寫入以指向原始伺服器或 CDN
+ 新增廣告客群 URLs 以指向 MediaTailor 的廣告客群儲存體

了解這些變更可協助您疑難排解 MediaTailor 工作流程中的問題，並確保 CDN 和播放器的組態正確。

## 相關主題
<a name="manifest-hls-related-topics"></a>

如需 HLS 資訊清單和 MediaTailor 的詳細資訊，請參閱下列主題：
+ [HLS 播放清單類型](hls-playlist-types.md) - HLS 播放清單類型的詳細說明
+ [使用 CDN 最佳化 MediaTailor 廣告個人化和內容交付](integrating-cdn.md) - 搭配 MediaTailor 使用 CDN 的相關資訊
+ [MediaTailor 廣告插入的運作方式](what-is-flow.md) - MediaTailor 廣告插入的運作方式概觀