HLS 向けエンコーダ統合

HTTP Live Streaming(HLS)バージョン

アド マネージャー DAI は HLS のバージョン 3 をサポートしています。HLS のバージョン 3 に含まれない機能がある場合は、アド マネージャー アカウント チームにご相談ください。

サポートされている機能を確認する

機能 リニア / ライブ ビデオ オンデマンド(VOD)
EXTINF
EXT-X-DATERANGE
SCTE35-IN X
SCTE35-OUT X
EXT-X-DISCONTINUITY
EXT-X-DISCONTINUITY-SEQUENCE
EXT-X-ENDLIST
EXT-X-I-FRAME-STREAM-INF
EXT-X-I-FRAMES-ONLY
EXT-X-INDEPENDENT-SEGMENTS X
EXT-X-KEY
EXT-X-MEDIA(レンディション グループ)
EXT-X-MEDIA-SEQUENCE
EXT-X-PLAYLIST-TYPE
EXT-X-PROGRAM-DATE-TIME
EXT-X-STREAM-INF
AUDIO
AVERAGE-BANDWIDTH
BANDWIDTH
CLOSED CAPTIONS
CODECS
FRAMERATE
RESOLUTION
SUBTITLES
VIDEO
EXT-X-TARGETDURATION
EXT-X-VERSION

再生リストとレンディション グループ

GZIP コンテンツ エンコードを使用して再生リストを配信します(推奨)。マスター再生リストとセグメントのバリエーションには、絶対 URL か相対 URL を使用できます。

すべての広告アセットは、スレートを含む I-FRAME 再生リストを含むようにコード変換されます。アド マネージャー DAI は、コンテンツから I-FRAME 再生リストを生成したり、ビデオ / オーディオの組み合わせに基づいて新しいレンディション グループを生成したりしません。

  • ライブリニアの場合: I-FRAME 再生リストは、エンコーダ / パッケージャによって生成され条件付けされなければなりません。レンディション グループは、ライブ エンコーダから生成されたときに配信されます。
  • ビデオ オンデマンド(VOD)の場合: 必要に応じて、I-FRAME 再生リストを取り込み時にマスター マニフェストに提供する必要があります。アド マネージャーは、提供された I-FRAME 再生リストファイルへのアクセスまたは解析ができない場合にのみエラーを出します。レンディション グループは、マスター マニフェストに提供されるときに配信されます。

コーデックと解像度

ライブ ストリームとビデオ オンデマンド(VOD)アセット向けの HLS マスター再生リストには、オプションの CODECS 属性と RESOLUTION 属性が含まれている必要があります。CODEC と RESOLUTION の属性を使って、エンコード設定に一致する最適な広告を見つけます。これらの値が指定されていない場合、帯域幅にのみ基づいて広告を一致させるため、広告とコンテンツで解像度とコーデックが一致しない可能性があります。これによりユーザー エクスペリエンスが低下し、異なるデバイス間で再生に関する問題が発生することがあります。

CODECS 属性には、オーディオ コーデックと動画コーデックの両方が含まれている必要があります。エンコーダがマスター再生リストの URL にバリエーションを追加、削除する可能性が常にあります。

オーディオ コーデック

DAI は AAC オーディオ コーデックをサポートしています。DAI は、AC-3 コーデックと E-AC-3  (ベータ版)  コーデック(現在ベータ版)もサポートしています。

バリエーション ストリームの URL は、すべての CODECSRESOLUTION の組み合わせで統一してください。
ユーザー側で再生時に問題が発生しないよう、それぞれのバリーエーションの URL が統一されるようエンコーダが設定されているか確認してください。

コーデックと解像度を含む再生リスト


#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:BANDWIDTH=694272,CODECS="avc1.77.41,mp4a.40.2",RESOLUTION=768x432
chunklist_b694272.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=202752,CODECS="avc1.66.31,mp4a.40.2",RESOLUTION=480x270
Chunklist_b202752.m3u8

セグメントの長さ

HLS メディア再生リストのセグメントの長さは浮動小数点数で指定してください。広告ブレークの正確な開始時間と終了時間を指定できるよう、浮動小数点精度が必要です。長さの値が不正確な場合、配信されるストリームの広告ブレーク開始を決定するシステムが正常に動作しなくなります。

#EXTINF を含むメディア再生リスト


#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:26
#EXTINF:9.901,
http://media.example.com/wifi/segment26.ts
#EXTINF:9.901,
http://media.example.com/wifi/segment27.ts
#EXTINF:9.501,
http://media.example.com/wifi/segment28.ts

タイムスタンプの調整

バリエーションのメディア再生リスト内のプレゼンテーション タイムスタンプ(PTS)は位置を調整してください。P フレームと B フレームは他のフレームを参照してフレームをデコードします。H.264 コーデックは圧縮率を上げるために、隣接していないフレームも参照します。これらのフレームは他のフレームに依存してデコードとプレゼンテーションを行っていますので、デコード タイムスタンプ(DTS)はフレームをデコードするシーケンスを、PTS はフレームを表示するシーケンスを表しています。アセットの再生中に異なるビットレートに対応するときに、PTS の調整が重要になります。広告の挿入では PTS を使って広告の挿入位置を見つけます。

分割

メディア再生リストのすべての EXT-X-DISCONTINUITYEXT-X-DISCONTINUITY-SEQUENCE が必要です。EXT-X-DISCONTINUITY-SEQUENCE タグにより、同一のバリエーション ストリームや異なるバリエーション ストリームの複数のコンテンツを同期できます。

メディア暗号化

メディア コンテンツを暗号化する場合は、AES-128 か SAMPLE-AES で暗号化してください。SAMPLE‑AES が個々のメディア(音声や動画)をスクランブルしている間に、AES-128 が TS を暗号化したりスクランブルしたりします。Apple Fairplay ストリームは SAMPLE-AES を使用しています。

アド マネージャー DAI は、HLS ストリーム用の FairPlay DRM 技術をサポートしています。

#EXT-X-KEY を含むメディア再生リスト


#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:26
#EXT-X-KEY:METHOD=AES-128,URI="https://media.example.com/asset/key1.php?id=<signature>",IV=<initialization vector>
#EXTINF:9.901,
http://media.example.com/wifi/segment26.ts
#EXTINF:9.901,
http://media.example.com/wifi/segment27.ts
#EXT-X-KEY:METHOD=AES-128,URI="https://media.example.com/asset/key2.php?id=<signature>"
#EXTINF:9.501,
http://media.example.com/wifi/segment28.ts

ビデオ オンデマンド エンコーディング

ミッドロール用の条件付け

コンテンツ内でミッドロールの広告を配信する場合、動画の長さを条件付けが可能な状態にするか条件付けを完了した状態にしてください。

DAI 向けのミッドロール広告ブレークは、ストリームの一般的な動画セグメント範囲に当てはまらない場合があります。たとえば、コンテンツが通常であれば 10 秒間のセグメントに分割されても、0:36(36 秒間)の広告ブレークが必要な場合があります。この場合、10 秒間の動画を 6 秒と 4 秒の 2 つのセグメントに分割すると正しい時間に広告が挿入されます。広告ブレークを有効にする動画セグメントの分割処理のことを「コンテンツの条件付け」と言います。

希望の広告ブレーク場所に広告を挿入できるようにするには、事前に条件付けをしたコンテンツを提供するか、アド マネージャーで条件付けが可能なコンテンツを提供してください。

GOP サイズ

メディアは 2 秒間隔のキーフレームか 2 秒の GOP(Group of Pictures)サイズでエンコードしてください。コンテンツは最も近いキーフレームにミッドロールの広告ブレークを挿入できるよう準備されます。キューポイントの 1 秒以内にキーフレームがない場合、広告の挿入がキューポイントより 1 秒遅れてしまい、再生中のユーザー エクスペリエンスが低下します。指定されたキューポイントから 1 秒以内にキーフレームが見つからない場合、広告ブレークが挿入されません。

コンテンツと広告がなめらかにつながるようにキューポイントの前後に 1~2 秒間の空白を作ってください。こうすることで、広告ブレーク前後の TV の画面が黒にフェードアウトします。

字幕

サポートされる字幕形式は以下のとおりです。

  • 入力形式: TTML(サイドカー)、WebVTT(サイドカー)、CEA 608/708
  • 出力形式: TTML(サイドカー)、WebVTT(サイドカー)、WebVTT - HLS

アド マネージャーが入力形式から出力形式に変換します。

ライブリニア エンコーディング

HLS リニア広告挿入

リニア放送やライブフィード向けの広告挿入スプライス ポイントを示す再生リストに outin のキューポイントを作成します。

#EXT-X-CUE-OUT:DURATION=<time>
#EXT-X-CUE-IN

EXT-X-CUE-OUT タグは、スプライス開始ポイントを、EXT-X-CUE-IN はスプライス終了ポイントを示します。

EXT-X-CUE-OUT タグは広告ブレークの終了を示す EXT-X-CUE-IN で終了してください。

広告サーバーが EXT-X-CUE-OUT タグと EXT-X-CUE-IN の間のセクション全体をどうか広告コンテンツと置き換えます。

DURATION=<time> は必須です。おおよその長さを秒または広告ブレークの浮動小数点数で指定してください(EXT-X-CUE-INEXT-X-CUE-OUT の間の時間です)。EXT-X-CUE-OUT:<time> の代わりに #EXT-X-CUE-OUT:DURATION=<time> を使用することも可能です。

長さは整数か浮動小数値を使って秒で指定してください。

スプライス開始ポイントと終了ポイント


#EXTINF:10,
http://media.example.com/fileSequence7796.ts
#EXTINF:6,
http://media.example.com/fileSequence7797.ts
#EXT-X-CUE-OUT:DURATION=30
#EXTINF:4,
http://media.example.com/fileSequence7798.ts
#EXTINF:10,
http://media.example.com/fileSequence7799.ts
#EXTINF:10,
http://media.example.com/fileSequence7800.ts
#EXTINF:6,
http://media.example.com/fileSequence7801.ts
#EXT-X-CUE-IN
#EXTINF:4,
http://media.example.com/fileSequence7802.ts
#EXTINF:10,
http://media.example.com/fileSequence7803.ts
#EXTINF:3,
http://media.example.com/fileSequence7804.ts

DAI 広告サーバーが OUTIN の間のコンテンツを 30 秒間の広告動画コンテンツに置き換えます。


#EXTINF:10,
http://media.example.com/fileSequence7796.ts
#EXTINF:6,
http://media.example.com/fileSequence7797.ts
#EXT-X-CUE-OUT:DURATION=30
#EXTINF:10,
http://ads.example.com/fileSequence0001.ts
#EXTINF:10,
http://ads.example.com/fileSequence0002.ts
#EXTINF:10,
http://ads.example.com/fileSequence0003.ts
#EXT-X-CUE-IN

#EXTINF:4,
http://media.example.com/fileSequence7802.ts
#EXTINF:10,
http://media.example.com/fileSequence7803.ts
#EXTINF:3,
http://media.example.com/fileSequence7804.ts

よくある質問

  • 広告ブレークを早く終了させるにはどうすればよいですか?
    DAI ストリームがただちに広告ブレークを終了し、未加工のコンテンツを再び表示するよう指示するために、エンコーダがストリームに「CUE-IN」を送信する必要があります。
  • 広告ブレークを長くするにはどうすればよいですか?
    広告ブレークがユーザーに表示されているときに広告ブレークを長くする方法はありません。しかし、エンコーダが前の広告ブレークの「CUE-IN」の直後にストリームに「CUE-OUT」を追加で送信することはできます。こうすることで広告ブレークを追加して新しく指定した広告を配信できます。
  • 表示する広告がない場合はどうなりますか?
    アド マネージャー DAI でライブ ストリームを設定したときに選択した設定に応じて、スレート コンテンツとベース コンテンツのいずれかが表示されます。
この情報は役に立ちましたか?
改善できる点がありましたらお聞かせください。