[5] 媒体セグメントは、 URL と、 省略可能なバイト範囲によって指定されます。 >>4
[3] データは HTTP で伝送するべきですが、 一般に資源を要求に応じて転送できる信頼できるプロトコルであれば、 どんなものでも使えます。 >>2
[8] 媒体セグメントは、それぞれ固有の整数である媒体連番を持ちます。 媒体プレイリストの最初の媒体セグメントの媒体連番は、 0 またはプレイリストで宣言された値です。 その他の媒体セグメントの媒体連番は、 直前の媒体セグメントの媒体連番に 1 加えたものです。 >>4
[7] 媒体セグメントの時間の長さ (duration) は、
媒体プレイリストの EXTINF
タグで表されます >>4。
[12] 媒体セグメントは、仕様書で定められたいずれかの媒体形式でなければなりません。 それ以外の形式の輸送は未定義です。 >>4
[13] 媒体形式によっては媒体セグメントの構文解析の前に構文解析器初期化のための共通のバイト列が必要となります。
これを媒体初期化区といいます。
媒体初期化区は、
EXT-X-MAP
タグで指定できます。
媒体初期化区は標本データを含んではなりません。 >>4
[9] 媒体セグメントは、 前の媒体連番の媒体セグメントの末尾からの続きの符号化ビット列を伝搬しなければなりません。 ここで、タイムスタンプや Continuity Counter のような系列は中断なく連続していなければなりません。 ただし、媒体プレイリストの最初の媒体セグメントと、 非連続と明示的に示された媒体セグメントを除きます。 そうでない非連続性は、 playback error となります。 >>4
[10] 動画を含む媒体セグメントは、 動画の復号器を初期化し媒体セグメントの最終フレームを含む連続したフレーム群を復号するに十分な情報を含むべきです。 媒体セグメント中のすべてのフレームを復号できる十分な情報が媒体セグメントに含まれる場合に、 ネットワーク効率性が最適化されます。 >>4
[11] 例えば H.264 動画を含む媒体セグメントは、 IDR (Instantaneous Decoding Refresh) を含むべきです。 最初の IDR までのフレームはダウンロードされても捨てられるかもしれません。 >>4
[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 Streams の playback は未定義です。 >>4
[17] 各 Transport Stream Segment は、
PAT と PMT を含むか、または EXT-X-MAP
タグを持たなければなりません
>>4。
[18] 媒体セグメントの最初の2つの Transport Stream パケット群は、
EXT-X-MAP
タグがない場合には、
PAT と PMT であるべきです。 >>4
[19] ISO Base Media File Format の MPEG-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
ftyp
) を含み、
その brand は iso6
以上と互換なものでなければなりません。traf
) に関する (track_ID
の一致する) Track Box (trak
)
を含まなければなりません。mvhd
) と
Track Header Boxes (tkhd
)
の duration は 0 でなければなりません。mvex
)
でなければなりません。[30] fMP4 媒体セグメントにあっては、
Track Fragment Box は Track Fragment Decode Time Box (tfdt
)
を含まなければなりません。
movie-fragment-relative addressing を使わなければなりません。
external data reference を使ってはなりません。
[32]
fMP4 媒体セグメントは、
EXT-X-I-FRAMES-ONLY
タグを含むプレイリストにある場合には、
intra-coded frame (I-frame) 標本データに続く
Media Data Box の部分を省略できます。 >>4
[33]
媒体プレイリスト中の各 fMP4 媒体セグメントは、
EXT-X-MAP
タグを持たなければなりません >>4。
[34] Packed Audio を使うことができます。 >>4
[35] Packed Audio の媒体セグメントは、 符号化された音声の標本と ID3タグを含み、 最小限の framing を行い、 標本ごとのタイムスタンプは持たないものです。 >>4
[36] ISO/IEC 13818-7 AAC with ADTS framing]]、 MP3、 AC-3、 Enhanced 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
[40] WebVTT により subtitle を伝搬できます >>4。
[41] WebVTT 媒体セグメントは、
WebVTT section です。
媒体セグメントの EXTINF
duration で示された期間に表示されることを意図した
subtitle cue をすべて含まなければなりません。
>>4
[43] cue の start time offset と end 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 を変種ストリームの他の Rendition
の MPEG-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 0 が
MPEG-2 timestamp 0
に写像されるとしなければなりません。 >>4
[51] クライアントは、タイムスタンプの同期にあたり、 33ビット PES タイムスタンプが wrap されており、 WebVTT cue timestamp は wrap されていない場合を考慮するべきです。 >>4
[1] Media Source Extensions™ () <https://w3c.github.io/media-source/#media-segment>