CloudFront と AWS Media Services によるライブストリーミングビデオの配信
CloudFront と AWS Media Services を使用して、世界中の視聴者にライブコンテンツを配信するには、このセクションに含まれるガイダンスに従います。
AWS Elemental MediaLive を使用して、ライブビデオストリームをリアルタイムでエンコードします。大きいビデオストリームをエンコードするために、MediaLive ではビューワーに配信できる小さいバージョン (エンコード) に圧縮されます。
ライブビデオストリームを圧縮した後、次の 2 つの主要なオプションのいずれかを使用して、コンテンツを準備および配信できます。
-
必要な形式にコンテンツを変換して配信する: AWS Elemental MediaPackage
を使用して、ビデオコンテンツを 1 つの形式から複数の形式に変換し、さまざまなタイプのデバイス用にコンテンツをパッケージ化できます。コンテンツをパッケージ化するときに、追加の機能を実装し、デジタル著作権管理 (DRM) を追加して、コンテンツの不正使用を防ぐこともできます。CloudFront を使用して MediaPackage でフォーマットされたコンテンツを配信する詳細な手順については、「AWS Elemental MediaPackage でフォーマットされたライブビデオの配信」を参照してください。 -
スケーラブルなオリジンを使用してコンテンツを保存して配信する: ビューワーが使用するすべてのデバイスに必要な形式で MediaLive によってコンテンツがエンコードされる場合は、AWS Elemental MediaStore のような高スケーラブルなオリジンを使用してコンテンツを配信します。CloudFront を使用して MediaStore コンテナに保存されているコンテンツを配信する詳細な手順については、「AWS Elemental MediaStore をオリジンとしたビデオの配信」を参照してください。
これらのオプションのいずれかを使用してオリジンを設定したら、CloudFront を使用して、ビューワーにライブストリーミングビデオを配信できます。
可用性の高いリアルタイムの視聴エクスペリエンスを実現するサービスを自動的にデプロイする AWS ソリューションについて、情報を入手することができます。このソリューションを自動的にデプロイする手順については、「ライブストリーミングの自動デプロイ」を参照してください。
AWS Elemental MediaStore をオリジンとしたビデオの配信
AWS Elemental MediaStore コンテナにビデオを保存している場合は、CloudFront ディストリビューションを作成してコンテンツを配信できます。
開始するには、CloudFront に MediaStore コンテナへのアクセスを許可します。次に、CloudFront ディストリビューションを作成し、MediaStore で使用するように設定します。
AWS Elemental MediaStore コンテナからコンテンツを配信するには
-
Amazon CloudFront に MediaStore コンテナへのアクセスを許可するの手順に従い操作した後、次の手順に戻ってディストリビューションを作成します。
-
次の設定でディストリビューションを作成します。
- オリジンドメイン
-
MediaStore コンテナに割り当てられたデータエンドポイントです。ドロップダウンリストから、ライブビデオ用の MediaStore コンテナを選択します。
- オリジンのパス
-
オブジェクトが保存されている MediaStore コンテナのフォルダ構造です。詳細については、「」を参照してくださいオリジンのパス
- カスタムヘッダーを追加する
-
CloudFront がリクエストをオリジンに転送するときにカスタムヘッダーを追加する場合は、ヘッダーの名前と値を追加します。
- ビューワープロトコルポリシー
-
[Redirect HTTP to HTTPS (HTTP から HTTPS へのリダイレクト)] を選択します。詳細については、「」を参照してくださいビューワープロトコルポリシー
- キャッシュポリシーとオリジンリクエストポリシー
-
キャッシュポリシーでは、[Create policy] (ポリシーの作成) を選択し、キャッシュのニーズとセグメントの継続期間に適したキャッシュポリシーを作成します。ポリシーを作成したら、キャッシュポリシーのリストを更新し、先ほど作成したポリシーを選択します。
オリジンリクエストポリシーでは、ドロップダウンリストから [CORS-CustomOrigin] (CORS-CustomOrigin)を選択します。
その他の設定については、他の技術的要件またはビジネスのニーズに基づいて特定の値を設定できます。ディストリビューションのすべてのオプションのリストおよびその設定に関する情報については、「ディストリビューションを作成または更新する場合に指定する値」を参照してください。
-
アプリケーション (メディアプレーヤーなど) 内のリンクの場合は、CloudFront を使用して配信する他のオブジェクトと同じ形式でメディアファイルの名前を指定します。
AWS Elemental MediaPackage でフォーマットされたライブビデオの配信
AWS Elemental MediaPackage でライブストリームをフォーマットした場合は、CloudFront ディストリビューションを作成し、ライブストリームを配信するようにキャッシュ動作を設定できます。以下のプロセスでは、MediaPackage を使用してライブビデオ用のチャネルの作成とエンドポイントの追加が済んでいることを前提としています。
以下のプロセスを使用する代わりに、MediaPackage でのチャネルの保存時に CloudFront ディストリビューションを自動的に作成することもできます。詳細については、AWS Elemental MediaPackage ユーザーガイドの「AWS Elemental MediaPackage でのディストリビューションの作成」を参照してください。
MediaPackage で CloudFront ディストリビューションを手動で作成するには、以下の手順に従います。
ステップ
ステップ 1: CloudFront ディストリビューションを作成して設定する
以下の手順を実行して、MediaPackage で作成したライブビデオチャネルの CloudFront ディストリビューションを設定します。
ライブビデオチャネルのディストリビューションを作成するには
AWS Management Console にサインインし、https://console.aws.amazon.com/cloudfront/v3/home
で CloudFront コンソールを開きます。 -
[ディストリビューションの作成] を選択します。
-
以下のようなディストリビューション用の設定を選択します。
- オリジンドメイン
-
MediaPackage ライブビデオチャネルとエンドポイントがあるオリジン。テキストフィールドを選択し、ドロップダウンリストからライブビデオ用の MediaPackage チャンネルを選択します。1 つのチャネルを複数のオリジンにマップできます。
別の AWS アカウントを使用してチャネルを作成した場合は、オリジンの URL 値をフィールドに入力します。オリジンは HTTPS URL であることが必要です。
詳細については、「」を参照してくださいオリジンドメイン
- オリジンのパス
-
コンテンツが配信される MediaPackage エンドポイントへのパス。オリジンドメイン名を選択すると、CloudFront によってオリジンのパスが入力されます。
[Origin domain] (オリジンドメイン) に別の AWS アカウントのチャネルを使用することを選択した場合、[Origin path] (オリジンパス) フィールドは自動的に入力されません。別のアカウントにサインインし、正しいオリジンパスを入手して、手動で入力する必要があります。
オリジンパスの仕組みの詳細については、オリジンのパス を参照してください。
その他のディストリビューション設定には、他の技術的要件またはビジネスニーズに基づいて値を指定します。ディストリビューションのすべてのオプションのリストおよびその設定に関する情報については、「ディストリビューションを作成または更新する場合に指定する値」を参照してください。
他のディストリビューションの設定を選択したら、[Create Distribution] (ディストリビューションの作成) を選択します。
-
作成したディストリビューションを選択し、[Behaviors] (動作) タブを選択します。
-
デフォルトのキャッシュ動作を選択し、[Edit] (編集) をクリックします。オリジンに対して選択したチャネルの正しいキャッシュ動作設定を指定します。後で他のオリジンを 1 つ以上追加し、それらのキャッシュ動作設定を編集します。
-
CloudFront ディストリビューションページ
に移動します。 -
ディストリビューションの [Last modified] (最終更新日時) 列の値が [Deploying] (デプロイ中) から日付と時刻に変わって、CloudFront によってディストリビューションが作成されたことが示されるまで待ちます。
ステップ 2: オリジンとして他のエンドポイントを追加する
この手順を繰り返して、各 MediaPackage チャンネルエンドポイントをディストリビューションに追加します。
オリジンとして他のエンドポイントを追加するには
-
CloudFront コンソールで、チャンネル用に作成したディストリビューションを選択します。
-
[Origins] (オリジン)、[Create origin] (オリジンの作成) の順に選択します。
-
[Origin domain] (オリジンドメイン)では、ドロップダウンリストからチャネルの MediaPackage エンドポイントを選択します。CloudFront は [Origin Path] (オリジンパス) フィールドに自動的に入力します。
-
その他の設定には、他の技術的要件またはビジネスニーズに基づいて値を指定します。詳細については、「」を参照してくださいオリジンの設定
-
[Create Origin] (オリジンの作成) を選択します。
ステップ 3: すべてのエンドポイントのキャッシュ動作を設定する
エンドポイントごとに、キャッシュ動作を設定して、リクエストを正しくルーティングするパスパターンを追加する必要があります。指定するパスパターンは、配信するビデオの形式によって異なります。次の手順には、Apple HLS、CMAF、DASH、および Microsoft スムーズストリーミング形式で使用するパスパターン情報が含まれています。
通常、エンドポイントごとに 2 つのキャッシュ動作を設定します。
-
ファイルのインデックスになる親マニフェスト
-
セグメント (ビデオコンテンツのファイル)
エンドポイントのキャッシュ動作を作成するには
-
CloudFront コンソールで、チャンネル用に作成したディストリビューションを選択します。
-
[Behaviors] (動作)、[Create Behavior] (動作の作成) の順に選択します。
-
[Path pattern] (パスパターン) では、各エンドポイントタイプについて、次のガイダンスに示される最初のパターンを入力します。例えば、DASH エンドポイントではタイプ
*.mpd
となります。- パスパターン
-
HLS エンドポイントの場合、以下の 2 つのキャッシュ動作を作成します。
-
親および子マニフェストの場合は、
*.m3u8
を使用します。 -
コンテンツセグメントの場合は、
*.ts
を使用します。
CMAF エンドポイントの場合、以下の 2 つのキャッシュ動作を作成します。
-
親および子マニフェストの場合は、
*.m3u8
を使用します。 -
コンテンツセグメントの場合は、
*.mp4
を使用します。
DASH エンドポイントの場合、以下の 2 つのキャッシュ動作を作成します。
-
親マニフェストの場合は、
*.mpd
を使用します。 -
コンテンツセグメントの場合は、
*.mp4
を使用します。
Microsoft Smooth Streaming エンドポイントの場合、マニフェストのみが使用されるため、1 つのキャッシュ動作のみを作成します:
index.ism/*
。 -
-
キャッシュ動作ごとに、以下の設定の値を指定します。
- ビューワープロトコルポリシー
-
[Redirect HTTP to HTTPS (HTTP から HTTPS へのリダイレクト)] を選択します。
- キャッシュポリシーとオリジンリクエストポリシー
-
キャッシュポリシーでは、[Create policy] (ポリシーの作成) を選択します。新しいキャッシュポリシーでは、次の設定を指定します。
- 最小 TTL
-
古いコンテンツを提供しないように 5 秒以下に設定します。
- クエリ文字列
-
クエリ文字列([Cache key settings] (キャッシュキー設定)) で、[Include specified query strings] (指定したクエリ文字列を含める) を選択します。[Allow] (許可) では、次の値を入力し、[Add item] (アイテムを追加) を選択します。
-
CloudFront によってキャッシュの基準として使用されるクエリ文字列パラメータとして
m
を追加します。MediaPackage レスポンスには、エンドポイントの変更時間を取得するためのタグ?m=###
が常に含まれます。コンテンツがすでにキャッシュされていて、このタグに別の値が設定されている場合、CloudFront はキャッシュされたバージョンを配信する代わりに新しいマニフェストをリクエストします。 -
MediaPackage でタイムシフト表示機能を使用している場合は、マニフェストリクエスト (
start
、end
、*.m3u8
) のキャッシュ動作の追加のクエリ文字列パラメータとして*.mpd
とindex.ism/*
を指定します。これにより、マニフェストリクエストで指定した期間に固有のコンテンツが配信されます。タイムシフト表示の詳細、コンテンツ開始および終了リクエストパラメータの形式の詳細については、AWS Elemental MediaPackage ユーザーガイドのタイムシフト表示を参照してください。 -
MediaPackage でマニフェストフィルタリング機能を使用している場合は、マニフェストリクエスト (
*.m3u8
、*.mpd
、index.ism/*
) のキャッシュ動作の追加のクエリ文字列パラメータとしてaws.manifestfilter
を指定します。これにより、aws.manifestfilter
クエリ文字列を MediaPackage オリジンに転送するようにディストリビューションが設定されます。これは、マニフェストフィルタリング機能を有効にするために必要です。詳細については、AWS Elemental MediaPackage ユーザーガイドのマニフェストのフィルタ処理を参照してください。
-
-
[Create] を選択します。
-
キャッシュポリシーを作成したら、キャッシュ動作の作成ワークフローに戻ります。キャッシュポリシーのリストを更新し、先ほど作成したポリシーを選択します。
-
[Create behavior] (動作の作成) を選択します。
-
エンドポイントが Microsoft Smooth Streaming エンドポイント以外の場合、次の手順を繰り返して 2 つ目のキャッシュ動作を作成します。
ステップ 4: CloudFront を使用してライブストリームチャネルを提供する
ディストリビューションを作成し、オリジンを追加し、キャッシュ動作を作成したら、CloudFront を使用してライブストリームチャネルを配信できます。CloudFront は、キャッシュ動作用に定義した設定に基づいて、ビューワーからのリクエストを正しい MediaPackage エンドポイントにルーティングします。
アプリケーション (メディアプレーヤーなど) 内のリンクの場合は、CloudFront URL の標準形式でメディアファイルの URL を指定します。詳細については、「」を参照してくださいCloudFront でファイルの URL の形式をカスタマイズする