

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

# 使用 MediaTailor、MediaPackage 和 CDN 設定資訊清單篩選
<a name="cdn-emp-manifest-filtering"></a>

AWS Elemental MediaTailor 使用資訊清單篩選搭配 AWS Elemental MediaPackage 來自訂透過內容交付網路 (CDN) 交付給不同檢視器的資訊清單中包含哪些音訊和視訊串流。這對於實作分層服務方案、裝置特定最佳化或內容存取控制特別有用。

本主題特別著重於實作資訊清單篩選功能。實作資訊清單篩選之前，您必須完成基本的內容交付網路整合設定。如果您尚未設定基本 MediaPackage 和內容交付網路整合，請從 開始[整合 MediaTailor 與 MediaPackage 和 CDN](mediapackage-integration.md)。

## 資訊清單篩選功能
<a name="manifest-filtering-overview"></a>

實作資訊清單篩選之前，請先了解您可以使用此功能完成哪些作業：

### 核心篩選功能
<a name="filtering-capabilities"></a>

資訊清單篩選提供多種關鍵功能，可協助您控制內容交付：
+ 限制瀏覽者存取進階內容 （例如 4K HEVC)
+ 以具有適當串流的特定裝置類型為目標
+ 根據音訊取樣率、語言或視訊轉碼器篩選內容
+ 將不同的品質方案交付給不同的訂閱者

### 常用案例
<a name="filtering-use-cases"></a>

這些使用案例示範資訊清單篩選如何解決特定業務需求：

**訂閱方案**  
提供基本訂閱者較低的解析度串流，同時讓高級訂閱者存取 4K 內容  
範例：基本方案限制為 720p，Premium 方案最多可獲得 4K

**裝置最佳化**  
根據裝置功能自動提供適當的串流  
範例：行動裝置獲得較低的位元速率、智慧型TVs獲得更高的品質

**頻寬管理**  
在尖峰用量期間限制串流品質，以管理網路成本  
範例：在高流量事件期間降低最大位元速率

**區域內容**  
根據檢視器位置提供不同的音訊語言或內容變體  
範例：自動篩選本機語言音軌

如需資訊清單篩選概念的詳細資訊，請參閱 AWS Elemental MediaPackage 《 使用者指南》中的[資訊清單篩選](https://docs.aws.amazon.com/mediapackage/latest/ug/manifest-filtering.html)。

## 設定 CDN 進行資訊清單篩選
<a name="cdn-filtering-configuration"></a>

資訊清單篩選的 CDN 組態至關重要，因為您的 CDN 必須轉送`aws.manifestfilter`查詢參數至 MediaPackage，才能篩選運作。如果沒有適當的查詢字串轉送，篩選參數將由 CDN 分割，而且所有檢視器都會收到未篩選的資訊清單，無論其訂閱層或裝置功能為何。此組態可確保您的篩選邏輯達到 MediaPackage 並如預期般運作。

若要透過 CDN 啟用資訊清單篩選，您需要設定查詢字串轉送：

1. 在您的 CloudFront 分佈中，建立或編輯資訊清單請求的快取行為。

1. 針對**快取政策，**建立新的政策或編輯現有的政策。

1. 在**快取金鑰設定**下，選擇「包含指定的查詢字串」。

1. 將 `aws.manifestfilter`新增至允許的查詢字串清單。

1. 如果您也使用其他 MediaPackage 功能，請新增其查詢參數：
   + `start` 和 `end` - 用於時間轉移檢視
   + `time_delay` - 用於時間延遲功能
   + `_HLS_msn` 和 `_HLS_part` - 適用於 LL-HLS

如需建立分佈的詳細資訊，請參閱《Amazon CloudFront 開發人員指南》中的[建立分佈](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-creating-console.html)。

## 實作用戶端篩選
<a name="client-side-filtering-implementation"></a>

用戶端實作可讓您定義影片播放器和應用程式請求篩選內容的方式。此組態會根據每個檢視器的訂閱層級、裝置功能或其他條件，決定檢視器收到的內容。適當的實作可確保瀏覽者只會接收他們應存取的內容，同時維持最佳的 CDN 快取效率。

若要在影片播放器和應用程式中實作資訊清單篩選：

### 篩選的運作方式
<a name="filtering-workflow"></a>

篩選程序的運作方式如下：

1. 您的影片播放器或應用程式會請求包含篩選條件參數的資訊清單 URL

1. CDN 會將請求 （包括查詢參數） 轉送至 MediaTailor

1. 請求原始伺服器資訊清單時，MediaTailor 會將篩選條件參數傳遞至 MediaPackage 

1. MediaPackage 會套用篩選條件，並傳回僅包含符合您條件變體的自訂資訊清單

1. MediaTailor 會處理篩選資訊清單以進行廣告插入，並將其傳回給玩家

### 用於篩選的 URL 格式
<a name="filtering-url-format"></a>

了解正確的 URL 格式對於成功篩選實作至關重要。URL 格式不正確會導致篩選參數遭到忽略或導致 HTTP 錯誤。URL 結構必須包含篩選條件參數，做為您的 CDN 轉送至 MediaPackage 的查詢字串。請依照下列步驟實作適當的 URL 格式：

若要在影片播放器中實作資訊清單篩選：

1. 修改玩家的資訊清單請求 URLs以包含適當的篩選條件參數。

1. 使用下列 URL 格式搭配查詢參數：

   ```
   https://CloudFront-Domain/v1/master/MediaTailor-Config/index.m3u8?aws.manifestfilter=video_codec:h264;audio_language:en-US
   ```

1. 當您的玩家請求此 URL 時，MediaTailor 會將這些參數傳遞至 MediaPackage，產生篩選的資訊清單。

## 常見的篩選案例
<a name="filtering-examples"></a>

使用這些範例來實作常見的篩選案例：

**裝置特定內容交付**  
若要根據裝置功能進行篩選，請將此參數新增至資訊清單請求：  

```
aws.manifestfilter=video_codec:h264;audio_sample_rate:0-44100
```
此範例會將內容限制為 H.264 視訊和音訊，取樣速率最高可達 44.1 kHz，適用於行動裝置。

**Premium 內容限制**  
若要限制對高位元速率內容的存取，請將此參數新增至資訊清單請求：  

```
aws.manifestfilter=video_bitrate:0-9000000
```
此範例將影片位元速率限制為 9 Mbps 或更低，適用於基本訂閱層。

**語言選擇**  
若要篩選特定音訊語言，請將此參數新增至資訊清單請求：  

```
aws.manifestfilter=audio_language:fr,en-US,de
```
此範例僅包含法文、美式英文和德文音軌。

**以解析度為目標**  
若要篩選特定影片解析度，請將此參數新增至資訊清單請求：  

```
aws.manifestfilter=video_height:240-360,720-1080
```
此範例包含高度介於 240-360 像素和 720-1080 像素的影片串流，不包括中範圍解析度。

**以轉碼器為基礎的篩選**  
若要篩選特定視訊轉碼器，請將此參數新增至資訊清單請求：  

```
aws.manifestfilter=video_codec:h264,h265
```
此範例僅包含 H.264 和 H.265 視訊串流，不包括其他轉碼器。

## 特殊考量和限制
<a name="filtering-considerations"></a>

若要避免實作資訊清單篩選時的常見問題：

### 技術限制
<a name="technical-limitations"></a>
+ 對於 TS 資訊清單，請使用音訊轉譯群組，以避免移除使用篩選掉的音訊串流進行多工處理的視訊串流
+ 在 TS 和 CMAF 資訊清單中，音訊取樣率和視訊位元速率不容易在資訊清單中顯示以供驗證
+ 附加至媒體播放清單或區段的請求參數將導致 HTTP 400 錯誤

### 錯誤情況
<a name="error-conditions"></a>
+ 如果篩選結果顯示空白資訊清單 （沒有串流符合篩選條件），MediaPackage 將傳回 HTTP 400 錯誤
+ 衝突的篩選條件組態 （端點篩選條件 \$1 查詢參數） 會導致 HTTP 404 錯誤
+ 無效的篩選條件語法或不支援的篩選條件類型會導致 HTTP 400 錯誤

### 效能考量
<a name="performance-considerations"></a>
+ 每個唯一的篩選條件組合都會建立個別的快取項目，進而降低快取效率
+ 具有許多條件的複雜篩選條件可能會影響資訊清單產生效能
+ 考慮使用端點層級篩選條件進行靜態篩選案例，以改善快取效能

## 測試您的篩選實作
<a name="filtering-testing"></a>

測試資訊清單篩選實作對於確保瀏覽者根據其存取層級和裝置功能接收正確的內容至關重要。失敗的篩選可能會導致瀏覽者收到不正確的品質等級、不支援的格式，或他們不應存取的內容。全面測試有助於在這些問題影響瀏覽者之前識別和解決這些問題。

若要驗證資訊清單篩選是否正常運作：

1. 請求具有不同篩選條件參數的資訊清單，並驗證結果

1. 檢查篩選的資訊清單是否僅包含預期的串流

1. 測試邊緣案例 （空白結果、無效的篩選條件），以確保適當的錯誤處理

1. 確認您的 CDN 已正確轉送篩選條件參數

1. 使用不同的裝置和玩家進行測試，以確保相容性

如需疑難排解篩選問題，請參閱*疑難排解 MediaPackage CDN 整合問題*。

如果您遇到 HTTP 400 錯誤、空白資訊清單或篩選參數無法如預期運作，請參閱 [針對 MediaPackage、CDN 和 MediaTailor 整合進行故障診斷](cdn-emp-troubleshooting.md) 以取得特定資訊清單篩選疑難排解指引。