Amazon Web Services ブログ

AVOD OTT のためのビデオライブラリを準備する

ビデオオンデマンド (VOD) コンテンツを配信する適切な所有権を持つお客様はサブスクリプションベースの VOD (SVOD、subscription-based VOD) と広告ベースの VOD (AVOD、advertising-based VOD) の 2 つの方法のいずれかでライブラリを収益化しています。SVOD では毎月のサブスクリプションから収益を上げ、購読者は固定料金でコンテンツライブラリにアクセスして利用することができます。このモデルは通常、購読者は何も広告を見ることなくコンテンツを利用可能であることを意味しています。もう 1 つの方法は AVOD で、サービスとコンテンツを誰でも利用可能ですが、コンテンツの途中に広告が入ります。クライアントは広告を再生しなければならず、これがお客様のビジネスで収益を上げる仕組みになっています。サーバーサイド広告挿入 (SSAI、server-side ad insertion) を使用することでクライアントサイドの広告ブロッカーがコンテンツ収益化戦略を阻害するのを防ぐことができます。

このブログでは、既存のメディアライブラリを迅速かつ効率的に収益化するための AVOD ワークフローを作成するベストプラクティスを説明します。エンドユーザーへの円滑な配信を促進するために最も重要なプロトコル、条件、要件を見直し、アマゾンウェブサービス (AWS) での収益化とワークフローの簡素化に重点を置いています。ファイルベースの動画トランスコーディングサービスである AWS Elemental MediaConvert とチャネルアセンブリおよびパーソナライズされた広告挿入サービスである AWS Elemental MediaTailor を使用した VOD アセットのキュレーションプロセスに関連するコンポーネントと規格をいくつか見てみましょう。

広告シグナル通知のオプションを検討する

コンテンツを収益化する際の主な考慮事項は、広告シグナル通知の処理方法です。コンテンツには広告マーカーが一切ないものもあれば、Society of Cable Telecommunications Engineers (SCTE)–35 の挿入ポイントマーカーがあるものもあり、また広告ブレーク中に新しい広告で上書きする必要のある「スレート」が含まれるものもあるかもしれません。これらの要件に対処するために SCTE-35、VAST、VMAP、ESAM の各規格を組み合わせて使用します。

SCTE-35

SCTE-35 は広告と番組の制御のためのシグナル通知の規格です。 SpringServeFreeWheel のような広告決定サーバー (ADS、ad decision server) に通信するタイミングを MediaTailor に通知するためにライブ、もしくは VOD の両方で SCTE-35 のシグナルを使用できます。Over-the-top (OTT) 出力を生成するときに、SCTE-35 マーカーが検出された子マニフェストのセグメント間に「discontinuities」を配置します。これによって、MediaTailor のフレームは正確に広告再生を開始し、シームレスな視聴体験を実現します。広告再生後のセグメントの先頭に IDR フレームが効果的に配置され、プレーヤーは中断後にコンテンツを更新し再生しても問題ないことを認識します。SCTE マーカーを使用して、広告の挿入や置換を通知することができます。

VAST

Video Ad Serving Template (VAST) は、広告挿入アプリケーションと ADS 間の通信に使用される規格です。VAST の XML ベースのスキーマには、広告に関する詳細なメタデータと情報、およびビーコン URL 形式で測定情報が含まれており、MediaTailor はトラッキングデータを ADS に送り返し、広告インプレッション、四分位ビュー、広告の完了を効果的にカウントできます。このビーコンはサーバーサイドの実装でデフォルトですべて処理されるため、お客様はプレーヤーをカスタマイズすることなく、より迅速に利用開始できます。追加のトラッキング要件を持つお客様のためにクライアントサイドのビーコンもサポートされています。ADS リクエストでは、標準 URL パラメータを使用します。このパラメータには、オーディエンスを年齢、性別、人口統計などのセグメントに分類して、広告の決定とパーソナライズを容易にするために「PublisherID」がよく含まれます。URL パラメータは簡単に生成できるため、MediaTailor と ADS 間のやり取りが非常にシンプルになります。

VMAP

Video Multiple Ad Playlist (VMAP) は広告挿入システムに、より複雑な指示を与えるために VAST と組み合わせて使用される規格です。VAST が 1 つのブレークに対して広告情報を返す一方で、VMAP で構築されたレスポンスでは、1 つの VMAP レスポンスで複数の VAST URL を返すことで、ADS が複数の広告ブレークで複数の広告レイアウトを指定できます。各 VAST URL は 1 つの広告ブレークに対する 1 つの広告ポッドを返すことを担当します。これは特定のメディアアセットに対して、広告ブレークの構造全体を緻密に計画する際に役立ちます。

ESAM

フレーム精度の高い挿入を実現するために、MediaConvert は Event Signaling and Management (ESAM) XML を使用します。これによって、出力が Dynamic Adaptive Streaming over HTTP (DASH) でも HTTP Live Streaming (HLS) でも、要求されたブレークの正確なタイミングを呼び出し、MediaTailor がダウンストリームで使用するために必要なマニフェストデコレーションを作成できます。下記は MediaConvert ジョブの「信号処理通知 XML」 セクションに含めることができる 2 つの ESAM XML の例です。

  • この XML は 10 秒の位置と 5 分の位置に 1 つずつ、 2 つの広告ブレークを挿入します。
  • この XML は 10 秒の位置にコンテンツの 30 秒分を上書きするシグナルを挿入します。

シグナルを作るためにこれらの XML を使用するときは、オリジナルマニフェストとの相違点を確認してください。

Moving Picture Experts Group (MPEG)–DASH マニフェストは広告シグナル通知が表示される位置を示します。HLS と違い、DASH マニフェストフォーマットは XML ベースであり、広告シグナル通知は独自の <EventStream> 要素の内部で参照されます。<Event> 要素で指定される presentation time によって、メディアセグメントタイムライン中で広告ブレークをどこに挿入するべきかが決まります。<Event> 要素で指定される duration によって、MediaTailor が広告を挿入してアセット全体の長さを増やす (duration = 0) か、基礎となる広告または既存の広告を置き換える (duration > 0) かが決まります。

SCTE-35 シグナルが VOD コンテンツに存在しない場合、MediaTailor は ADS に依存して、コンテンツ中で広告配置と再生時間を決定する VMAP レスポンスを提供します。VMAP レスポンスを使って広告を挿入する際に最良の結果を得るには、まず VOD アセット内のどこに広告を合法的に配置できるかを特定する必要があります。これは、各メディアを手動でスクラビングし、シーンの変化のタイムスタンプを記録するか、Amazon Rekognition のような AI サービスを使うことで実行できます。Amazon Rekognition は事前にトレーニング済みでカスタマイズ可能なコンピュータービジョン機能を提供し、画像と動画から情報とインサイトを抽出します。このブログは、機械学習を使用して理想的な広告ブレークを見つけるための優れたリファレンスです。広告ブレークの位置が決定された後に、上記の 2 つのシナリオと同様に ESAM ワークフローを使用してメディアをトランスコードする必要があります。これによって、広告挿入システムが正しい位置に広告を挿入することができるようになります。広告挿入のために適切な位置でセグメント化されたコンテンツを用意していないと、MediaTailor はセグメント分割、再トランスコード、IDR フレームの追加を行わないため、顧客体験が低下します。その結果、最も近いセグメント境界に広告ブレークが挿入されることとなります。

広告挿入のためのメディアを準備する

ここまで広告挿入ワークフローに必要なさまざまな規格とプロトコルを確認したので、メディアを準備するステップを確認しましょう。まず最初に、業界トップクラスの拡張性、データ可用性、セキュリティ、パフォーマンスを提供する Amazon Simple Storage Service (Amazon S3) にライブラリを保存します。ただし、Amazon S3 ストレージクラスの選択は非常に重要です。Amazon S3 のストレージクラスはさまざまなアクセスパターンに対して最も低コストのストレージを提供することを目的として構築されています。大きなマスターファイルは、MediaConvert を通過し、そして quality control に合格したらすぐに Amazon S3 Glacier Flexible Retrieval に移動してください。このストレージクラスはコストと数分から数時間のアクセス時間のバランスを取る、柔軟な取り出しオプションを提供します。もしくは、データの長期保持とデジタル保護をサポートする Amazon S3 Glacier Deep Archive を選択できます。OTT の視聴バリエーションに対しては、アクセス頻度に基づいて最もコスト効率の高いアクセス階層に自動でデータを移動する Amazon S3 Intelligent-Tiering (S3 Intelligent-Tiering) を使用できます。これによって、階層の移行を管理してストレージコストを削減できます。MediaConvert 内で HLS, DASH, Common Media Application Format (CMAF) のいずれかに出力タイプを決める必要があります。ESAM ワークフローを使って SCTE-35 マーカーを入れる場合は、下記のスクリーンショットで詳細が説明されているように、それぞれのフォーマットでパススルー/挿入が有効になっていることを確認してください。

DASH コンテナの設定

MediaTailor のような広告挿入システムでは、メディアレンディションごとにセグメントタイムラインを使って DASH マニフェストをフォーマットする必要があります。デフォルトでは、MediaConvert ではこの設定は有効になっていません。

この GitHub リポジトリを確認してください。このリポジトリでは、MediaConvert ジョブの ESAM Signal Confirmation and Conditioning (SCC) XML に基づいて、適切にマニフェストを条件付ける方法を説明しています。

MediaConvert は MP4 セグメントのヘッダーに SCTE-35 シグナル通知を含む MPEG-DASH を出力しますが、広告シグナル通知をマニフェストに書き込みません。したがって、MediaTailor がブレークポイントを認識しブレークごとに VAST リクエストを発行するためには、マニフェストの対応する期間に EventStream と Event 要素を加えられるように、トランスコード後の Lambda 関数が必要です。

HLS トランスポートストリーム (TS) コンテナの設定

HLS グループの設定

CMAF コンテナの設定

注記: CMAF を使用する場合は、MediaTailor が正しいフォーマットで広告を準備できるように、カスタムトランスコードプロファイルを作成する必要があります。

サイドカーキャプションのタイミング

MediaTailor がシームレスに広告をコンテンツに挿入するために、さまざまなメディアの種類のセグメント長が一致している必要があります (例えば、セグメントごとに 6 秒)。これは、HLS の Web Video Text Tracks (WebVTT) や MPEG-DASH の Timed Text Markup Language (TTML) のような字幕トラックにも当てはまります。

HLS TS サイドカーキャプションの設定

MediaConvert は現在、HLS WebVTT のセグメントを 300 秒間隔で出力します。これは HLS authoring spec (5.7) でサポートされていますが、動画と音声のセグメントは通常は Apple が推奨する 6 秒で設定されるので、広告の挿入にとって理想的ではありません。この GitHub リポジトリ を確認してください。このリポジトリでは、より詳細にこれを説明し、HLS 出力を修正するソリューションを提供しています。

MPEG-DASH サイドカーキャプションの設定

MPEG-DASHでは、fragmented MPEG-4 (fMP4) のカプセル化されたサイドカーキャプションフォーマットで「TTML」を選択する必要があります。これにより、MeidaConvert に信号が送られ、DASH マニフェスト内の字幕セグメントのセグメントタイムラインを作成します。

ワークフローを微調整する

プレーヤーから広告に渡されるパラメータによって、ユーザーに返される広告が決まります。MediaTailor はこれらを「player params」と呼びます。これには、視聴者の情報、ユーザー名、位置情報などが含まれ、広告をターゲティングするのに役立ちます。関連性の高い広告を表示しやすくする一般的な方法の 1 つは、オリジンマニフェストで #EXT-X-ASSET タグを使用して ADS が再生中のコンテンツを認識できるようにすることです。これをサーバーレスのイベント駆動コンピュートサービスである AWS Lambda の関数を使ってトランスコード後に追加することで、メディアアセット管理 (MAM, media asset management) システム内部でアセット情報を参照できるようになります。加えて、マネージド プライベート UPID データ を SCTE マーカーに挿入し、MediaTailor で抽出して ADS に送信できます。 このプライベート UDP データは番組名、シーズン、エピソードなどのを含み、スポンサーシップ広告のターゲティング、ジャンル、年齢レーティングを手助けします。このデータはコンテキスト広告のターゲティングと成人向け広告からの子供向けコンテンツの保護に役立ちます。視聴者に、より関連性のある広告を表示することで全体のエンゲージメント評価が改善され、収益化を促進できます。

VAST リクエストを扱うときに、#EXT-X-CUE-OUT:0 マーカーに依存しているお客様がいますが、これは広告ブレーク時間を指定しません。この場合、MediaTailor は 5 分の広告ポッドを ADS にリクエストします。これは、どの程度の広告ポッドの最大継続時間を返すか ADS 側で調整することができます。VMAP では、広告ブレーク時間は VAST リクエストが ADS にリクエストされる際に入力されるパラメータではありません。代わりに、ADS は VOD アセットの識別子を含むプレーヤーパラメータを使用して渡される「AssetID」のようなパラメータに依存します。ADS は VOD アセットの広告マップを見つけ出し、広告ブレークの位置と時間とともに VMAP レスポンスを MediaTailor に返します。

ネクストステップ

このブログでは、お客様が AVOD コンテンツライブラリの収益化を迅速に開始できるように、さまざまな設定とワークフローについて説明してきました。次に検討するべきビルディングブロックは、AWS Elemental MediaPackage を使用した暗号化とジャストインタイムパッケージングです。これによって、インターネット経由で配信される動画を確実に準備して保護できます。MediaPackage を使用すると、HLS アセットを使用して DASH または CMAF の出力をニアリアルタイムで作成して、トランスコードとストレージの要件を引き下げられます。そして、MediaPackage と MediaConvert を使用すると、より高度な暗号化要件のためにサードパーティーのデジタル著作権管理プロバイダーを導入することもできます。これらのビルディングブロックを連携させると、高い回復力があり、スケーラブルで、コスト効果の優れた AVOD をエンドユーザーに提供できます。

参考リンク

AWS Media Services
AWS Media & Entertainment Blog (日本語)
AWS Media & Entertainment Blog (英語)
AWS のメディアチームの問い合わせ先: awsmedia@amazon.co.jp
※ 毎月のメルマガをはじめました。最新のニュースやイベント情報を発信していきます。購読希望は上記宛先にご連絡ください。
翻訳は SA 小久保、SA 斎藤、SA 金目が担当しました。原文はこちらをご覧ください。