媒体セグメント

媒体セグメント

仕様書

媒体セグメント (HLS)

[5] 媒体セグメント (Media Segment) は、 URL と、 省略可能なバイト範囲によって指定されます。 >>4

[3] データは HTTP で伝送するべきですが、 一般に資源を要求に応じて転送できる信頼できる (reliable) プロトコルであれば、 どんなものでも使えます。 >>2

[8] 媒体セグメントは、それぞれ固有の整数である媒体連番 (Media Sequence Number) を持ちます。 媒体プレイリストの最初の媒体セグメント媒体連番は、 0 またはプレイリストで宣言された値です。 その他の媒体セグメント媒体連番は、 直前の媒体セグメント媒体連番1 加えたものです。 >>4

[7] 媒体セグメントの時間の長さ (duration) は、 媒体プレイリストEXTINF タグで表されます >>4

データ

[12] 媒体セグメントは、仕様書で定められたいずれかの媒体形式でなければなりません。 それ以外の形式の輸送は未定義です。 >>4

[13] 媒体形式によっては媒体セグメント構文解析の前に構文解析器初期化のための共通のバイト列が必要となります。 これを媒体初期化区 (Media Initialization Section) といいます。 媒体初期化区は、 EXT-X-MAP タグで指定できます。 媒体初期化区標本データを含んではなりません>>4

[9] 媒体セグメントは、 前の媒体連番媒体セグメントの末尾からの続きの符号化ビット列を伝搬しなければなりません。 ここで、タイムスタンプContinuity Counter のような系列は中断なく連続していなければなりません。 ただし、媒体プレイリストの最初の媒体セグメントと、 非連続と明示的に示された媒体セグメントを除きます。 そうでない非連続性は、 playback error となります。 >>4

[10] 動画を含む媒体セグメントは、 動画復号器を初期化し媒体セグメントの最終フレームを含む連続したフレーム群を復号するに十分な情報を含むべきです媒体セグメント中のすべてのフレーム復号できる十分な情報が媒体セグメントに含まれる場合に、 ネットワーク効率性 (network efficiency) が最適化されます。 >>4

[11] 例えば H.264 動画を含む媒体セグメントは、 IDR (Instantaneous Decoding Refresh) を含むべきです。 最初の IDR までのフレームダウンロードされても捨てられるかもしれません。 >>4

MPEG2 TS

[14] ISO/IEC 13818 MPEG-2 Transport Stream を使うことができます >>4

[15] MPEG2 TS媒体初期化区は、 PAT (Program Association Table) の後に PMT (Program Map Table) を続けたものです。 >>4

[16] Transport Stream Segments は、 MPEG-2 Program を1つだけ含まなければなりませんMulti-Program Transport Streamsplayback は未定義です。 >>4

[17]Transport Stream Segment は、 PATPMT を含むか、または EXT-X-MAP タグを持たなければなりません >>4

[18] 媒体セグメントの最初の2つの Transport Stream パケット群は、 EXT-X-MAP タグがない場合には、 PATPMT であるべきです。 >>4

断片化 MPEG4

[19] ISO Base Media File FormatMPEG-4 Fragment を使うことができます >>4

[20] MPEG-4 Fragment は、 (通常の MPEG-4ファイルのように Movie Box (moov) と Media Data Box (mdat) を持つのではなく、) Movie Fragment Box (moof) と Media Data Box (mdat) を持ちます。 MPEG-4 Fragment の利用においては初期化のため Movie Box (moov) が必要ですが、 Movie Box は標本に依存しないトラックや標本の説明だけを含みます。 >>4

[21] Fragmented MPEG-4 (fMP4) 媒体セグメントは、 ISO Base Media File Format 第3章で定義された「segment」 であって、 ISO Base Media File Format 8.16節の Media Data Box 群の制約を含むものです。 >>4

[22] fMP4 媒体セグメント媒体初期化区は、 当該媒体セグメント構文解析器を初期化できる ISO Base Media File です。 次の制約を持ちます。 >>4

[29] Common Media Application Format (CMAF) は、 この要件をすべて満たします。 >>4

[30] fMP4 媒体セグメントにあっては、 Track Fragment BoxTrack Fragment Decode Time Box (tfdt) を含まなければなりませんmovie-fragment-relative addressing を使わなければなりませんexternal data reference を使ってはなりません

[31] CMAF Segment はこの要件を満たします >>4

[32] fMP4 媒体セグメントは、 EXT-X-I-FRAMES-ONLY タグを含むプレイリストにある場合には、 intra-coded frame (I-frame) 標本データに続く Media Data Box の部分を省略できます。 >>4

[33] 媒体プレイリスト中の各 fMP4 媒体セグメントは、 EXT-X-MAP タグを持たなければなりません >>4

Packed Audio

[34] Packed Audio を使うことができます。 >>4

[35] Packed Audio媒体セグメントは、 符号化された音声標本ID3タグを含み、 最小限の framing を行い、 標本ごとのタイムスタンプは持たないものです。 >>4

[36] ISO/IEC 13818-7 AAC with ADTS framing]]、 MP3AC-3Enhanced AC-3 に対応しています。 >>4

[38] Packed Audio媒体セグメントは、 最初の標本タイムスタンプID3 Private frame (PRIV) タグで先頭に含めなければなりません。 その ID3 PRIV所有者識別子com.apple.streaming.transportStreamTimestamp で、 ID3 payload は 33ビット MPEG-2 Program Elementary Stream タイムスタンプ大エンディアンの8バイト (上位31ビットは 0) で表したものでなければなりません>>4

[39] クライアントは、この ID3タグを持たない Packed Audio 媒体セグメント再生するべきではありません>>4

[37] 媒体初期化区はありません。 >>4

WebVTT

[40] WebVTT により subtitle を伝搬できます >>4

[41] WebVTT 媒体セグメントは、 WebVTT section です。 媒体セグメントEXTINF duration で示された期間に表示されることを意図した subtitle cue をすべて含まなければなりません>>4

[43] cuestart time offsetend time offset は、 cue time range媒体セグメントの期間の外側にまたがる場合であっても、 表示時間全体を表すものとしなければなりません>>4

[44] 媒体セグメントcue が含まれなくてもよく、 当該期間に subtitle が表示されないことを表します。 >>4

[42] 媒体初期化区は、 WebVTTヘッダーです。 >>4

[45] WebVTT媒体セグメントは、 WebVTTヘッダーから始まるか、 EXT-X-MAP タグを持たなければなりません >>4

[46] WebVTTヘッダーには、 音声動画subtitleタイムスタンプ同期のため、 X-TIMESTAMP-MAP メタデータヘッダーを追加するべきです。 これは WebVTT cue timestamp変種ストリームの他の RenditionMPEG-2 (PES) timestamp写像するものです。 >>4

[47] 構文は X-TIMESTAMP-MAP=LOCAL:<cue time>,MPEGTS:<MPEG-2 time> となります。 >>4

[48] 例えば X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000 のように記述します。 >>4

[49] LOCAL 属性の cue timestamp は、 媒体セグメントの期間の外側であっても構いません。 >>4

[50] クライアントは、 WebVTT媒体セグメントX-TIMESTAMP-MAP を持たない場合、 WebVTT cue time 0MPEG-2 timestamp 0写像されるとしなければなりません>>4

[51] クライアントは、タイムスタンプ同期にあたり、 33ビット PES タイムスタンプが wrap されており、 WebVTT cue timestamp は wrap されていない場合を考慮するべきです>>4

文脈

[6] 媒体セグメントは、 媒体プレイリストに含まれます >>4

メモ

[1] Media Source Extensions™ () <https://w3c.github.io/media-source/#media-segment>