Amazon Web Services ブログ

AWS Media Services を使用した仮想リニア OTT チャンネルのデプロイ

この Blog では、AWS Elemental MediaTailor で Channel Assembly を使用してチャンネルのスケジュールを定義し、ビデオオンデマンド (VOD) とライブストリーミングビデオの両方を順次配信できる仮想リニア OTT チャンネルを作成する方法について詳しく説明していきます。これは、無料広告付きテレビ (FAST、free ad-supported television) を提供したいという顧客ニーズの高まりに起因しています。FAST は消費者の間で急速に普及しており、場合によっては、加入者の過負荷に対する救済策として利用されています。Amazon Web Services (AWS) のスケーラブルなサービスを利用することで、FAST はターゲット広告と予測可能なコストでより多くの価値を届ける機会を提供します。この記事では、VOD アセットとライブストリームを使用して、24  時間 365 日の FAST リニアオーバーザトップ (OTT) チャンネルを構築して収益化する方法と、サーバーサイド広告挿入を組み込む方法について説明していきます。

構成要素

この設定は、3 つの主要な要素で構成されます:

  1. AWS Elemental MediaLive チャンネルを使用してライブ動画ソースを取り込みます。トランスコードされた動画セグメントをジャストインタイムで AWS Elemental MediaPackage チャンネルに書き込み、オリジンとします。
  2. VOD ソース、フィラースレート、広告ブレークスレートを保存する Amazon Simple Storage Service (S3) バケット。
  3. MediaTailor の Channel Assembly 機能を使用したリニア OTT チャンネル。これは個々のコンテンツソースを組み立て、今後の番組スケジュールを宣言し、コンテンツと広告ブレークの順序を正確に予測します。

アーキテクチャ

MediaLive と MediaPackage を使用したライブソースの作成

AWS Management Console から MediaLive の Workflow Wizard を使用することで、ライブストリーミング エンドポイントを迅速に作成できます。詳細は、以下の Blog で説明されている手順に従ってください。

ライブストリーミングチャンネルを AWS Elemental MediaLive Workflow Wizard で素早く作成する (日本語翻訳記事はこちら)

ライブチャンネルを作成したら、MediaPackage → Channels → <あなたの Channel> → Manage endpoints → < あなたの HLS endpoint> → Packager settings → Additional configuration → Program date/time interval (sec.) が、以下の画像のように「1」に設定されていることを確認してください。

ライブソースのトランスコードプロファイルに合わせた、VOD ソースを作成する

VOD アセット (MP4 コンテナである可能性があります) を Amazon S3 バケットにアップロードする必要があります。AWS Elemental MediaConvert を使用してアセットを再トランスコードし、MediaLive チャンネルの ABR スタックと一致させます。つまり、再トランスコードされた VOD アセットとライブストリーミングエンドポイントの両方で、レンディション数とそれぞれの解像度が同じになります。

MediaTailor の Channel Assembly を設定する

Channel Assembly を設定する前に、下記の考慮が不可欠です:

a. ライブ、VOD、およびスレート広告のソースには、同じ数の HLS レンディションが含まれている必要があります。

b. ライブソースには、HLS の #EXT-X-PROGRAM-DATE-TIME タグが含まれている必要があります。

c. ライブ、VOD、スレートのソースは、インターネット経由で到達可能である必要があります (例:Amazon CloudFront 配信など) 。

設定方法
AWS Management Console → MediaTailor から、”New source location” を選択します。

Source location メニューでは、”Name” と “Base URL” を記入します。”Base URL” は、Channel Assembly が VOD またはライブコンテンツを探すドメインを指します。この例では、MediaPackage エンドポイントに関連しています (パス全体ではなく、ドメイン名だけを含んでいることに注意してください)。

Source location メニューから、ライブソースを追加します。

package configuration と、チャンネル上の出力を関連付ける source group を追加します。ソースに package configuration を作成するときに、source group の名前を識別します。

チャンネルに出力を作成するときに、同じ名前を入力して出力を package configuration に関連付けます。チャンネルの番組に追加されるソースは、ライブまたは VOD のいずれであっても、出力で識別される source group (この例では source-group-1) に属している必要があります。

live source メニューから「Name」と「Relative path」を入力します。最後のパラメータは、ライブコンテンツを取得するため、前に設定したドメインを補完するパスを指していることに注意してください。

VOD とスレートソースについても同様の処理を行います。

特定の長さ (例えば 30 秒) で広告が必要な場合、同じ長さの VOD ソースを追加する必要があります。この例では、30 秒のカラーバーが追加されています。

「Name」を入力し、Tier を「Standard」に選択し、ライブチャンネルにライブまたは VOD 番組がない場合のフィラースレートとして使用する「Source location」と「VOD Source name」を指定します。

次に、”Manifest Name” に任意の値を入力します。ほとんどの場合、「index」でよく、エンドユーザーの動画プレイヤーで認識されるマニフェストは「index.m3u8」になります。

次のセクションでは、アクセス制御のための最も適切なオプションを選択します。この例では、インターネットユーザーが仮想ライブ OTT チャンネルを取得できるようにしたいので、「Attach public policy」を選択します。

さらに条件を追加するには、https://docs.thinkwithwp.com/IAM/latest/UserGuide/access_policies_create.html を参照してください。

MediaTailor チャンネルの準備ができたら、VOD やライブ番組を追加できます。

各 VOD 番組には、単一または複数の広告ブレークを含めることができます。広告ブレークを設定するには、「Source location」と「VOD Source」のパラメータを入力する必要があります。これらのフィールドで参照されるコンテンツの長さは、広告ブレークの長さと正確に一致する必要があります。複数の広告ブレークがある場合、「Offset in millseconds」パラメータを定義する必要があります。この値は、VOD コンテンツの冒頭の「ゼロ」参照を考慮した、未来の時間を示します。このようにして、1 つの VOD ソースは、時間経過に合わせて長さの異なる複数の広告ブレークを含むことができます。より技術的な観点から見ると、DATERANGE 形式に従って、HLS マニフェストに SCTE-35 マーカーを挿入することで、広告の区切りを表現することができます。 詳細については、https://docs.thinkwithwp.com/elemental-live/latest/ug/scte-35-ad-marker-ext-x-daterange.html を参照してください。

ライブソースの場合、番組の開始日時を指定します。開始日時は、現在時刻から少なくとも 15 分後であることが不可欠です。playback configurationの「Relative Position」は、リニアスケジュールの最初の番組には適用されません。次の番組では、その値を「After Program」に設定する必要があります。

番組が正常に作成されたら、チャンネルを開始します。チャンネルをテストするには、チャンネルの「Outputs」セクションに表示された URL をコピーし、HLS.js 動画プレイヤー (デモプレイヤーはこちら:https://hls-js.netlify.app/demo) を使用して再生してください。

この URL は、MediaTailor の「Ad-insertion」コンポーネントへのフィードにも使用でき、サーバーサイド広告挿入 (SSAI、server-side ad insertion) として動作し、Amazon S3 バケットにある静的 VAST ファイルの広告決定サーバー (ADS、ad decision server) とのやり取りを実行することができます。MediaTailor の設定と ADS との統合については、この記事のパート 2 で説明します。

仮想リニア OTT チャンネルの再生テストを行うには、https://hls-js.netlify.app/demo/ を開き、前の手順でコピーした URL を入力して、「Apply」を押します。

再生時にチャンネルに視聴可能な番組がない場合は、スレート映像が表示されます。

まとめ

この Blog では、無料広告付きテレビ (FAST) とも呼ばれる、仮想リニア OTT チャンネルを配信するための HLS エンドポイントを作成しました。MediaTailor Channel Assembly を使用してライブおよび VOD コンテンツの番組をスケジュールし、スレート広告を表示するために広告ブレークを挿入する手順を時系列で説明しました。エンドポイント URL を取得した後、Web ベースのテスト用 HLS 動画プレイヤーでチャンネルの正常な再生が行われることを確認しました。ニュースやスポーツなどのライブイベントと VOD ソースをスムーズに切り替えられるようになったほか、広告ブレークの導入により、パーソナライズされたライブプレイリストを幅広く作成し、エンドユーザーの体験を向上させることができるようになりました。

参考リンク

AWS Media Services
AWS Media & Entertainment Blog (日本語)
AWS Media & Entertainment Blog (英語)
AWS のメディアチームの問い合わせ先: awsmedia@amazon.co.jp
※ 毎月のメルマガをはじめました。最新のニュースやイベント情報を発信していきます。購読希望は上記宛先にご連絡ください。

翻訳は SA 鈴木が担当しました。原文はこちらをご覧ください。