Video Stitcher API のベスト プラクティス

このページでは、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>

HLS に EXT-X-PROGRAM-DATE-TIME を設定する

セグメントのタイミングが HLS レンディション間で同期されるようにするには、HLS レンディションごとに EXT-X-PROGRAM-DATE-TIME を設定することをおすすめします。これにより、再生中にレンディションを変更する際に、プレーヤーがスムーズに移行できます。

ライブアセットと VOD アセットに複数期間の DASH マニフェストを使用する

単一期間ではなく複数期間の DASH マニフェストを出力するように、ソース エンコーダとトランスコーダを構成します。VOD の条件付けと同様の理由で、Video Stitcher API はミッドロール挿入点を合成するために期間を分割しないため、複数の期間を含む DASH マニフェストでは、予想される長さでミッドロール挿入点を合成する機会が増えます。

字幕を ISOBMFF にカプセル化する

ほとんどのメディア プレーヤーとの互換性を確保するため、DASH マニフェストの字幕は、MP4 などの ISO ベースのメディア ファイル形式(ISOBMFF)でカプセル化する必要があります。

定数ビットレートを使用する

ライブ配信の安定した再生を実現するには、ストリーム マニフェストを出力するときに一定のビットレートを使用するようにソース エンコーダまたはトランスコーダを構成します。これにより、Video Stitcher API は、マニフェストで指定されたエンコード プロファイルと一致するように広告を一貫して合成できます。

サポートされている広告マーカーを使用する

サポートされている広告マーカーと、ミッドロール挿入点が正しく結合されるようにソース エンコーダまたはトランスコーダが広告マーカーを出力する方法については、広告マーカーのドキュメントをご覧ください。

ソースの再生を確認する

ライブ ストリームと VOD ストリームの安定した再生を実現するには、Video Stitcher 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 を使用するには、署名付きリクエストを使用するを参照して、次の操作を行います。

  1. 非対称鍵ペアを作成します。動画スティッチャー API と互換性のある秘密鍵を作成する方法については、Media CDN の秘密鍵を作成するをご覧ください。

  2. 動画スティッチャー API で Media CDN の秘密鍵を登録します。

長時間のライブ配信セッションの継続時間の上限

LiveSession リソースは、プレイリスト リクエストが 5 分間送信されなかった場合を除き、期限切れにはなりません。ただし、すべての再生 URI に最大存続期間 180 日が適用されます。180 日が経過した後に再生を続行するには、新しいライブセッションを作成する必要があります。信頼性を高めるには、少なくとも 30 日ごとに新しいライブセッションを作成する必要があります。