HTTP Live Streaming(HLS)は、動画コンテンツの高品質ストリーミングを可能にするアダプティブ ビットレートのライブ ストリーミング動画プロトコルです。アド マネージャー向け DAI は HLS バージョン 3 をサポートしています。この統合ガイドでは、HLS の使用に関する要件と推奨事項について詳しく説明します。
ライブ ストリーミングとビデオ オンデマンドでサポートされている機能を確認する機能 | ライブリニア | ビデオ オンデマンド(VOD) |
---|---|---|
EXTINF |
||
EXT-X-DATERANGE > SCTE35-IN |
— | |
EXT-X-DATERANGE > SCTE35-OUT |
— | |
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 |
||
EXT-X-KEY |
||
EXT-X-MEDIA (レンディション グループ) |
||
EXT-X-MEDIA-SEQUENCE |
— | |
EXT-X-PLAYLIST-TYPE |
||
EXT-X-PROGRAM-DATE-TIME |
||
EXT-X-STREAM-INF > AUDIO |
||
EXT-X-STREAM-INF > AVERAGE-BANDWIDTH |
||
EXT-X-STREAM-INF > BANDWIDTH |
||
EXT-X-STREAM-INF > CLOSED CAPTIONS |
||
EXT-X-STREAM-INF > CODECS |
||
EXT-X-STREAM-INF > FRAMERATE |
||
EXT-X-STREAM-INF > RESOLUTION |
||
EXT-X-STREAM-INF > SUBTITLES |
||
EXT-X-STREAM-INF > VIDEO |
||
EXT-X-TARGETDURATION |
||
EXT-X-VERSION |
*EVENT タイプの再生リストのライブ配信でのみサポートされます。
以下のリンクから各セクションをご確認いただけます。
再生リストとレンディション グループ
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 オーディオ コーデックをサポートしています。また、AC-3 コーデックと E-AC-3 コーデックもサポートしています。
CODECS
と RESOLUTION
の組み合わせで統一してください。ユーザー側で再生時に問題が発生しないように、それぞれのバリーエーションの URL が統一されるようエンコーダが設定されているかを確認してください。
例
CODECS と RESOLUTION を含むマスター再生リスト
#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-DISCONTINUITY
に EXT-X-DISCONTINUITY-SEQUENCE
が必要です。EXT-X-DISCONTINUITY-SEQUENCE
タグにより、同一のバリエーション ストリームや異なるバリエーション ストリームの複数のコンテンツを同期できます。
メディア暗号化
メディア コンテンツを暗号化する場合は、次のいずれかで暗号化する必要があります。
- AES-128(セグメント全体を暗号化)
- SAMPLE-AES(オーディオや動画などの個々のメディアを暗号化)
- SAMPLE-AES-CTR
アド マネージャー DAI は、FairPlay や他の DRM と CMAR または断片化された MP4 を使用した HLS ストリームの 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