

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

# マニフェストでのフィルタリング
<a name="manifest-filtering"></a>

マニフェストフィルタリングを使用すると、 は、再生リクエストに追加されたクエリで指定したパラメータに基づいて、 AWS Elemental MediaPackage 動的にクライアントマニフェストを生成します。これにより、プレミアム 4K HEVC コンテンツへの視聴者によるアクセスを制限したり、特定のデバイスタイプや音声サンプルレートの範囲をターゲットにしたりなどを、すべて単一のエンドポイントから行うことができます。以前は、この動作を実現するために複数のエンドポイントを設定する必要がありました。現在 MediaPackage では、同じエンドポイントで異なるクライアントマニフェストを動的に生成するための、コスト効率に優れた方法が利用できます。

## マニフェストフィルタの使用
<a name="working-with-manifest-filters"></a>

マニフェストフィルタを使用すると、結果として生じるマニフェストには、クエリで指定した特性に一致するオーディオストリームとビデオストリームのみが含まれます。マニフェストフィルタを使用しない場合、取り込まれたストリームはすべてエンドポイント出力ストリームに存在します。例外は、最小ビデオビットレートなど、エンドポイントにストリームフィルタを設定した場合です。その場合、マニフェストフィルタはストリームフィルタの後に適用され、出力を歪める可能性があるため、推奨されません。

マニフェストのフィルタリングは、MediaPackage でサポートされるすべてのエンドポイントタイプで使用できます。
+ Apple HLS
+ DASH-ISO
+ Microsoft Smooth Streaming
+ CMAF

マニフェストのフィルタリングを使用するには、MediaPackage へのプレイバックリクエストに、クエリパラメータ `aws.manifestfilter` を追加します。MediaPackage はそのクエリを評価し、追加されたクエリパラメータに基づいたクライアントマニフェストを配信します。マニフェストクエリでは、大文字と小文字は区別*されず*、最大 1024 文字まで指定できます。クエリの形式が正しくない場合、またはクエリパラメータと一致するストリームがない場合、MediaPackage は不完全な (または空の) マニフェストを返します。クエリ構文については、次のセクションを参照してください。

**注記**  
Apple HLS または CMAF エンドポイントを使用している場合は、特別な条件が適用されます。これらの条件の詳細については、[HLS および CMAF マニフェストの特別な条件](#special-conditions-HLS-CMAF-manifests) を参照してください。

**クエリ構文**  
基本となるクエリパラメータは `aws.manifestfilter` で、その後にオプションのパラメータ名と値のペアが続きます。クエリを作成するには、MediaPackage エンドポイント URL の末尾に `?aws.manifestfilter=` を追加し、その後にパラメータ名と値を続けます。すべての使用可能なパラメータのリストについては、「[マニフェストフィルタクエリパラメータ](#manifest-filter-query-parameters)」を参照してください。

Apple HLS フィルタクエリは次のようになります。

`https://example-mediapackage-endpoint.mediapackage.us-west-2.amazonaws.com/out/v1/examplemediapackage/index.m3u8?aws.manifestfilter=audio_sample_rate:0-44100;video_bitrate:0-2147483647;video_codec:h265;audio_language:fr,en-US,de`

次の表に、クエリ構文が表示されます。


| クエリ文字列のコンポーネント | 説明 | 
| --- | --- | 
| ? | クエリの先頭を示す制限された文字。 | 
| aws.manifestfilter= | 名前と値のペアで構成されたパラメータが続くベースクエリ。すべての使用可能なパラメータのリストについては、「[マニフェストフィルタクエリパラメータ](#manifest-filter-query-parameters)」を参照してください。 | 
| : | パラメータ名と値を関連付けるために使用されます。例えば、parameter\$1name:value などです。 | 
| ; | 複数のパラメータを含むクエリのパラメータを区切ります。例えば、parameter1\$1name:value;parameter2\$1name:minValue-maxValue。 | 
| , | 値のリストを区切ります。例えば、parameter\$1name:value1,value2,value3。リスト内のカンマ区切り値は、OR 関係を意味します。 | 
| - | パラメータの最小値 - 最大値の範囲を定義するために使用します。例えば、audio\$1sample\$1rate:0-44100。範囲内で数値が使用される場合、その数値は範囲定義に含まれます。つまり、ストリームは最小値以上で、最大値以下である必要があります。範囲の場合、最小値と最大値は必須です。サポートされている範囲値は 0 - 2147483647 です。 | 

**注記**  
Amazon CloudFront を CDN として使用する場合は、追加の設定が必要になる場合があります。詳細については、「[すべてのエンドポイントのキャッシュ動作を設定する](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/live-streaming.html#live-streaming-with-mediapackage-create-cache-behavior)」を参照してください。

## マニフェストフィルタクエリパラメータ
<a name="manifest-filter-query-parameters"></a>

MediaPackage では、以下のクエリパラメータをサポートしています。


| Category | 名前 | 説明 | 例 | 
| --- | --- | --- | --- | 
|  音声 | audio\$1bitrate |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/mediapackage/latest/ug/manifest-filtering.html)  | stream.mpd?aws.manifestfilter=audio\$1bitrate:0-2147483647 | 
|  音声 | audio\$1channels |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/mediapackage/latest/ug/manifest-filtering.html)  | stream.mpd?aws.manifestfilter=audio\$1channels:1-8 | 
|  音声 | audio\$1codec |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/mediapackage/latest/ug/manifest-filtering.html)  | stream.mpd?aws.manifestfilter=audio\$1codec:AACL,AC-3 | 
|  音声 | audio\$1language |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/mediapackage/latest/ug/manifest-filtering.html)  | stream.mpd?aws.manifestfilter=audio\$1language:fr,en-US,de | 
|  音声 | audio\$1sample\$1rate |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/mediapackage/latest/ug/manifest-filtering.html)  | stream.mpd?aws.manifestfilter=audio\$1sample\$1rate:0-44100 | 
| サブタイトル | subtitle\$1language |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/mediapackage/latest/ug/manifest-filtering.html)  | stream.mpd?aws.manifestfilter=subtitle\$1language:en-US, hi | 
| 動画 | trickplay\$1height |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/mediapackage/latest/ug/manifest-filtering.html)  | stream.mpd?aws.manifestfilter=trickplay\$1height:200-1200 | 
| 動画 | trickplay\$1type |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/mediapackage/latest/ug/manifest-filtering.html)  | stream.mpd?aws.manifestfilter=trickplay\$1type:iframe | 
| 動画 | video\$1bitrate |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/mediapackage/latest/ug/manifest-filtering.html)  | stream.mpd?aws.manifestfilter=video\$1bitrate:0-2147483647 | 
| 動画 | video\$1codec |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/mediapackage/latest/ug/manifest-filtering.html)  | stream.mpd?aws.manifestfilter=video\$1codec:h264 | 
| 動画 | video\$1dynamic\$1range |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/mediapackage/latest/ug/manifest-filtering.html)  | stream.mpd?aws.manifestfilter=video\$1dynamic\$1range:hdr10 | 
| 動画 | video\$1framerate |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/mediapackage/latest/ug/manifest-filtering.html)  | stream.mpd?aws.manifestfilter=video\$1framerate:23.976-30 | 
| 動画 | video\$1height |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/mediapackage/latest/ug/manifest-filtering.html)  | stream.mpd?aws.manifestfilter=video\$1height:720-1080 | 

## マニフェストフィルタリングの例
<a name="manifest-filtering-examples"></a>

以下は、マニフェストフィルタリングの例です。

**Example 1: AVC および 44.1k 音声サンプルレートをサポートするプレーヤーをターゲットにする**  
視聴者は、AVC および 44.1k 音声サンプルレートのみをサポートできるデバイスでコンテンツを再生しています。`video_codec` および `audio_sample_rate` を設定して、これらの要件に合わないストリームを除外します。

`?aws.manifestfilter=audio_sample_rate:0-44100;video_codec:h264`

**Example 2: 4k HEVC コンテンツを制限する**  
4K HEVC ストリームは 15 Mbps で、他のすべてのストリームは 9 Mbps 未満です。ストリームセットから 4K ストリームを除外するには、しきい値を 9,000,000 ビット/秒に設定して、より高いビットレートを除外します。

`?aws.manifestfilter=video_bitrate:0-9000000`

**Example 3: 23.976 ～ 30 フレーム/秒のビデオを含める**  
特定のフレームレート範囲内のビデオのみを含めるには、`video_framerate` を使用します。このパラメータには、最大 3 つのオプションの 10 進値を含む浮動小数点数を指定できます。

`?aws.manifestfilter=video_framerate:23.976-30`

## HLS および CMAF マニフェストの特別な条件
<a name="special-conditions-HLS-CMAF-manifests"></a>

HLS または CMAF マニフェストを使用している場合は、これらの特別な条件が適用されます。
+ HLS マニフェストの場合、除外されたオーディオストリームと多重化されているビデオストリームを削除しないように、オーディオレンディショングループを使用することを強くお勧めします。レンディショングループの詳細については、「[でのレンディショングループのリファレンス AWS Elemental MediaPackage](rendition-groups.md)」を参照してください。
+ HLS および CMAF マニフェストでは、音声サンプルレートは通知されないため、この設定の元のマニフェスト、またはフィルタリングされたマニフェストを視覚的に確認することは容易ではありません。音声サンプルレートを確認するには、エンコーダーレベルおよび出力レベルで音声サンプルレートを確認します。
+ HLS および CMAF マニフェストでは、バリアントの `BANDWIDTH` 属性は、音声トラックの帯域幅を、ビデオトラックと多重化されているか、ビデオトラックが参照するオーディオレンディショントラックであるかにかかわらず、ビデオトラックに関連付けます。したがって、元のマニフェストとフィルタリングされたマニフェストを視覚的に検査して、`video_bitrate` フィルターが機能していることを確認することはできません。フィルタを確認するには、エンコーダーレベルと出力レベルでビデオビットレートを確認します。
+ HLS および CMAF マニフェストの場合、ビットレートのプレイリストまたはセグメントにリクエストパラメータが追加されると、HTTP 400 エラーが発生します。

## エラー状態
<a name="error-conditions-and-handling"></a>

マニフェストまたはセグメントに無効なクエリパラメータまたは不明なクエリパラメータが含まれている場合、一部の再生デバイスはエラーを返します。MediaPackage が処理できるクエリパラメータは次のとおりです。
+ `m`
+ `start`
+ `end`
+ `aws.manifestfilter`
+ `aws.drmsettings`

リストされている以外のクエリパラメータがある場合は、Amazon CloudFront などの CDN を使用して不要なパラメータを削除します。詳細については、*Amazon CloudFront デベロッパーガイド*」の[「クエリ文字列パラメータに基づくコンテンツのキャッシュ](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/QueryStringParameters.html)」を参照してください。

次の表に、その他の一般的なエラー条件を示します。


****  

| エラー状態 | 例 | HTTP ステータスコード | 
| --- | --- | --- | 
| リストパラメータが見つからず、限定されたリストの一部でもない | ?aws.manifestfilter=audio\$1language:dahlia | 200 | 
| 字幕ストリームのみがストリームに存在している | ?aws.manifestfilter=audio\$1sample\$1rate:0-1;video\$1bitrate=0-1 | 200 | 
| フィルタパラメータが重複している | ?aws.manifestfilter=audio\$1sample\$1rate:0-48000;aws.manifestfilter=audio\$1sample\$1rate:0-48000 | 400 | 
| 無効なパラメータ | ?aws.manifestfilter=donut\$1type:rhododendron | 400 | 
| 無効な範囲パラメータ | ?aws.manifestfilter=audio\$1sample\$1rate:300-0 | 400 | 
| 無効な範囲値 (INT\$1MAX 以上) | ?aws.manifestfilter=audio\$1sample\$1rate:0-2147483648 | 400 | 
| 正しい形式でないクエリ文字列 | ?aws.manifestfilter=audio\$1sample\$1rate:is:0-44100 | 400 | 
| パラメータ文字列が 1024 文字を超えている | ?aws.manifestfilter=audio\$1language:abcdef.... | 400 | 
| HLS または CMAF ビットレートマニフェストのクエリパラメータ | index\$11.m3u8?aws.manifestfilter=video\$1codec:h264 | 400 | 
| セグメントリクエストのクエリパラメータ | ...\$11.[ts\$1mp4\$1vtt..]?aws.manifestfilter=video\$1codec:h264 | 400 | 
| 繰り返しクエリパラメータ | ?aws.manifestfilter=audio\$1sample\$1rate:0-48000;aws.manifestfilter=video\$1bitrate:0-1 | 400 | 
| フィルタを適用すると、空のマニフェストになる (コンテンツには、クエリ文字列で定義された条件を満たすストリームがない)。 | ?aws.manifestfilter=audio\$1sample\$1rate:0-1;video\$1bitrate=0-1 | 400 | 