このページでは、Video Stitcher API のベスト プラクティスの概要について説明します。Video Stitcher API を使い始めたばかりの場合は、ライブ ストリームのクイックスタートまたは VOD アセットのクイックスタートを参照してください。
VOD アセットの条件を設定する
DASH 期間と HLS セグメントの間の広告ブレークをサポートするマニフェストを出力するように、ソース エンコーダとトランスコーダを構成します。Video Stitcher API は、ミッドロール挿入点を合成するために期間やセグメントを分割しないため、ミッドロール挿入点は期間とセグメントの境界でのみ合成されます。
VMAP レスポンスを返す広告タグの場合、VMAP で指定された各ミッドロール挿入点は期間またはセグメントの境界と一致する必要があります。そうしないと、ミッドロール挿入点は最も近い境界で合成されます。
HLS の広告ブレークのずれを回避する
VOD の統合では、ミッドロール広告ブレーク用にソース動画マニフェストに事前条件付けを行い、事前条件付けされたオフセット位置でミッドロール広告ブレークを返すように Video Multiple Ad Playlist(VMAP)広告タグを設定する必要があります。Video Stitcher API は、トランスコードされた出力の結果を取得し、指定した場所にできるだけ近い位置に広告を挿入します。ミッドロール広告挿入点に事前条件付きの入力を使用すると、広告の統合動作の一貫性と正確性が高まります。
たとえば、次の動画再生リストでは、7 秒の時点で広告を配置する機会があります。
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-TARGETDURATION:4
#EXTINF:2.0
../video/180_250000/hls/segment_0.ts
#EXTINF:2.0
../video/180_250000/hls/segment_1.ts
#EXTINF:2.0
../video/180_250000/hls/segment_2.ts
#EXTINF:1.0
../video/180_250000/hls/segment_3.ts
#EXT-X-PLACEMENT-OPPORTUNITY
#EXTINF:2.0
../video/180_250000/hls/segment_4.ts
次のオーディオ再生リストは、7 秒の時点で広告の配置機会を示しています。
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-TARGETDURATION:4
#EXTINF:1.99
../audio/1_stereo_128000/hls/segment_0.ts
#EXTINF:1.99
../audio/1_stereo_128000/hls/segment_1.ts
#EXTINF:1.99
../audio/1_stereo_128000/hls/segment_2.ts
#EXTINF:1.03
../audio/1_stereo_128000/hls/segment_3.ts
#EXT-X-PLACEMENT-OPPORTUNITY
#EXTINF:1.99
../audio/1_stereo_128000/hls/segment_4.ts
次の VMAP 構成では、7 秒の時点で発生する広告ブレークを指定しています。動画と音声の再生リストでは、ちょうど 7 秒の時点でミッドロール挿入点が追加されます。
<vmap:VMAP xmlns:vmap="http://www.iab.net/videosuite/vmap" version="1.0">
<vmap:AdBreak timeOffset="00:00:07.000" breakType="linear" breakId="midroll‑1">
<vmap:AdSource id="midroll-1‑ad‑1" allowMultipleAds="false" followRedirects="true">
<vmap:AdTagURI templateType="vast3">
<![CDATA[
https://securepubads.g.doubleclick.net/gampad/ads?...
]]>
</vmap:AdTagURI>
</vmap:AdSource>
</vmap:AdBreak>
</vmap:VMAP>
ライブアセットと VOD アセットに複数期間の DASH マニフェストを使用する
単一の期間ではなく複数の期間で DASH マニフェストを出力するように、ソース エンコーダとトランスコーダを構成します。VOD の条件付けと同様の理由で、Video Stitcher API はミッドロール挿入点を合成するために期間を分割しないため、複数の期間を含む DASH マニフェストでは、予想される長さでミッドロール挿入点を合成する機会が増えます。
字幕を ISOBMFF にカプセル化する
ほとんどのメディア プレーヤーとの互換性を確保するため、DASH マニフェストの字幕は、MP4 などの ISO ベースのメディア ファイル形式(ISOBMFF)でカプセル化する必要があります。
定数ビットレートを使用する
ライブ ストリームで安定した再生エクスペリエンスを確保するには、ストリーム マニフェストの出力時に一定のビットレートを使用するようにソース エンコーダまたはトランスコーダを構成します。これにより、Video Stitcher API は、マニフェストで指定されたエンコード プロファイルと一致するように広告を一貫して合成できます。
サポートされている広告マーカーを使用する
広告マーカーのドキュメントで、サポートされている広告マーカーと、ソース エンコーダまたはトランスコーダが広告マーカーを出力して広告ブレークを正常に統合する方法を確認してください。
ソースの再生を確認する
ライブ ストリームと VOD ストリームの安定した再生エクスペリエンスを確保するには、動画スティッチャー API で合成する前に、広く利用可能なクライアント プレーヤーを使用して、ソース ストリームが再生可能であることを確認することを検討してください。
HLS:
DASH:
CDN 鍵を管理する
ソースメディアが URL 署名によって保護されている場合は、CDN キーを動画スティッチャー API に登録する必要があります。これにより、API は次のことができます。
- 合成のためにソース動画マニフェストを取得する
- ソース動画セグメントに署名して、プレーヤーが再生用の動画セグメントを取得できるようにする
詳細は、CDN 鍵を管理する方法をご覧ください。
Media CDN を設定する
メディア アセットを配信するように Media CDN を設定する場合は、Media CDN のクイックスタートに沿って操作します。
マニフェストとメディア セグメントに対して適切な TTL を指定してルートを個別に構成します。詳細と例については、Media CDN の高度なルーティング ガイドをご覧ください。
いずれかのルートで限定公開の Cloud Storage 送信元を使用する場合は、限定公開の Cloud Storage バケットの使用をご覧ください。特に、これらのルートのキャッシュ モードは FORCE_CACHE_ALL
に設定します。
HTTPS の設定手順については、SSL(TLS)証明書を構成するをご覧ください。
Media CDN 署名付きリクエスト
署名付きリクエストを有効にして Media CDN を使用するには、署名付きリクエストを使用するを参照して、次の操作を行います。
非対称鍵ペアを作成します。動画スティッチャー API と互換性のある秘密鍵を作成する方法については、Media CDN の秘密鍵を作成するをご覧ください。
動画スティッチャー API で Media CDN の秘密鍵を登録します。
長時間のライブ セッションの継続時間の上限
LiveSession リソースは、プレイリスト リクエストが 5 分間送信されなかった場合を除き、期限切れにはなりません。ただし、すべての再生 URI には最大 180 日が適用されます。180 日が経過した後も再生を続行するためには、新しいライブ セッションを作成する必要があります。信頼性を考慮して、少なくとも 30 日ごとに新しいライブ セッションを作成する必要があります。