

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 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 に制限され、プレミアム階層は最大 4K になります

**デバイスの最適化**  
デバイス機能に基づいて適切なストリームを自動的に提供する  
例: モバイルデバイスはビットレートが低くなり、スマートTVs高品質になります

**帯域幅管理**  
ピーク使用期間中のストリーム品質を制限してネットワークコストを管理する  
例: トラフィックの多いイベント中の最大ビットレートを下げる

**リージョンコンテンツ**  
ビューワーの場所に基づいて異なるオーディオ言語またはコンテンツバリアントを提供する  
例: ローカル言語オーディオトラックを自動的にフィルタリングする

マニフェストフィルタリングの概念の詳細については、 AWS Elemental MediaPackage ユーザーガイドの[「マニフェストフィルタリング](https://docs.aws.amazon.com/mediapackage/latest/ug/manifest-filtering.html)」を参照してください。

## マニフェストフィルタリング用に CDN を設定する
<a name="cdn-filtering-configuration"></a>

CDN はフィルタリングを機能させるために`aws.manifestfilter`クエリパラメータを MediaPackage に転送する必要があるため、マニフェストフィルタリングの CDN 設定は不可欠です。適切なクエリ文字列転送がないと、フィルターパラメータは 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
```
この例では、モバイルデバイスに適した最大 44.1 kHz のサンプルレートで、コンテンツを H.264 ビデオとオーディオに制限します。

**プレミアムコンテンツの制限**  
高ビットレートコンテンツへのアクセスを制限するには、このパラメータをマニフェストリクエストに追加します。  

```
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)については、「」を参照してください。