マニフェストでのフィルタリング - AWS Elemental MediaPackage

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

マニフェストでのフィルタリング

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

マニフェストフィルタの使用

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

マニフェストフィルタリングは、 でサポートされているすべてのエンドポイントタイプで使用できます MediaPackage。

  • Apple HLS

  • DASH-ISO

  • Microsoft Smooth Streaming

  • CMAF

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

注記

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

クエリ構文

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

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= 名前と値のペアで構成されたパラメータが続くベースクエリ。すべての使用可能なパラメータのリストについては、「マニフェストフィルタクエリパラメータ」を参照してください。
: パラメータ名と値を関連付けるために使用されます。例えば、parameter_name:value などです。
; 複数のパラメータを含むクエリのパラメータを区切ります。例えば、「parameter1_name:value;parameter2_name:minValue-maxValue」と入力します。
, 値のリストを区切ります。例えば、「parameter_name:value1,value2,value3」と入力します。リスト内のカンマ区切り値は、OR 関係を意味します。
- パラメータの最小値 - 最大値の範囲を定義するために使用します。例えば、「audio_sample_rate:0-44100」と入力します。範囲内で数値が使用される場合、その数値は範囲定義に含まれます。つまり、ストリームは最小値以上で、最大値以下である必要があります。範囲の場合、最小値と最大値は必須です。サポートされている範囲値は 0 - 2147483647 です。
注記

Amazon を CDN CloudFront として使用する場合は、追加の設定が必要になる場合があります。詳細については、「すべてのエンドポイントのキャッシュ動作を設定する」を参照してください。

マニフェストフィルタクエリパラメータ

MediaPackage では、次のクエリパラメータがサポートされています。

カテゴリ 名前 説明
音声 audio_bitrate
  • オーディオビットレート (ビット/秒)。

  • 許容値: 含まれる範囲を定義するダッシュで集計された 2 つの整数。サポートされている範囲値は 0 - 2147483647 です。

stream.mpd?aws.manifestfilter=audio_bitrate:0-2147483647
音声 audio_channels
  • オーディオチャネルの数。

  • 許容値: 含まれる範囲を定義するダッシュで集計された 2 つの整数。サポートされている範囲値は 1 - 32767 です。

stream.mpd?aws.manifestfilter=audio_channels:1-8
音声 audio_codec
  • オーディオコーデックタイプ。

  • 許容値: AACLAACHAC-3EC-3AC-3EC-3 には - を含める必要があります。

    値では大文字と小文字が区別されません

stream.mpd?aws.manifestfilter=audio_codec:AACL,AC-3
音声 audio_language
  • エンコーダーパススルーから派生したオーディオ言語または機能コード。

  • 許容値: 2 文字または 4 文字の ISO-639-1 言語コードなどの任意文字列。エンコーダーで設定されている言語文字列と同じものを使用する必要があります。

    値では大文字と小文字が区別されません

stream.mpd?aws.manifestfilter=audio_language:fr,en-US,de
音声 audio_sample_rate
  • オーディオサンプルレート (Hz)。

  • 許容値: 含まれる範囲を定義するダッシュで集計された 2 つの整数。サポートされている範囲値は 0 - 2147483647 です。

stream.mpd?aws.manifestfilter=audio_sample_rate:0-44100
サブタイトル subtitle_language
  • エンコーダーパススルーから派生したサブタイトル言語または機能コード。

  • 許容値: 2 文字または 4 文字の ISO-639-1 言語コードなどの任意文字列。エンコーダーで設定されている言語文字列と同じものを使用する必要があります。

    値では大文字と小文字が区別されません

stream.mpd?aws.manifestfilter=subtitle_language:en-US, hi
動画 trickplay_height
  • トリックプレイのイメージの高さ (ピクセル単位)。これは、I フレームのみと画像ベースのトリックプレイの両方に該当します。

    注記

    このパラメータを I フレームのみのトリックプレイで使用する場合、trickplay_heightvideo_height は類似した値になります。値が同じでない場合は、I フレームのみのトラックがマニフェストから削除されることがあります。

  • trickplay_height フィルターは DASH on VOD をタイリングする前に適用されます。

  • 許容値: 含まれる範囲を定義するダッシュで集計された 2 つの整数。サポートされている範囲値は 1 - 2147483647 です。

stream.mpd?aws.manifestfilter=trickplay_height:200-1200
動画 trickplay_type
  • トリックプレイトラックのタイプ。I フレームまたはイメージのトリックプレイトラックでフィルターするか、none の値を使用してすべてのトリックプレイトラック (I フレームとイメージの両方) を除外できます。

  • 許容値: iframeimagenone

    値では大文字と小文字が区別されません

stream.mpd?aws.manifestfilter=trickplay_type:iframe
動画 video_bitrate
  • 動画ビットレート (ビット/秒)。

    注記

    このパラメータを使用する場合は、video_bitrate フィルタパラメータのみを使用してビデオビットレートを設定することをお勧めします。 MediaPackage コンソールまたは を使用して、ビデオの最小ビットレートと最大ビットレートも設定しないでくださいAWS CLI。video_bitrate フィルタは、エンドポイントで作成されたビデオビットレート設定に適用されます。パラメータを使用し、コンソールまたは AWS CLI でビットレートを設定すると、出力が歪む可能性があります。

  • 許容値: 含まれる範囲を定義するダッシュで集計された 2 つの整数。サポートされている範囲値は 0 - 2147483647 です。

  • 注記

    このパラメータは、トリックプレイストリームでは使用できません。

stream.mpd?aws.manifestfilter=video_bitrate:0-2147483647
動画 video_codec
  • 動画のコーデックタイプ。

  • 許容値: H264H265

    値では大文字と小文字が区別されません

stream.mpd?aws.manifestfilter=video_codec:h264
動画 video_dynamic_range
  • 動画のダイナミックレンジ。

  • 許容値: hdr10hlgsdr

    値では大文字と小文字が区別されません

stream.mpd?aws.manifestfilter=video_dynamic_range:hdr10
動画 video_framerate
  • NTSC 形式の動画のフレームレート範囲。

  • 許容値: 含まれる範囲を定義するダッシュで集計された 2 つの浮動小数点数。各数値には、最大 3 つのオプションの小数値を指定できます。例えば、29.9729.764 などです。サポートされている範囲値は 1 - 999.999 です。

stream.mpd?aws.manifestfilter=video_framerate:23.976-30
動画 video_height
  • ビデオの高さ (ピクセル単位)。

    注記

    このパラメータを I フレームのみのトリックプレイで使用する場合、trickplay_heightvideo_height は類似した値になります。値が同じでない場合は、I フレームのみのトラックがマニフェストから削除されることがあります。

  • 許容値: 含まれる範囲を定義するダッシュで集計された 2 つの整数。サポートされている範囲値は 1 - 32767 です。

stream.mpd?aws.manifestfilter=video_height:720-1080

マニフェストフィルタリングの例

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

例 1: AVC および 44.1k 音声サンプルレートをサポートするプレーヤーをターゲットにする

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

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

例 2: 4k HEVC コンテンツを制限する

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

?aws.manifestfilter=video_bitrate:0-9000000

例 3: 23.976 ~ 30 フレーム/秒のビデオを含める

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

?aws.manifestfilter=video_framerate:23.976-30

HLS および CMAF マニフェストの特別な条件

HLS または CMAF マニフェストを使用している場合は、これらの特別な条件が適用されます。

  • HLS マニフェストの場合、除外されたオーディオストリームと多重化されているビデオストリームを削除しないように、オーディオレンディショングループを使用することを強くお勧めします。レンディショングループの詳細については、「AWS Elemental MediaPackage のレンディショングループのリファレンス」を参照してください。

  • HLS および CMAF マニフェストでは、音声サンプルレートは通知されないため、この設定の元のマニフェスト、またはフィルタリングされたマニフェストを視覚的に確認することは容易ではありません。音声サンプルレートを確認するには、エンコーダーレベルおよび出力レベルで音声サンプルレートを確認します。

  • HLS および CMAF マニフェストでは、バリアントの BANDWIDTH 属性は、音声トラックの帯域幅を、ビデオトラックと多重化されているか、ビデオトラックが参照するオーディオレンディショントラックであるかにかかわらず、ビデオトラックに関連付けます。したがって、元のマニフェストとフィルタリングされたマニフェストを視覚的に検査して、video_bitrate フィルターが機能していることを確認することはできません。フィルタを確認するには、エンコーダーレベルと出力レベルでビデオビットレートを確認します。

  • HLS および CMAF マニフェストの場合、ビットレートのプレイリストまたはセグメントにリクエストパラメータが追加されると、HTTP 400 エラーが発生します。

エラー状態

次の表に一般的なエラー状態を示します。

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