HLS仕様書 日本語訳 [ WWDC-2017-Preliminary 前半]

こんにちは。研究開発部の高野と申します。

HLSの仕様書の日本語版を探したのですが見当たらなかったので、今後のためもあり、自力で翻訳してみたいと思います。

今回は下記文書の前半(P1〜P31)を翻訳いたします。今後2回に分けて残りも翻訳する予定です。

[元文書]
https://developer.apple.com/streaming/HLS-WWDC-2017-Preliminary-Spec.pdf

本内容は、あくまで個人レベルの翻訳で、不正確な点もあるかと思いますので、どうぞご容赦ください。

Abstract

This document describes a protocol for transferring unbounded streams of multimedia data. It specifies the data format of the files and the actions to be taken by the server (sender) and the clients (receivers) of the streams. It describes version 8 of this protocol.

本文書はマルチメディアデータの無制限ストリームの転送プロトコルについて記載します。
また、ファイルのデータフォーマットと、ストリームを送信するサーバ、それを受信するクライアントが取るべきアクションについて規定します。
本文書は本プロトコルのバージョン8について記述します。

1. Introduction to HTTP Live Streaming

HTTP Live Streaming provides a reliable, cost-effective means of delivering continuous and long-form video over the Internet. It allows a receiver to adapt the bit rate of the media to the current network conditions in order to maintain uninterrupted playback at the best possible quality. It supports interstitial content boundaries. It provides a flexible framework for media encryption. It can efficiently offer multiple renditions of the same content, such as audio translations. It offers compatibility with large-scale HTTP caching infrastructure to support delivery to large audiences.

Since its first draft publication in 2009, HTTP Live Streaming has been implemented and deployed by a wide array of content producers, tools vendors, distributors, and device manufacturers. In the subsequent eight years the protocol has been refined by extensive review and discussion with a variety of media streaming implementors.

The purpose of this document is to facilitate interoperability between HTTP Live Streaming implementations by describing the media transmission protocol. Using this protocol, a client can receive a continuous stream of media from a server for concurrent presentation.

This document describes version 7 of the protocol.

HTTP Live Streaming(以下HLS)は、長尺の映像を断続的にインターネット上で配送する信頼できる、効率的な手段を提供します。 HLSは、受信者に、可能な最適品質での途切れない再生を維持するために、メディアのビットレートを現状のネットワーク状況に合わせて調整することを許容します。 HLSは介在的なコンテンツ境界をサポートし、コンテンツ暗号化の柔軟な枠組みを提供します。また、例えば翻訳音声のように、同じコンテンツの代替表現を効率的に提供します。 また、多数視聴者への配信サポートのため、大規模なHTTPキャッシュインフラとの互換性を提供します。

最初の草案が2009年に出版されて以来、HLSは多くのコンテンツプロバイダ、ツールベンダー、配信業者、デバイス製造者によって実装・配備されてきました。 続く8年の間にプロトコルは、メディアストリーミングの実装者達による、念入りなレビューと議論により刷新されてきました。

 
本文書の目的は、メディア伝送プロトコルを記述することで、HLS実装間の相互運用性を促進することです。 クライアントは、同時に発生する映像コンテンツの断続的なメディアストリームをサーバーから受信できます。

 
本文書はプロトコルのバージョン7について記述します。

2. Overview

A multimedia presentation is specified by a Uniform Resource Identifier (URI) [RFC3986] to a Playlist.

A Playlist is either a Media Playlist or a Master Playlist. Both are
UTF-8 text files containing URIs and descriptive tags.

A Media Playlist contains a list of Media Segments, which when played sequentially will play the multimedia presentation.

Here is an example of a Media Playlist:

#EXTM3U
#EXT-X-TARGETDURATION:10
#EXTINF:9.009,
http://media.example.com/first.ts
#EXTINF:9.009,
http://media.example.com/second.ts
#EXTINF:3.003,
http://media.example.com/third.ts

The first line is the format identifier tag #EXTM3U. The line containing #EXT-X-TARGETDURATION says that all Media Segments will be 10 seconds long or less. Then three Media Segments are declared. The first and second are 9.009 seconds long; the third is 3.003 seconds.

To play this Playlist, the client first downloads it and then downloads and plays each Media Segment declared within it. The client reloads the Playlist as described in this document to discover any added segments. Data SHOULD be carried over HTTP [RFC7230], but in general a URI can specify any protocol that can reliably transfer the specified resource on demand.

A more complex presentation can be described by a Master Playlist. A Master Playlist provides a set of Variant Streams, each of which describes a different version of the same content.

A Variant Stream includes a Media Playlist that specifies media encoded at a particular bit rate, in a particular format, and at a particular resolution for media containing video.

A Variant Stream can also specify a set of Renditions. Renditions are alternate versions of the content, such as audio produced in different languages or video recorded from different camera angles.

Clients should switch between different Variant Streams to adapt to network conditions. Clients should choose Renditions based on user preferences.

The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in RFC 2119 [RFC2119].

マルチメディアプレゼンテーションはRFC3986が定めるURI形式でplaylistに特定されます。

playlistはメディアplaylistまたはマスターplaylistのどちらかに成りえて、どちらもURIとパラメタ記述的タグを含みます。

メディアplaylistは、順次再生時、多重媒体表現を再生するメディアSegmentのリストを含みます。

メディアplaylistの例を示します。

#EXTM3U
#EXT-X-TARGETDURATION:10
#EXTINF:9.009,
http://media.example.com/first.ts
#EXTINF:9.009,
http://media.example.com/second.ts
#EXTINF:3.003,
http://media.example.com/third.ts

最初の行はフォーマット識別タグ #EXTM3Uです。#EXT-X-TARGETDURATIONを含む行は、すべてのメディアセグメントが10秒以下(1,2行目は9.009秒、3行目は3.003秒)であることを示しています。
playlistを再生するために、クライアントは初めにplaylistをダウンロードし、そこに記述されているメディアセグメントをダウンロードして再生します。クライアントは本文書に記述されているように追加されたセグメントを発見するためにプレイリストをリロードします。データはHTTP[RFC7230]で運ばれますが、一般にURIには、指定されたリソースを要求に応じて信頼性を持って運べる任意のプロトコルを使用できます。

より複雑なメディア構成がマスタープレイリストで記述できます。マスタープレイリストは可変ストリームの組を供給し、それぞれが異なるバージョンの同じコンテンツを記述します。

バリアントストリームは(特定のフォーマット、解像度、ビットレートでエンコードされた、映像を含む)メディアを規定するメディアプレイリストを含みます。

バリアントストリームはRenditionの組も規定します。Renditionはコンテンツの代替バージョンで、例えば、異なる言語の音声、異なるカメラアングルの映像です。

クライアントは、ネットワーク状況に適応するために、可変ストリームを選択するべきで、
また、ユーザの嗜好に応じてRenditionを選択すべきです。

本文書のキーワード “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, “OPTIONAL” は RFC2119に記載の内容で解釈してください。

(参考 RFC2119)
「しなければならない( MUST )」
「してはならない( MUST NOT )」
「する必要がある( SHOULD )」
「しないほうがよい( SHOULD NOT )」
「してもよい( MAY )」

3. Media Segments

A Media Playlist contains a series of Media Segments which make up the overall presentation. A Media Segment is specified by a URI an optionally a byte range.

The duration of each Media Segment is indicated in the Media Playlist by its EXTINF tag (Section 4.4.2.1).

Each segment in a Media Playlist has a unique integer Media Sequence Number. The Media Sequence Number of the first segment in the Media Playlist is either 0, or declared in the Playlist (Section 4.4.3.2). The Media Sequence Number of every other segment is equal to the Media Sequence Number of the segment that precedes it plus one.

Each Media Segment MUST carry the continuation of the encoded bitstream from the end of the segment with the previous Media Sequence Number, where values in a series such as timestamps and Continuity Counters MUST continue uninterrupted. The only exceptions are the first Media Segment ever to appear in a Media Playlist, and Media Segments which are explicitly signaled as discontinuities (Section 4.4.2.3). Unmarked media discontinuities can trigger playback errors.

Any Media Segment that contains video SHOULD include enough information to initialize a video decoder and decode a continuous set of frames that includes the final frame in the Segment; network efficiency is optimized if there is enough information in the Segment to decode all frames in the Segment. For example, any Media Segment containing H.264 video SHOULD contain an IDR; frames prior to the first IDR will be downloaded but possibly discarded.

メディアプレイリストはプレゼンテーションを構成する一連のメディアセグメントを格納します。メディアセグメントはURIとオプション的にバイト範囲を規定します。

メディアセグメントの尺はメディアプレイリストのEXTINFタグ(4.4.2.1章)で示されます。

メディアプレイリストの各セグメントは一意の整数であるメディアシーケンス番号を持ちます。
最初のプレイリストのメディアシーケンス番号は0または、プレイリストで宣言された値(4.4.3.2章)になります。
各セグメントのメディアシーケンス番号は、それに先立つセグメントの番号+1になります。

各メディアセグメントは(絶対に)直前のメディアシーケンス番号のセグメントの終わりから連続するエンコードされたビット列の連続を運ばないといけません。その際、タイムスタンプや連続性カウンタのような連続する値の中断は許されません。唯一の例外は、メディアプレイリストに現れる最初のメディアセグメントと、不連続性を明示的に示されたメディアセグメント(4.4.2.3章)です。明示されてないメディアの不連続は、再生エラーを引き起こします。

ビデオを含む任意のメディアセグメントは、ビデオデコーダを初期化し、断続的な、最終フレームを含む全フレームのセットをデコードするのに十分な情報が含まれる必要があります。すべてのフレームをデコードするのに十分な情報がセグメントにあればネットワーク効率性が最適化されます。例えば、H.264映像を含む任意のメディアセグメントはIDRを格納する必要があります。最初のIDR以前のフレームはダウンロードされますが、おそらく破棄されます。

3.1 Supported Media Segment Formats

All Media Segments MUST be in a format described in this section. Transport of other media file formats is not defined.

Some media formats require a common sequence of bytes to initialize a parser before a Media Segment can be parsed. This format-specific sequence is called the Media Initialization Section. The Media Initialization Section can be specified by an EXT-X-MAP (Section 4.4.2.5) tag. The Media Initialization Section MUST NOT contain sample data.

すべてのメディアセグメントは本章で記載されるフォーマットでなければなりません。[MUST] 他のメディアフォーマットの伝送については未定義です。

幾つかのメディアフォーマットは、メディアセグメントをパースする前に、パーサーを初期化するための共通シーケンスのバイトを必要とします。このフォーマット固有のシーケンスをメディア初期化セクションと呼びます。メディア初期化セクションはEXT-X-MAPタグで規定できます。メディア初期化セクションはサンプルデータを含んではなりません。[MUST NOT]

3.2 MPEG-2 Transport Streams

MPEG-2 Transport Streams are specified by [ISO_13818].

The Media Initialization Section of an MPEG-2 Transport Stream Segment is a Program Association Table (PAT) followed by a Program Map Table (PMT).

Transport Stream Segments MUST contain a single MPEG-2 Program; playback of Multi-Program Transport Streams is not defined. Each Transport Stream Segment MUST contain a PAT and a PMT, or have an EXT-X-MAP (Section 4.4.2.5) tag applied to it. The first two Transport Stream packets in a Segment without an EXT-X-MAP tag SHOULD be a PAT and a PMT.

MPEG2TSはISO_13818で規定されます。

MPEG2TSセグメントのメディア初期化セクションはPAT(Program Association Table)とそれに続くPMT(Program
Map Table)です。TSセグメントは必ず一つのMPEG2プログラムを格納しなければなりません[MUST]。

各TSセグメントはPATとPMTを含まなければなりません。[MUST]またはEXT-X-MAPタグ(4.4.2.5章)を持ち、それが適用されなければなりません。EXT-X-MAPを含まない、TSセグメントの最初の2つのTSパケットは、PATまたはPMTである必要があります。

3.3. Fragmented MPEG-4

MPEG-4 Fragments are specified by the ISO Base Media File Format [ISOBMFF]. Unlike regular MPEG-4 files which have a Movie Box (‘moov’) that contains sample tables and a Media Data Box (‘mdat’) containing the corresponding samples, an MPEG-4 Fragment consists of a Movie Fragment Box (‘moof’) containing a subset of the sample table and a Media Data Box containing those samples. Use of MPEG-4 Fragments does require a Movie Box for initialization, but that Movie Box contains only non-sample-specific information such as track and sample descriptions.

A Fragmented MPEG-4 (fMP4) Segment is a “segment” as defined by Section 3 of [ISOBMFF], including the constraints on Media Data Boxes in Section 8.16 [ISOBMFF]. The Media Initialization Section for an fMP4 Segment is an ISO Base Media File that can initialize a parser for that Segment. Broadly speaking, fMP4 Segments and Media Initialization Sections are [ISOBMFF] files that also satisfy the constraints described in this section.

The Media Initialization Section for an fMP4 Segment MUST contain a File Type Box (‘ftyp’) containing a brand that is compatible with ‘iso6’ or higher. The File Type Box MUST be followed by a Movie Box. The Movie Box MUST contain a Track Box (‘trak’) for every Track Fragment Box (‘traf’) in the fMP4 Segment, with matching track_ID. Each Track Box SHOULD contain a sample table, but its sample count MUST be zero. Movie Header Boxes (‘mvhd’) and Track Header Boxes (‘tkhd’) MUST have durations of zero. A Movie Extends Box (‘mvex’) MUST follow the last Track Box. Note that a CMAF Header [CMAF] meets all these requirements.

 

In an fMP4 Segment, every Track Fragment Box MUST contain a Track Fragment Decode Time Box (‘tfdt’). fMP4 Segments MUST use movie- fragment relative addressing. fMP4 Segments MUST NOT use external data references. Note that a CMAF Segment meets these requirements.

 
An fMP4 Segment in a Playlist containing the EXT-X-I-FRAMES-ONLY (Section 4.4.3.6) tag MAY omit the portion of the Media Data Box following the I-frame sample data.

Each fMP4 Segment in a Media Playlist MUST have an EXT-X-MAP tag applied to it.

MPEG-4 フラグメントはISOベースメディアファイルフォーマット(ISOBMFF)で規定されます。通常のMPEG-4ファイル(サンプルテーブルを格納するmoovと、それに対応するサンプルデータを格納するmdat要素を持つ)と異なり、MPEG-4フラグメントは、サンプルテーブルのサブセットとそれらのサンプルを含むmdatを含む、動画フラグメントボックス’moof’ を構成します。MPEG-4フラグメントの使用は、MovieBoxの初期化を要求しますが、MovieBoxはサンプル固有でない情報のみを格納します(例:トラックやサンプルの説明/叙述)

 
フラグメントMP4セグメントはISOBMFFの3章で定義されます(ISOBMFF 8.16記載のメディアデータボックスの制約を含みます)。fMP4セグメントのメディア初期化セクションは、fMP4セグメント用のパーサを初期化することができる、ISOベースメディアファイルです。広い意味で、fMP4セグメントとメディア初期化セクションは本章で規定の制約を満たす[ISOBMFF]ファイルです。

 
fMP4セグメントのメディア初期化セクションは、iso6またはそれ以上の互換性をもつブランドを含むファイル種別Box(ftyp)を含まなければなりません。ftypの後にはMovieBox要素が続かなければなりません。ムービーボックス(mbox)はトラックボックス(trak)を各トラックフラグメントボックス(traf)に、トラックIDが一致する形で含まなければなりません。各トラックボックスはサンプルテーブルを含むべきです。しかし、そのサンプル数は0でなければなりません。ムービーヘッダボックス(mvhd)とトラックヘッダボックス(tkhd)のファイル長は0でなければなりません。ムービー拡張ボックス(mvex)の後には最後のトラックボックスが続かなければなりません。CMAFヘッダはこれらのすべての要求を満たすことに留意してください。

 
fMP4セグメント内で、すべてのトラックフラグメントボックスはトラックフラグメントデコードボックス(tfdt)を含まなければなりません。fMP4セグメントはムービーフラグメント相対アドレス方式を使わなければなりません。fMP4セグメントは外部データ参照を使ってはなりません。CMAFセグメントはこれらの要求を満たすことに留意してください。

EXT-X-I-FRAMES-ONLY(4.4.3.6章参照)を含むPlaylistのfMP4セグメントは、Iフレームサンプルデータに続くメディアデータボックスの一部を省く場合があります。

メディアプレイリストの各fMP4セグメントは、自身に適用されるEXT-X-MAPタグを持たなければなりません。

3.4. Packed Audio

A Packed Audio Segment contains encoded audio samples and ID3 tags that are simply packed together with minimal framing and no per- sample timestamps. Supported Packed Audio formats are AAC with ADTS framing [ISO_13818_7]; MP3 [ISO_13818_3]; AC-3 [AC_3]; and Enhanced AC-3 [AC_3].A Packed Audio Segment has no Media Initialization Section.

Each Packed Audio Segment MUST signal the timestamp of its first sample with an ID3 PRIV tag [ID3] at the beginning of the segment.The ID3 PRIV owner identifier MUST be “com.apple.streaming.transportStreamTimestamp”. The ID3 payload MUST be a 33-bit MPEG-2 Program Elementary Stream timestamp expressed as a big-endian eight-octet number, with the upper 31 bits set to zero. Clients SHOULD NOT play Packed Audio Segments without this ID3 tag.

パック化音声セグメントは、(最小のフレーミングで、サンプル毎のタイムスタンプなしで一緒にパックされた)エンコード済音声サンプルとID3タグを格納します。パック化音声の対応フォーマットは、ADTSフレーミングされたAAC, MP3,AC-3,Enhanced AC-3 です。パック化音声セグメントはメディア初期化セクションを持ちません。

各パック化音声セグメントは最初のサンプルのタイムスタンプをセグメントの開始時に、ID3 PRIV タグで通知(signal)しなければなりません。ID3 PRIVオーナー識別子は”com.apple.streaming.transportStreamTimestamp”でなければなりません[MUST]。ID3 ペイロードは上位31ビットが0にセットされた、8オクテットビッグエンディアンで表現された、33ビットのMPEG-2エレメンタリストリームタイムスタンプでなければなりません[MUST]。クライアントはパック化音声セグメントを、このID3タグなしで再生しないほうがよい[SHOULD NOT]。

3.5. WebVTT

A WebVTT Segment is a section of a WebVTT [WebVTT] file. WebVTT Segments carry subtitles.

The Media Initialization Section of a WebVTT Segment is the WebVTT header.

Each WebVTT Segment MUST contain all subtitle cues that are intended to be displayed during the period indicated by the segment EXTINF duration. The start time offset and end time offset of each cue MUST indicate the total display time for that cue, even if part of the cue time range is outside the Segment period. A WebVTT Segment MAY contain no cues; this indicates that no subtitles are to be displayed during that period. Each WebVTT Segment MUST either start with a WebVTT header or have an EXT-X-MAP tag applied to it.

 

In order to synchronize timestamps between audio/video and subtitles, a X-TIMESTAMP-MAP metadata header SHOULD be added to each WebVTT header. This header maps WebVTT cue timestamps to MPEG-2 (PES) timestamps in other Renditions of the Variant Stream.

Its format is:

X-TIMESTAMP-MAP=LOCAL:,MPEGTS:
e.g. X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

The cue timestamp in the LOCAL attribute MAY fall outside the range of time covered by the segment.

If a WebVTT segment does not have the X-TIMESTAMP-MAP, the client MUST assume that the WebVTT cue time of 0 maps to an MPEG-2 timestamp of 0.

WebVTTセグメントはWebVTTファイルのセクションで、字幕情報を運びます。

WebVTTセグメントのメディア初期化セクションはWebVTTヘッダーです。

各WebVTTセグメントは EXTINF持続長セグメントで示される時間の間に表示されるべきすべての字幕のキュー(合図)を格納しなければなりません[MUST]。各キューの開始時オフセットと終了時オフセットはたとえキュー時間がセグメント期間を超える場合も、該キューの表示時間を通知しなければなりません[MUST]。WebVTTセグメントはキュー(合図)を含まなくても良い。これは表示すべき字幕が該当期間に存在しないことを示します。WebVTTセグメントはWebVTTヘッダで始まるか、または自身に適用されるEXT-X-MAPタグを持たなければなりません[MUST]。

映像・音声・字幕のタイムスタンプを同期するためX-TIMESTAMP-MAPメタデータヘッダが各WebVTTヘッダに追加される必要があります[SHOULD]。このヘッダはWebVTTキューのタイムスタンプを、他のバリアントストリーム表現のMPEG2(PES)タイムスタンプにマッピングします。

フォーマット:

X-TIMESTAMP-MAP=LOCAL:,MPEGTS:
e.g. X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

ローカル属性のキュータイムスタンプはセグメントがカバーする時間範囲を超えても良い[MAY]。

もしWebVTTセグメントがX-TIMESTAMP-MAPを持たない場合、クライアントはWebVTTキュー時間の0はMPEG-2タイムスタンプの0にマッピングしなければなりません[MUST]。

3.6. IMSC Subtitles

An IMSC Segment is a Fragmented MPEG-4 (Section 3.3) Media Segment that carries subtitle media according to MPEG-4 Part 30 [MP4_TIMED_TEXT]. This subtitle media MUST comply with the Text Profile of IMSC1 [IMSC1].

The Media Initialization Section of an IMSC Segment is specified in Section 3.3.

Each IMSC Segment MUST contain all subtitle samples that are intended to be displayed during the period indicated by the segment EXTINF duration. Each Segment MUST contain definitions for all styles which are applied to any part of any sample in the Segment.

IMSCセグメントは、MPEG-4 Part30に基づいて字幕メディアを運ぶ、分割済MPEG-4(3.3章参照)メディアセグメントです。この字幕メディアはIMSC1のテキストプロファイルに適合しなければなりません[MUST]。

IMSCセグメントのメディア初期化セクションは3.3章に規定されています。

各IMSCセグメントは、EXTINF持続長セグメントで示される期間表示される、全ての字幕サンプルを格納しなければなりません[MUST]。各セグメントは、セグメント内の任意のサンプルの任意の場所に適用されるすべてのスタイルの定義を格納しなければなりません[MUST]。

4. Playlists

This section describes the Playlist files used by HTTP Live Streaming. In this section, “MUST” and “MUST NOT” specify the rules for the syntax and structure of legal Playlist files. Playlists that violate these rules are invalid; clients MUST fail to parse them. See Section 6.3.2.

The format of the Playlist files is derived from the M3U [M3U] playlist file format and inherits two tags from that earlier file format: EXTM3U (Section 4.4.1.1) and EXTINF (Section 4.4.2.1).

In this section, tags are specified using a BNF-style syntax.

Each Playlist file MUST be identifiable by either the path component of its URI or by HTTP Content-Type. In the first case, the path MUST end with either .m3u8 or .m3u. In the second, the HTTP Content-type MUST be “application/vnd.apple.mpegurl” or “audio/mpegurl”. Clients SHOULD refuse to parse Playlists that are not so identified.

本章では、HLSで使われるプレイリストファイルについて記述します。本章で、”MUST”,”MUST NOT”は、プレイリストの法的な構文と構造ルールを特定します。これらのルールに違反するプレイリストは無効です。クライアントはそれらのパースに失敗しなければなりません[MUST]。(6.3.2章参照)

プレイリストのフォーマットはM3Uプレイリストフォーマットに由来し、2つのタグを継承します。(EXTM3U (4.4.1.1章), EXTINF (4.4.2.1章))

本章で、タグはBNF形式シンタックスで規定されます。

各プレイリストファイルは、そのURIパスコンポーネントまたはHTTP Content-Typeで特定可能でなければなりません。最初に、パスは.m3u8または.m3u で終了しなければなりません[MUST]。次に、HTTP Content-type は”application/vnd.apple.mpegurl” または “audio/mpegurl”でなければなりません[MUST]。クライアントはそのように特定されないプレイリストのパースを拒否しなければなりません[MUST]。

4.1. Definition of a Playlist

Playlist files MUST be encoded in UTF-8 [RFC3629]. They MUST NOT contain any byte order mark (BOM); Clients SHOULD reject Playlists which contain a BOM or do not parse as UTF-8. Playlist files MUST NOT contain UTF-8 control characters (U+0000 to U+001F and U+007F to U+009F), with the exceptions of CR (U+000D) and LF (U+000A). All character sequences MUST be normalized according to Unicode normalization form “NFC”. Note that US-ASCII [US_ASCII] conforms to these rules.
Lines in a Playlist file are terminated by either a single line feed character or a carriage return character followed by an line feed character. Each line is a URI, blank, or starts with the character ‘#’. Blank lines are ignored. White space MUST NOT be present, except for elements in which it is explicitly specified.Lines that start with the character ‘#’ are either comments or tags. Tags begin with #EXT. They are case-sensitive. All other lines that begin with ‘#’ are comments and SHOULD be ignored.A URI line identifies a Media Segment or a Playlist file (see Section 4.4.4.2). Each Media Segment is specified by a URI and the tags that apply to it.

A Playlist is a Media Playlist if all URI lines in the Playlist identify Media Segments. A Playlist is a Master Playlist if all URI lines in the Playlist identify Media Playlists. A Playlist MUST be either a Media Playlist or a Master Playlist; all other Playlists are invalid.

A URI in a Playlist, whether it is a URI line or part of a tag, MAY be relative. Any relative URI is considered to be relative to the URI of the Playlist that contains it.

The duration of a Media Playlist file is the sum of the durations of the Media Segments within it.

The segment bit rate of a Media Segment is the size of the Media Segment divided by its EXTINF duration (Section 4.4.2.1). Note that this includes container overhead but does not include overhead imposed by the delivery system, such as HTTP, TCP or IP headers.

The peak segment bit rate of a Media Playlist is the largest bit rate of any contiguous set of segments whose total duration is between 0.5 and 1.5 times the target duration. The bit rate of a set is calculated by dividing the sum of the segment sizes by the sum of the segment durations.

The average segment bit rate of a Media Playlist is the sum of the sizes (in bits) of every Media Segment in the Media Playlist, divided by the Media Playlist duration. Note that this includes container overhead, but not HTTP or other overhead imposed by the delivery system.

プレイリストはUTF-8でエンコードされなければなりません[MUST]。任意のバイト順マーク(BOM)を格納してはなりません[MUST NOT]。クライアントはBOMを含む、またUTF-8で解析できないプレイリストを破棄しなければなりません[MUST]。プレイリストは、CR (U+000D) と LF (U+000A)を除くUTF-8の制御文字(U+0000〜U+001F, U+007F〜 U+009F)を含んではなりません[MUST NOT]。すべての文字並びはユニコード正規化フォーム”NFC”に基づいて正規化されなければなりません[MUST]。US-ASCIIはこのルールに従うことに留意してください。プレイリストの行はLF文字またはCR+LF文字で終端されます。各行はURI,空白,または’#’で開始します。空白行は無視されます。空白文字(‘ ‘)は、明示的に存在を許容する要素内を除き、存在してはなりません[MUST NOT]。#で始まる行はコメントまたはタグです。タグは”#EXT”で始まります。大文字小文字が区別されます。すべての#で始まる他のラインはコメントで、無視される必要があります[SHOULD]。URI行はメディアセグメントまたはプレイリストを特定します。(4.4.4.2章参照)各メディアセグメントはURIで特定され、該当タグはそのセグメントに適用されます。

メディアプレイリストはすべてのURI行がメディアセグメントを特定します。マスタープレイリストはすべてのURI行がメディアプレイリストを特定します。プレイリストはメディアプレイリストまたはマスタープレイリストでなければなりません[MUST]。その他のプレイリストは無効です。

URIがタグの部分でもURI行でも、プレイリスト内のURIは相対パスであってもよい[MAY]。任意の相対URIは、それを包含するプレイリストのURIに対して相対であると考えられます。

メディアプレイリストの持続長は、それが含むメディアセグメントの持続長の合計となります。

メディアセグメントのセグメントビットレートは,メディアセグメントサイズをEXTINF持続長(4.4.2.1章)で割ったものになります。この値はコンテナオーバヘッドを含みますが、HTTP,TCP,IPヘッダのような通信システムのオーバヘッドは含みません。

 
メディアプレイリストのピークセグメントビットレートは、その合計持続長がターゲット持続長(target duration)の0.5-1.5倍の範囲内である、任意の連続セグメントの最大ビットレートになります。ビットレートの組は、セグメントサイズの和をセグメント持続長の和で割って算出します。

メディアプレイリストの平均セグメントビットレートは各メディアセグメントサイズの合計をメディアプレイリストの持続長で割ったものになります。このサイズはコンテナオーバヘッドを含みますが、http等の通信システムによるオーバヘッドを含みません。

4.2. Attribute Lists

Certain tags have values which are Attribute Lists. An attribute- list is a comma-separated list of attribute/value pairs with no whitespace.An attribute/value pair has the following syntax:

AttributeName=AttributeValue

An AttributeName is an unquoted string containing characters from the set [A..Z], [0..9] and ‘-‘. Therefore, AttributeNames contain only uppercase letters, not lowercase. There MUST NOT be any whitespace between the AttributeName and the ‘=’ character, nor between the ‘=’ character and the AttributeValue. An AttributeValue is one of the following:

o decimal-integer: an unquoted string of characters from the set [0..9] expressing an integer in base-10 arithmetic in the range from 0 to 2^64-1 (18446744073709551615). A decimal-integer may be from 1 to 20 characters long.

o hexadecimal-sequence: an unquoted string of characters from the set [0..9] and [A..F] that is prefixed with 0x or 0X. The maximum length of a hexadecimal-sequence depends on its AttributeName.

o decimal-floating-point: an unquoted string of characters from the set [0..9] and ‘.’ which expresses a non-negative floating-point number in decimal positional notation.

o signed-decimal-floating-point: an unquoted string of characters from the set [0..9], ‘-‘ and ‘.’ which expresses a signed floating-point number in decimal positional notation.

o quoted-string: a string of characters within a pair of double- quotes (0x22). The following characters MUST NOT appear in a quoted-string: line feed (0xA), carriage return (0xD), or double quote (0x22). Quoted-string AttributeValues SHOULD be constructed so that byte-wise comparison is sufficient to test two quoted- string AttributeValues for equality. Note that this implies case- sensitive comparison.

o enumerated-string: an unquoted character string from a set which is explicitly defined by the Attribute. An enumerated-string will never contain double-quotes (“), commas (,), or whitespace.

o decimal-resolution: two decimal-integers separated by the “x” character. The first integer is a horizontal pixel dimension (width); the second is a vertical pixel dimension (height).

The type of the AttributeValue for a given AttributeName is specified by the Attribute definition.

A given AttributeName MUST NOT appear more than once in a given Attribute List. Clients SHOULD refuse to play such Playlists.

一部のタグは属性リストを持ちます。属性リストは、空白文字を含まない属性/値のカンマ区切りリストです。属性/値のペアは以下のシンタックスで規定されます。

属性名=属性値

属性名は””のない文字列でA-Z,0-9とハイフン構成されます。属性名は小文字は含まず、必ず大文字になります。属性名と=, =と属性値の間に空白文字を含んではなりません[MUST NOT]。属性値は以下のいずれかの形式を取ります。

 

10進整数: 引用符(“”)なし10進数文字列[0-9]で最小:0,最大:2^64-1 (18446744073709551615)で最大20桁

 
 

16進文字列: 引用符(“”)なしの、0xまたは0Xが先につく、0-9またはA-Fで構成される文字列。最大長は属性名に依存します。

 
 

10進浮動小数点: 引用符(“”)なしの0-9と’.’で構成される文字列で非負の10進表記の浮動小数点

 
符号あり10進浮動小数点: 引用符(“”)なしの0-9と’-‘と’.’で構成される文字列で10進表記の浮動小数点

 
引用符(“”)あり文字列: ダブルクオート(0x22)のペアで囲まれた文字列。LF(0xA),CR(0xD),ダブルクオート(“)は存在してはならない[MUST NOT]。引用符(“”)あり文字列の属性値は、バイト単位比較で同一性比較ができるように構成されるべき[SHOULD]。また、これが大文字小文字を区別する比較であることに留意してください。

 
列挙文字列: 属性で明示的に定義されたセットからの引用符(“”)なし文字列。ダブルクオート、カンマ、空白文字は含まない

 
10進解像度: “x”で分割された二つの10進整数。最初の整数は水平方向ピクセル数(幅)、次の整数は垂直方向ピクセル数(高さ)。

所与の属性名に対する属性値の種別は、属性の定義により特定されます。

所与の属性名は、重複して属性リストに存在してはなりません[MUST NOT]。クライアントはそのようなプレイリストを拒絶する必要があります[SHOULD]。

4.3. Variable Substitution

The following Playlist elements are subject to variable substitution:

o URI lines

o quoted-string AttributeValues

o hexadecimal-sequence AttributeValues

A Variable Reference is a string of the form “{$” (0x7B,0x24) followed by a Variable Name followed by “}” (0x7D). Variable Names are defined by the EXT-X-DEFINE (Section 4.4.5.3) tag.

See Section 6.3.1 for more information about variable substitution.

以下のプレイリスト要素は変数置換の対象になります。

– URI行

– 引用符あり属性値

– 16進文字列属性値

変数参照は”{$”(0x7B,0x24) + 変数名 + “}”(0x7D)の形式を取ります。変数名はEXT-X-DEFINE (4.4.5.3章)で定義されます。

詳細は、6.3.1章参照

4.4. Playlist Tags

Playlist tags specify either global parameters of the Playlist, or information about the Media Segments or Media Playlists that appear after them.

プレイリストタグはグローバルパラメータまたは、それ以降に登場するメディアセグメント、メディアプレイリストの情報を規定します。

4.4.1. Basic Tags

These tags are allowed in both Media Playlists and Master Playlists.

以下のタグはメディアプレイリストとマスタープレイリストどちらにも記述できます。

4.4.1.1. EXTM3U

The EXTM3U tag indicates that the file is an Extended M3U [M3U] Playlist file. It MUST be the first line of every Media Playlist and every Master Playlist.
Its format is:
#EXTM3U

EXTM3Uタグはファイルが拡張M3Uプレイリストファイルであることを示します。各メディアプレイリストとマスタープレイリストの先頭行に配置されなければなりません[MUST]。
フォーマット:
#EXTM3U

4.4.1.2. EXT-X-VERSION

The EXT-X-VERSION tag indicates the compatibility version of the Playlist file, its associated media, and its server.

The EXT-X-VERSION tag applies to the entire Playlist file.

Its format is:

#EXT-X-VERSION:<n>

where n is an integer indicating the protocol compatibility version number.

It MUST appear in all Playlists containing tags or attributes that are not compatible with protocol version 1 to support interoperability with older clients. Section 7 specifies the minimum value of the compatibility version number for any given Playlist file.

A Playlist file MUST NOT contain more than one EXT-X-VERSION tag. If a client encounters a Playlist with multiple EXT-X-VERSION tags, it MUST reject it.

EXT-X-VERSION タグはプレイリストと、それに紐付くメディア、サーバの互換バージョンを示します。

プレイリストファイル全体に適用されます
フォーマット:
#EXT-X-VERSION:<n>

nは整数で互換プロトコル番号を示します

これは、プロトコルバージョン1と互換性のない、すべての属性またはタグを含む、
すべてのプレイリストに、後方互換性のために存在しなければなりません[MUST]。
セクション7はバージョン番号と互換性に関する最小値を規定します。

プレイリストは2つ以上のEXT-X-VERSIONを含んではなりません[MUST NOT]。
クライアントはそのようなプレイリストを破棄しなければなりません[MUST]。

4.4.2. Media Segment Tags

Each Media Segment is specified by a series of Media Segment tags followed by a URI. Some Media Segment tags apply to just the next segment; others apply to all subsequent segments until another instance of the same tag.

A Media Segment tag MUST NOT appear in a Master Playlist. Clients MUST reject Playlists that contain both Media Segment Tags and Master Playlist tags (Section 4.4.4).

各メディアセグメントは、一連のメディアセグメントタグと(それに続く)URIで規定されます。あるメディアセグメントタグは次のセグメントのみに適用されますが、他のタグはそれ以降の同じタグが現れるまでのセグメントに適用されます。

メディアセグメントはマスタープレイリストに存在してはなりません[MUST NOT]。クライアントはメディアセグメントタグとマスタープレイリストタグが混在するプレイリストを破棄しなければなりません[MUST]。

4.4.2.1. EXTINF

The EXTINF tag specifies the duration of a Media Segment. It applies only to the next Media Segment. This tag is REQUIRED for each Media Segment.

Its format is:
#EXTINF:<duration>,[<title>]

where duration is a decimal-floating-point or decimal-integer number (as described in Section 4.2) that specifies the duration of the Media Segment in seconds. Generally, durations SHOULD be decimal- floating-point, with enough accuracy to avoid perceptible error when segment durations are accumulated. If the compatibility version number is less than 3, durations MUST be integers. Durations that are reported as integers SHOULD be rounded to the nearest integer. The remainder of the line following the comma is an optional human- readable informative title of the Media Segment expressed as raw UTF-8 text.

EXTINFタグはメディアセグメントの持続長を特定し、次のメディアセグメントのみに適用されます。
このタグは各メディアセグメントに必須になります。[REQUIRED]

フォーマット:
#EXTINF:<duration>,[<title>]

持続長<duration>は10進浮動小数点またはメディアセグメントの秒数を特定する10進整数(4.2章記載)となります。 一般に、セグメント持続長が累積された際の知覚可能なエラーを避けるため、 持続長は十分な正確さを持つ10進浮動小数点であるべきです[SHOULD]。 互換バージョンが3未満の場合、持続長は整数でなければなりません[MUST]。 整数として報告された持続長は最も近い整数に丸められる必要があります[SHOULD]。 カンマ以降の残りの業はオプションで、UTF8で表現されるメディアセグメントの可読タイトルになります。

4.4.2.2. EXT-X-BYTERANGE

The EXT-X-BYTERANGE tag indicates that a Media Segment is a sub-range of the resource identified by its URI. It applies only to the next URI line that follows it in the Playlist.

Its format is:
#EXT-X-BYTERANGE:<n>[@<o>]

where n is a decimal-integer indicating the length of the sub-range in bytes. If present, o is a decimal-integer indicating the start of the sub-range, as a byte offset from the beginning of the resource. If o is not present, the sub-range begins at the next byte following the sub-range of the previous Media Segment.

If o is not present, a previous Media Segment MUST appear in the Playlist file and MUST be a sub-range of the same media resource, or the Media Segment is undefined and the Playlist MUST be rejected.

 
A Media Segment without an EXT-X-BYTERANGE tag consists of the entire resource identified by its URI.

Use of the EXT-X-BYTERANGE tag REQUIRES a compatibility version number of 4 or greater.

EXT-X-BYTERANGEタグはメディアセグメントが、URIで示されるリソースの下位範囲であることを示します これは、プレイリストで次行のURIにのみ適用されます。

フォーマット:
#EXT-X-BYTERANGE:<n>[@<o>]

nは10進整数でサブレンジのバイト長を示します。 存在する場合、oは10進整数で、サブレンジの(リソース先頭からの)開始位置オフセットを示します。 oが存在しない場合、サブレンジは前のメディアセグメントのサブレンジの次のバイトから始まります。

oが存在しない場合、前のメディアセグメントが該当プレイリストに存在し、 かつ、それが、同じメディアリソースのサブレンジでなければなりません[MUST]。 でなければメディアセグメントは未定義でプレイリストは破棄されなければなりません[MUST]。

EXT-X-BYTERANGEのないメディアセグメントタグはそのURIで特定されるリソース全体で構成されます。

EXT-X-BYTERANGEタグを使うには、互換バージョン4以上が必要です[REQUIRE]。

4.4.2.3. EXT-X-DISCONTINUITY

DISCONTINUITY tag indicates a discontinuity between the Media Segment that follows it and the one that preceded it.

Its format is:

#EXT-X-DISCONTINUITY

The EXT-X-DISCONTINUITY tag MUST be present if there is a change in any of the following characteristics:

o file format

o number, type and identifiers of tracks

o timestamp sequence

The EXT-X-DISCONTINUITY tag SHOULD be present if there is a change in any of the following characteristics:

o encoding parameters

o encoding sequence

See Section 3, Section 6.2.1, and Section 6.3.3 for more information about the EXT-X-DISCONTINUITY tag.

DISCONTINUITYタグは、(ある1つとそれに続く)メディアセグメントの不連続性を示します。

フォーマット:
#EXT-X-DISCONTINUITY

EXT-X-DISCONTINUITYタグは、以下のいずれかの性質が変更された場合、存在しなければなりません[MUST]。

– ファイルフォーマット

– トラック種別、ID番号

– タイムスタンプシーケンス

EXT-X-DISCONTINUITYタグは、以下のいずれかの性質が変更された場合、存在する必要があります[SHOULD]。

– エンコードパラメータ

– エンコードシーケンス

EXT-X-DISCONTINUITYタグに関する詳細は3章、6.2.1章、6.3.3章を参照してください。

4.4.2.4. EXT-X-KEY

Media Segments MAY be encrypted. The EXT-X-KEY tag specifies how to decrypt them. It applies to every Media Segment that appears between it and the next EXT-X-KEY tag in the Playlist file with the same KEYFORMAT attribute (or the end of the Playlist file). Two or more EXT-X-KEY tags with different KEYFORMAT attributes MAY apply to the same Media Segment if they ultimately produce the same decryption key.

The format is:

#EXT-X-KEY:<attribute-list>

The following attributes are defined:

METHOD
The value is an enumerated-string that specifies the encryption method. This attribute is REQUIRED. The methods defined are: NONE, AES-128, and SAMPLE-AES. An encryption method of NONE means that Media Segments are not encrypted. If the encryption method is NONE, other attributes MUST NOT be present.

An encryption method of AES-128 signals that Media Segments are completely encrypted using the Advanced Encryption Standard [AES_128] with a 128-bit key, Cipher Block Chaining, and PKCS7 padding [RFC5652]. CBC is restarted on each segment boundary, using either the IV attribute value or the Media Sequence Number as the IV; see Section 5.2.

An encryption method of SAMPLE-AES means that the Media Segments contain media samples, such as audio or video, that are encrypted using the Advanced Encryption Standard [AES_128]. How these media streams are encrypted and encapsulated in a segment depends on the media encoding and the media format of the segment. fMP4 Media Segments are encrypted using the ‘cbcs’ scheme of Common Encryption [COMMON_ENC]. Encryption of other Media Segment formats containing H.264 [H_264], AAC [ISO_14496], AC-3 [AC_3], and Enhanced AC-3 [AC_3] media streams is described in the HLS Sample Encryption [SampleEnc] specification. The IV attribute MAY be present; see Section 5.2.

URI
The value is a quoted-string containing a URI that specifies how to obtain the key. This attribute is REQUIRED unless the METHOD is NONE.

IV
The value is a hexadecimal-sequence that specifies a 128-bit unsigned integer Initialization Vector to be used with the key. Use of the IV attribute REQUIRES a compatibility version number of 2 or greater. See Section 5.2 for when the IV attribute is used.

KEYFORMAT
The value is a quoted-string that specifies how the key is represented in the resource identified by the URI; see Section 5 for more detail. This attribute is OPTIONAL; its absence indicates an implicit value of “identity”. Use of the KEYFORMAT attribute REQUIRES a compatibility version number of 5 or greater.

KEYFORMATVERSIONS
The value is a quoted-string containing one or more positive integers separated by the “/” character (for example, “1”, “1/2”, or “1/2/5”). If more than one version of a particular KEYFORMAT is defined, this attribute can be used to indicate which version(s) this instance complies with. This attribute is OPTIONAL; if it is not present, its value is considered to be “1”.

Use of the KEYFORMATVERSIONS attribute REQUIRES a compatibility version number of 5 or greater.

If the Media Playlist file does not contain an EXT-X-KEY tag then Media Segments are not encrypted.

See Section 5 for the format of the key file, and Section 5.2, Section 6.2.3 and Section 6.3.6 for additional information on Media Segment encryption.

メディアセグメントは暗号化されてもよい[MAY]。EXT-X-KEYタグは復号化方法を特定します。 EXT-X-KEYタグは、自身と次の同じキーフォーマット属性を持つEXT-X-KEYタグの間のメディアセグメントに適用されます。 (または、自身からプレイリストファイルの最後のメディアセグメントまで)同じ復号キーを最終的に生み出す場合、2つ以上のフォーマットが異なるEXT-X-KEYタグが同じメディアセグメントに適用されてもよい[MAY]。

フォーマット:

#EXT-X-KEY:<attribute-list>

以下の属性が定義されています。

METHOD
暗号化方式を規定する列挙文字列。本属性は必須[REQUIRED] 定義済みメソッド:NONE, AES-128, SAMPLE-AES NONEの場合暗号化されない。NONEの場合に他の属性が存在してはならない[MUST NOT]

 

AES128暗号化方式ではメディアセグメント全体が128bit鍵のAES128標準とサイファーブロックチェーンとPKCS7パディングで暗号化されます。CBCは各セグメント境界でIV属性またはIVとしてのメディアシーケンス番号で再スタートされます。(5.2章参照)

 

SAMPLE-AES暗号化方式では、音声や映像のメディアサンプルを含むメディアセグメントがAES128で暗号化されます。これらのメディアストリームがどのように暗号化されカプセル化されるかは、メディアのエンコード方式とフォーマットに依存します。fMP4メディアセグメントは共通暗号化のcbcsスキームで暗号化されます。その他のH264,AAC,AC-3,Enhanced AC-3フォーマットを含むメディアセグメントフォーマットの暗号化はHLSサンプル暗号化仕様にて説明されます。IV属性が存在してもよい[MAY]。(5.2章参照)

 

 

URI
URIを含む引用符(“”)あり文字列で、どのようにキーを取得するか規定します。METHODがNONE以外の場合必須。[REQUIRED]

 

IV
16進文字列で、キーが使用する128bit符号なし整数の初期化ベクトルを規定します。IV属性を使用するにはバージョン2以降の互換性が必要です。IV属性を使用する場合、5.2章を参照してください。

 KEYFORMAT
引用符(“”)あり文字列で、URIで特定されるキーがどのように表現されるかを規定します。 (詳細は5章参照)本属性は省略可能です。存在しない場合、”identify”が設定されます。KEYFORMAT属性を使用する場合、バージョン5以降の互換性が必要です。

 

KEYFORMATVERSIONS
引用符(“”)あり文字列で1つ以上の/で区切られた正整数(例:”1″, “1/2”, “1/2/5”) 複数のバージョンの特定のKEYFORMATが定義されている場合、 属性はどのバージョンがこのインスタンスに適合するかを示します。 本属性は省略可能です。存在しない場合、”1″が設定されます。

KEYFORMATVERSIONS属性を使用するにはバージョン5以上の互換性が必要です。

メディアプレイリストがEXT-X-KEYを含まない場合、メディアセグメントは暗号化されません。

キーファイルのフォーマットについては5章、メディアセグメント暗号化については5.2/6.2.3/6.3.6章を参照してください

4.4.2.5. EXT-X-MAP

The EXT-X-MAP tag specifies how to obtain the Media Initialization Section (Section 3) required to parse the applicable Media Segments. It applies to every Media Segment that appears after it in the Playlist until the next EXT-X-MAP tag or until the end of the playlist.

Its format is:

#EXT-X-MAP:<attribute-list>

The following attributes are defined:

URI
The value is a quoted-string containing a URI that identifies a resource that contains the Media Initialization Section. This attribute is REQUIRED.

BYTERANGE
The value is a quoted-string specifying a byte range into the resource identified by the URI attribute. This range SHOULD contain only the Media Initialization Section. The format of the byte range is described in Section 4.4.2.2. This attribute is OPTIONAL; if it is not present, the byte range is the entire resource indicated by the URI.

An EXT-X-MAP tag SHOULD be supplied for Media Segments in Playlists with the EXT-X-I-FRAMES-ONLY tag when the first Media Segment (i.e., I-frame) in the Playlist (or the first segment following an EXT-X-DISCONTINUITY tag) does not immediately follow the Media Initialization Section at the beginning of its resource.

Use of the EXT-X-MAP tag in a Media Playlist that contains the EXT-X-I-FRAMES-ONLY tag REQUIRES a compatibility version number of 5 or greater. Use of the EXT-X-MAP tag in a Media Playlist that DOES NOT contain the EXT-X-I-FRAMES-ONLY tag REQUIRES a compatibility version number of 6 or greater

EXT-X-MAPタグは、メディアセグメントをパースするために必要なメディア初期化セクション(3章)の獲得方法を規定します。EXT-X-MAPは、自身から次のEXT-X-MAPまで、または自身からプレイリストの最後までのの各メディアセグメントに適用されます。

フォーマット:

#EXT-X-MAP:<attribute-list>

以下の属性が定義されています。

URI
引用符(“”)ありのメディア初期化セクションを含むURI文字列。必須[REQUIRED]。

 
BYTERANGE
引用符(“”)あり文字列でURI属性で指定されたリソースの有効範囲を規定します。 この範囲はメディア初期化セクションのみを含みます。 この範囲指定のフォーマットは4.4.2.2章を参照。 本属性は省略可能。 存在しない場合、URI全体が有効範囲となります。

 
EXT-X-MAPは、以下のような場合にはメディアセグメントに供給されるべきです。
リソースの開始時点で、メディア初期化セクションの直後に EXT-X-I-FRAMES-ONLYタグを伴うメディアセグメント(例:Iフレーム), または EXT-X-DISCONTINUITYタグに続く最初のセグメントが、続かなかった場合

 
EXT-X-I-FRAMES-ONLYタグを含むメディアプレイリストにEXT-X-MAPタグを使用するためには、バージョン5以上の互換性が必要です。EXT-X-I-FRAMES-ONLYタグを含まないメディアプレイリストにEXT-X-MAPタグを使用するためには、バージョン6以上の互換性が必要です。

4.4.2.6. EXT-X-PROGRAM-DATE-TIME

The EXT-X-PROGRAM-DATE-TIME tag associates the first sample of a Media Segment with an absolute date and/or time. It applies only to the next Media Segment.

The date/time representation is ISO/IEC 8601:2004 [ISO_8601] and SHOULD indicate a time zone and fractional parts of seconds:

#EXT-X-PROGRAM-DATE-TIME:<YYYY-MM-DDThh:mm:ss.SSSZ>

For example:

#EXT-X-PROGRAM-DATE-TIME:2010-02-19T14:54:23.031+08:00

EXT-X-PROGRAM-DATE-TIME tags SHOULD provide millisecond accuracy.

See Section 6.2.1 and Section 6.3.3 for more information on the EXT-X-PROGRAM-DATE-TIME tag.

EXT-X-PROGRAM-DATE-TIMEタグはメディアセグメントの最初のサンプルと絶対日時を関連付けます。次のメディアセグメントにのみ適用されます。

日時の形式はISO/IEC 8601:2004で、タイムゾーンも表示され、秒は小数点で表示されるべきです。

 
#EXT-X-PROGRAM-DATE-TIME:<YYYY-MM-DDThh:mm:ss.SSSZ>

例:

#EXT-X-PROGRAM-DATE-TIME:2010-02-19T14:54:23.031+08:00

EXT-X-PROGRAM-DATE-TIMEタグはミリ秒の精度を提供する必要があります[SHOULD]。

詳細は6.2.1/6.3.3章参照

4.4.2.7. EXT-X-DATERANGE

The EXT-X-DATERANGE tag associates a Date Range (i.e. a range of time defined by a starting and ending date) with a set of attribute / value pairs.

Its format is:

#EXT-X-DATERANGE:<attribute-list>

where the defined attributes are:

ID

A quoted-string that uniquely identifies a Date Range in the Playlist. This attribute is REQUIRED.

CLASS

A client-defined quoted-string that specifies some set of attributes and their associated value semantics. All Date Ranges with the same CLASS attribute value MUST adhere to these attribute-value semantics. This attribute is OPTIONAL.

START-DATE

A quoted-string containing the ISO-8601 date at which the Date Range begins. This attribute is REQUIRED.

END-DATE

A quoted-string containing the ISO-8601 date at which the Date Range ends. It MUST be equal to or later than the value of the START-DATE attribute. This attribute is OPTIONAL.

DURATION

The duration of the Date Range expressed as a decimal-floating- point number of seconds. It MUST NOT be negative. A single instant in time (e.g. crossing a finish line) SHOULD be represented with a duration of 0. This attribute is OPTIONAL.

PLANNED-DURATION

The expected duration of the Date Range expressed as a decimal- floating-point number of seconds. It MUST NOT be negative. This attribute SHOULD be used to indicate the expected duration of a Date Range whose actual duration is not yet known. It is OPTIONAL.

X-<client-attribute>

The “X-” prefix defines a namespace reserved for client-defined attributes. The client-attribute MUST be a legal AttributeName. Clients SHOULD use a reverse-DNS syntax when defining their own attribute names to avoid collisions. The attribute value MUST be a quoted-string, a hexadecimal-sequence, or a decimal-floating- point. An example of a client-defined attribute is X-COM-EXAMPLE- AD-ID=”XYZ123″. These attributes are OPTIONAL.

SCTE35-CMD, SCTE35-OUT, SCTE35-IN

Used to carry SCTE-35 data; see Section 4.4.2.7.1 for more information. These attributes are OPTIONAL.

END-ON-NEXT

An enumerated-string whose value MUST be YES. This attribute indicates that the end of the range containing it is equal to the START-DATE of its Following Range. The Following Range is the Date Range of the same CLASS that has the earliest START-DATE after the START-DATE of the range in question. This attribute is OPTIONAL.

An EXT-X-DATERANGE tag with an END-ON-NEXT=YES attribute MUST have a CLASS attribute. Other EXT-X-DATERANGE tags with the same CLASS attribute MUST NOT specify Date Ranges that overlap.

An EXT-X-DATERANGE tag with an END-ON-NEXT=YES attribute MUST NOT contain DURATION or END-DATE attributes.

A Date Range with neither a DURATION, an END-DATE, or an END-ON- NEXT=YES attribute has an unknown duration, even if it has a PLANNED- DURATION.

If a Playlist contains an EXT-X-DATERANGE tag, it MUST also contain at least one EXT-X-PROGRAM-DATE-TIME tag.

 
If a Playlist contains two EXT-X-DATERANGE tags with the same ID attribute value, then any AttributeName that appears in both tags MUST have the same AttributeValue.

If a Date Range contains both a DURATION attribute and an END-DATE attribute, the value of the END-DATE attribute MUST be equal to the value of the START-DATE attribute plus the value of the DURATION attribute.

Clients SHOULD ignore EXT-X-DATERANGE tags with illegal syntax.

EXT-X-DATERANGEタグは日付の範囲と、属性/値の組とを関連付けます。
(例:開始と終了の時間範囲)

フォーマット:

#EXT-X-DATERANGE:<attribute-list>

定義済属性は以下になります。

ID

プレイリスト内の日付範囲を特定する引用符(“”)あり文字列。本属性は必須[REQUIRED]。

CLASS

クライアント定義の引用符(“”)あり文字列で、属性のセットと関連する値の意味論を規定します。すべての同じCLASSの日付範囲属性値は、これらの属性-値の意味論に従わなければなりません[MUST]。本属性は省略可能。

START-DATE

日付範囲の開始位置を規定する、開始引用符(“”)ありのISO-8601の日付文字列
本要素は必須[REQUIRED]。

END-DATE

日付範囲の終了位置を規定する、開始引用符(“”)ありのISO-8601の日付文字列 START-DATEと同じか以降の日付であること[MUST]。 本要素は省略可。

DURATION

10進浮動小数点で表現される日付範囲の持続長(単位:秒) 負値であってはならない[MUST NOT] 時系列における点 (例:フィニッシュラインを通過する)、は duration 0で表現される必要がある[SHOULD]。 本要素は省略可。

PLANNED-DURATION

10進浮動小数点で表現される、予定の日付範囲の持続長(単位:秒) 実際の持続長が不明の場合に予定の持続長を示すために使用される必要がある SHOULD]。 負値であってはならない[MUST NOT]。 本要素は省略可。

X-<client-attribute>

接頭辞 “X-” はクライアント定義属性のための予約済み名前空間。 クライアント属性は正当な属性名であること[MUST] クライアントは独自属性名を定義する際、衝突を避けるため、逆DNS構文を使う必 があります。属性は 16進文字列、または10進浮動小数点、または引用符(“” あり文字列でなければならない[MUST]。 例:X-COM-EXAMPLEAD-ID=”XYZ123″ 本属性は省略可能。

SCTE35-CMD, SCTE35-OUT, SCTE35-IN

SCTE-35データを運ぶために使われます。 本属性は省略可能。 詳細は4.4.2.7.1を参照。

 
END-ON-NEXT

列挙文字列で、値は”YES”であること[MUST]。 本属性は、該当属性を格 納する範囲の終了地点が 本属性に続く、開始日付と同じであることを示す。 続く範囲は、当の範囲のSTART-DATEより後、かつ同じクラスの日付範囲で、最 早い開始日付を持つものとなる。 本属性は省略可能。

 
END-ON-NEXT=YES属性をもつEXT-X-DATERANGEタグはCLASS属性をもたねばなり せん[MUST]。その他の、同じクラスを持つEXT-X-DATERANGEタグは、オーバラッ する範囲を指定してはなりません[MUST]。

END-ON-NEXT=YES属性をもつEXT-X-DATERANGEタグはDURATIONまたはEND-DAT 属性を含んではなりません[MUST]。

DURATION,END-DATE,END-ONNEXT=YES属性を持たない日付範囲は、 (仮にPLANNEDDURATION属性を持っていたとしても)持続長不定となります。

プレイリストがEXT-X-DATERANGEタグを含む場合、 最低1つのEXT-X-PROGRAM-DATE-TIMEタグを含めなければなりません[MUST]。

プレイリストが2つのID属性が同じEXT-X-DATERANGEタグを含む場合、2つのタグで共通に存在する属性の値は同じでなければなりません[MUST]。

日付範囲がDURATION要素とEND-DATE要素の両方を含む場合、END-DATE属性値はSTART-DATE属性値にDURATION属性値を足したものと同一でなければなりません[MUST]。

 
クライアントは不法な構文のEXT-X-DATERANGEタグを無視する必要があります[SHOULD]。

4.4.2.7.1. Mapping SCTE-35 into EXT-X-DATERANGE
Splice information carried in source media according to the SCTE-35 specification [SCTE35] MAY be represented in a Media Playlist using EXT-X-DATERANGE tags.

Each SCTE-35 splice_info_section() containing a splice_null(), splice_schedule(), bandwidth_reservation() or private_cmd() SHOULD be represented by an EXT-X-DATERANGE tag with a SCTE35-CMD attribute whose value is the big-endian binary representation of the splice_info_section(), expressed as a hexadecimal-sequence.

A SCTE-35 splice out/in pair signaled by a pair of splice_insert() commands SHOULD be represented by one or more EXT-X-DATERANGE tags carrying the same ID attribute, which MUST be unique to that splice out/in pair. The “out” splice_info_section() (with out_of_network_indicator set to 1) MUST be placed in a SCTE35-OUT attribute, with the same formatting as SCTE35-CMD. The “in” splice_info_section() (with out_of_network_indicator set to 0) MUST be placed in a SCTE35-IN attribute, with the same formatting as SCTE35-CMD.

A SCTE-35 splice out/in pair signaled by a pair of time_signal() commands, each carrying a single segmentation_descriptor(), SHOULD be represented by one or more EXT-X-DATERANGE tags carrying the same ID attribute, which MUST be unique to that splice out/in pair. The “out” splice_info_section() MUST be placed in a SCTE35-OUT attribute; the “in” splice_info_section() MUST be placed in a SCTE35-IN attribute.

 
Different types of segmentation (as indicated by the segmentation_type_id in the segmentation_descriptor() SHOULD be represented by separate EXT-X-DATERANGE tags, even if two or more segmentation_descriptor()s arrive in the same splice_info_section(). In that case, each EXT-X-DATERANGE tag will have a SCTE35-OUT, SCTE35-IN or SCTE35-CMD attribute whose value is the entire splice_info_section().

A SCTE-35 time_signal() command that does not signal a splice out or in point SHOULD be represented by an EXT-X-DATERANGE tag with a SCTE35-CMD attribute.

The START-DATE of an EXT-X-DATERANGE tag containing a SCTE35-OUT attribute MUST be the date and time that corresponds to the program time of that splice.

The START-DATE of an EXT-X-DATERANGE tag containing a SCTE35-CMD MUST be the date and time specified by the splice_time() in the command, or to the program time at which the command appeared in the source stream if the command does not specify a splice_time(). An EXT-X-DATERANGE tag containing a SCTE35-OUT attribute MAY contain a PLANNED-DURATION attribute. Its value MUST be the planned duration of the splice.

The DURATION of an EXT-X-DATERANGE tag containing a SCTE35-IN attribute MUST be the actual (not planned) program duration between the corresponding out-point and that in-point.

The END-DATE of an EXT-X-DATERANGE tag containing a SCTE35-IN attribute MUST be the actual (not planned) program date and time of that in-point.

If the actual end date and time is not known when a SCTE35-OUT attribute is added to the Playlist, the DURATION attribute and the END-TIME attribute MUST NOT be present; the actual end date of the splice SHOULD be signaled by another EXT-X-DATERANGE tag once it has been established.

SCTE-35仕様に準拠しソースメディアで運ばれる接合情報は、
EXT-X-DATERANGEを使ってメディアプレイリストに存在しても良い[MAY]。

SCTE-35のsplice_null(), splice_schedule(), bandwidth_reservation() または private_cmd()を含む splice_info_section()は、ビッグエンディアンの16進シーケンスで表現されたsplice_info_section()を値に持つSCTE35-CMD 属性を含む EXT-X-DATERANGE タグで表現される必要があります[SHOULD]。

splice_insert()コマンドのペアで通知されるSCTE-35のsplice out/inの組は 1つ以上の、同じID属性を持つEXT-X-DATERANGEタグで表現される必要があります[SHOULD]。 outのsplice_info_section() (without_of_network_indicatorが1)は、SCTE35-CMDと同じフォーマットで、SCTE35-OUT属性に置かれなければなりません[MUST]。inのsplice_info_section() (without_of_network_indicatorが0)は、 SCTE35-CMDと同じフォーマットで、SCTE35-IN属性に置かれなければなりません[MUST]。

それぞれ単一のsegmentation_descriptor()を運ぶtime_signal()コマンドで通知されるSCTE-35 splice out/inペアは一つ以上の、同一のID属性を運ぶ EXT-X-DATERANGE タグで表現される必要があります[SHOULD]。このEXT-X-DATERANGE タグは、splice out/inのペアに一意でなければならない[MUST]。”out”のsplice_info_section()はSCTE35-OUT属性に配置されなければなりません[MUST]。 “in”のsplice_info_section()はSCTE35-IN属性に配置されなければなりません[MUST]。

(segmentation_descriptor()内のsegmentation_type_idで示されるように) 異なる種別のセグメンテーションは、 二つ以上のsegmentation_descriptor()が同じsplice_info_section()に到着しても、 別のEXT-X-DATERANGEで表現される必要があります[SHOULD]。 この場合、EXT-X-DATERANGEタグはsplice_info_section()全体を値に持つ SCTE35-OUT, SCTE35-IN or SCTE35-CMD属性を持ちます。

splice out/inのポイントを通知しないSCTE-35 time_signal()コマンドは、SCTE35-CMD属性を持つEXT-X-DATERANGEタグで表現される必要があります[SHOULD]。

SCTE35-OUT属性を持つEXT-X-DATERANGEのSTART-DATEタグは、該当spliceのプログラム時間に対応する日時でなければなりません[MUST]。

SCTE35-CMDを含むEXT-X-DATERANGEのSTART-DATEタグは、splice_time( で規定される日時でなければなりません[MUST]。 または、コマンドがsplice_time( を特定しない場合、コマンドがソースストリームに現れた時間でなければなりません[MUST]。
SCTE35-OUT属性を含むEXT-X-DATERANGEタグはPLANNED-DURATIONを含んでもよい[MAY]。
その値はspliceのplanned durationでなければなりません[MUST]。

SCTE35-IN属性を含むEXT-X-DATERANGEタグの持続長は、対応するoutポイントとinポイントの間の実際のプログラム持続長でなければなりません[MUST]。

SCTE35-IN属性を含むEXT-X-DATERANGEタグのEND-DATEは、実際の(予定のではなく)inポイントのプログラム日時でなければなりません[MUST]。

SCTE35-OUT属性がプレイリストに追加され、かつ実際の終了日時が不明の場合、DURATION属性とEND-TIME属性は存在してはなりません[MUST NOT]。spliceの実際の終了日付は、(それが確立され次第)別のEXT-X-DATERANGEタグで通知される必要があります[SHOULD]。

4.4.2.7.2. EXT-X-GAP

The EXT-X-GAP tag indicates that the segment URL to which it applies does not contain media data and SHOULD NOT be loaded by clients. It applies only to the next Media Segment.

Its format is:

#EXT-X-GAP

See Section 6.2.1 and Section 6.3.3 for more information on the EXT-X-GAP tag.

EXT-X-GAPタグはセグメントURLがメディアデータを含まないかつクライアントによってロードされるべきでない[SHOULD NOT]ことを示します。次のメディアセグメントのみに適用されます。

フォーマット:

#EXT-X-GAP

詳細は6.2.1/6.3.3章参照

4.4.3. Media Playlist Tags

Media Playlist tags describe global parameters of the Media Playlist. There MUST NOT be more than one Media Playlist tag of each type in any Media Playlist.

 
A Media Playlist Tag MUST NOT appear in a Master Playlist.

メディアプレイリストタグはメディアプレイリストのグローバルパラメタを記述します。各タイプで複数のメディアプレイリストタグがメディアプレイリストに存在してはなりません[MUST NOT]。

メディアプレイリストタグはマスタープレイリストに存在してはなりません。

4.4.3.1. EXT-X-TARGETDURATION

The EXT-X-TARGETDURATION tag specifies the maximum Media Segment duration. The EXTINF duration of each Media Segment in the Playlist file, when rounded to the nearest integer, MUST be less than or equal to the target duration; longer segments can trigger playback stalls or other errors. It applies to the entire Playlist file. Its format is:

#EXT-X-TARGETDURATION:<s>

where s is a decimal-integer indicating the target duration in seconds. The EXT-X-TARGETDURATION tag is REQUIRED.

EXT-X-TARGETDURATIONタグは最大のメディアセグメント持続長を規定します。 各メディアセグメントのEXTINF持続長は、最も近い整数値に丸められた時、 このターゲット持続長以下でなければなりません[MUST]。 より長いセグメントは再生ストールや他のエラーを引き起こします。 本タグは、プレイリスト全体に適用されます。

フォーマット:
#EXT-X-TARGETDURATION:<s>

sは10進整数でターゲット持続長を秒単位で示します。本タグは必須です[REQUIRED]。

4.4.3.2. EXT-X-MEDIA-SEQUENCE

The EXT-X-MEDIA-SEQUENCE tag indicates the Media Sequence Number of the first Media Segment that appears in a Playlist file. Its format is:

#EXT-X-MEDIA-SEQUENCE:<number>

where number is a decimal-integer.

If the Media Playlist file does not contain an EXT-X-MEDIA-SEQUENCE tag then the Media Sequence Number of the first Media Segment in the Media Playlist SHALL be considered to be 0. A client MUST NOT assume that segments with the same Media Sequence Number in different Media Playlists contain matching content – see Section 6.3.2.

A URI for a Media Segment is not required to contain its Media Sequence Number.

See Section 6.2.1 and Section 6.3.5 for more information on setting the EXT-X-MEDIA-SEQUENCE tag.

The EXT-X-MEDIA-SEQUENCE tag MUST appear before the first Media Segment in the Playlist.

EXT-X-MEDIA-SEQUENCEタグは
プレイリストに現れた最初のメディアシーケンス番号を示します。

#EXT-X-MEDIA-SEQUENCE:<number>

numberは10進整数

メディアプレイリストがEXT-X-MEDIA-SEQUENCEタグを含まない場合、メディアプレイリストの最初のメディアセグメントのメディアシーケンス番号は0と考えられるべきです[SHALL]。クライアントは異なるプレイリストの同じメディアシーケンスナンバーを持つセグメントが 一致するコンテンツを格納していると想定してはなりません。[MUST NOT] (6.3.2章を参照)

メディアセグメントのURIはメディアシーケンスナンバーを格納するように要求されていません。

EXT-X-MEDIA-SEQUENCEタグの設定詳細については6.2.1/6.3.5章参照。

EXT-X-MEDIA-SEQUENCEタグは、プレイリストで最初のメディアセグメントタグより先に存在しなければなりません[MUST]。

4.4.3.3. EXT-X-DISCONTINUITY-SEQUENCE

The EXT-X-DISCONTINUITY-SEQUENCE tag allows synchronization between different Renditions of the same Variant Stream or different Variant Streams that have EXT-X-DISCONTINUITY tags in their Media Playlists.

Its format is:

#EXT-X-DISCONTINUITY-SEQUENCE:<number>

where number is a decimal-integer.

If the Media Playlist does not contain an EXT-X-DISCONTINUITY- SEQUENCE tag, then the Discontinuity Sequence Number of the first Media Segment in the Playlist SHALL be considered to be 0.

The EXT-X-DISCONTINUITY-SEQUENCE tag MUST appear before the first Media Segment in the Playlist.

The EXT-X-DISCONTINUITY-SEQUENCE tag MUST appear before any EXT-X-DISCONTINUITY tag.

See Section 6.2.1 and Section 6.2.2 for more information about setting the value of the EXT-X-DISCONTINUITY-SEQUENCE tag.

EXT-X-DISCONTINUITY-SEQUENCEタグは 同じバリアントストリームの異なる演奏 または、メディアプレイリストでEXT-X-DISCONTINUITYタグを持つ 異なるバリアントストリームのレンディション間の同期を取るために使います。

フォーマット:

#EXT-X-DISCONTINUITY-SEQUENCE:<number>

numberは10進整数

メディアプレイリストがEXT-X-DISCONTINUITYSEQUENCEタグを含まない場合、 プレイリストの、最初のメディアセグメントの不連続シーケンスナンバーは0と考えられなければなりません[SHALL]。

EXT-X-DISCONTINUITY-SEQUENCEタグは最初のメディアセグメントの前に現れなければなりません[MUST]。

EXT-X-DISCONTINUITY-SEQUENCEタグはすべてのEXT-X-DISCONTINUITYタグの前に現れなければなりません[MUST]。

EXT-X-DISCONTINUITY-SEQUENCEタグの詳細については6.2.1/6.2.2章を参照してください。

4.4.3.4. EXT-X-ENDLIST

The EXT-X-ENDLIST tag indicates that no more Media Segments will be added to the Media Playlist file. It MAY occur anywhere in the Media Playlist file. Its format is:

#EXT-X-ENDLIST

EXT-X-ENDLISTタグはこれ以上メディアセグメントがプレイリストに追加されないことを示します。本タグは、メディアプレイリストの任意の場所で発生してよい[MAY] 。
フォーマットは以下:

#EXT-X-ENDLIST

4.4.3.5. EXT-X-PLAYLIST-TYPE

The EXT-X-PLAYLIST-TYPE tag provides mutability information about the Media Playlist file. It applies to the entire Media Playlist file. It is OPTIONAL. Its format is:

#EXT-X-PLAYLIST-TYPE:<EVENT|VOD>

Section 6.2.1 defines the implications of the EXT-X-PLAYLIST-TYPE tag.

If the EXT-X-PLAYLIST-TYPE value is EVENT, Media Segments can only be added to the end of the Media Playlist. If the EXT-X-PLAYLIST-TYPE value is VOD, the Media Playlist cannot change.

If the EXT-X-PLAYLIST-TYPE tag is omitted from a Media Playlist, the Playlist can be updated according to the rules in Section 6.2.1 with no additional restrictions. For example, a live Playlist (Section 6.2.2) MAY be updated to remove Media Segments in the order that they appeared.

EXT-X-PLAYLIST-TYPEタグは、メディアプレイリストに関する可変の情報を供給します。 それはメディアプレイリスト全体に適用されます。本タグは省略可能です。
フォーマット:

#EXT-X-PLAYLIST-TYPE:<EVENT|VOD>

6.2.1章は本タグの意味を定義しています。

このタグの値がEVENTの場合、メディアプレイリストへの操作として、 メディアセグメントの追加のみが可能です。

この値がVODの場合、メディアプレイリストは変更不能です。 このタグがメディアプレイリストから取り除かれた場合、プレイリストは6.2.1章記載のルールに従って 追加の制約なしに更新されます。例えば、ライブプレイリスト(6.2.2章 において、(その出現順で)メディアセグメントを削除するために更新してもよい[MAY]。

4.4.3.6. EXT-X-I-FRAMES-ONLY

The EXT-X-I-FRAMES-ONLY tag indicates that each Media Segment in the Playlist describes a single I-frame. I-frames (or Intra frames) are encoded video frames whose encoding does not depend on any other frame. I-frame playlists can be used for trick play, such as fast forward, rapid reverse and scrubbing. The EXT-X-I-FRAMES-ONLY tag applies to the entire Playlist.

Its format is:

#EXT-X-I-FRAMES-ONLY

In a Playlist with the EXT-X-I-FRAMES-ONLY tag, the Media Segment duration (EXTINF tag value) is the time between the presentation time of the I-frame in the Media Segment and the presentation time of the next I-frame in the Playlist, or the end of the presentation if it is the last I-frame in the Playlist.

Media resources containing I-frame segments MUST begin with either a Media Initialization Section (Section 3) or be accompanied by an EXT-X-MAP tag indicating the Media Initialization Section so that clients can load and decode I-frame segments in any order. The byte range of an I-frame segment with an EXT-X-BYTERANGE tag applied to it (Section 4.4.2.2) MUST NOT include its Media Initialization Section; clients can assume that the Media Initialization Section is defined by EXT-X-MAP tag, or is located from the start of the resource to the offset of the first I-frame segment in that resource.

Use of the EXT-X-I-FRAMES-ONLY REQUIRES a compatibility version number of 4 or greater.

EXT-X-I-FRAMES-ONLYタグは各メディアプレイリストが単一のIフレームを記述することを示します。 Iフレーム(イントラフレーム)は、 そのエンコーディングが他のフレームに依存しない、 エンコード済み映像フレームです。 Iフレームプレイリストは早送りや巻き戻しのようなトリックプレイに使うことができます。 EXT-X-I-FRAMES-ONLYタグは、プレイリスト全体に適用されます。
フォーマット:

#EXT-X-I-FRAMES-ONLY

EXT-X-I-FRAMES-ONLYタグを含むプレイリストで、メディアセグメント持続長(EXTINFの値)は IフレームのPTSと次のIフレームのPTSの時間差です。もしくは、 Iフレームがプレイリストの最後のIフレームの場合、該当フレームと、の該当映像の最終ptsとの時間差になります。

Iフレームセグメントを含むメディアリソースは、 クライアントがIフレームセグメントをロードしデコードできるために、 メディア初期化セクション(MPEG2-TSのPAT/PMT)で始まるか、 メディア初期化セクションを示すEXT-X-MAPタグに伴われなければなりません[MUST]。 EXT-X-BYTERANGEタグが適用された、Iフレームセグメントのバイト範囲が そのメディア初期化セクションを含んではなりません[MUST NOT]。クライアントはメディア初期化セクションがEXT-X-MAPタグで定義される、またはそれがリソースの先頭か 最初のIフレームセグメントのオフセットに配置されていると想定することができます。

本タグの使用はバージョン4以上の互換性を必要とします。

4.4.4. Master Playlist Tags

Master Playlist tags define the Variant Streams, Renditions, and other global parameters of the presentation.

Master Playlist Tags MUST NOT appear in a Media Playlist; clients MUST reject any Playlist that contains both a Master Playlist tag and either a Media Playlist tag or a Media Segment tag.

マスタープレイリストタグはバリアントストリーム、代替コンテンツ、その他のグローバルパラメタ 定義します。

マスタープレイリストタグはメディアプレイリストに現れてはなりません[MUST NOT]。 クライアントはマスタープレイリストタグと、メディアプレイリストタグやメディアセグメントタグ 混在するプレイリストを破棄しなければなりません[MUST]。

4.4.4.1. EXT-X-MEDIA

The EXT-X-MEDIA tag is used to relate Media Playlists that contain alternative Renditions (Section 4.4.4.2.1) of the same content. For example, three EXT-X-MEDIA tags can be used to identify audio-only Media Playlists that contain English, French and Spanish Renditions of the same presentation. Or two EXT-X-MEDIA tags can be used to identify video-only Media Playlists that show two different camera angles.

Its format is:

#EXT-X-MEDIA:<attribute-list>

The following attributes are defined:

TYPE

The value is an enumerated-string; valid strings are AUDIO, VIDEO, SUBTITLES and CLOSED-CAPTIONS. This attribute is REQUIRED. In Transport Streams, Closed captions [CEA608] media is carried in the video stream. Therefore, an EXT-X-MEDIA tag with TYPE of CLOSED-CAPTION does not specify a Rendition; the closed caption media is present in the Media Segments of every video Rendition.

URI

The value is a quoted-string containing a URI that identifies the Media Playlist file. This attribute is OPTIONAL; see Section 4.4.4.2.1. If the TYPE is CLOSED-CAPTIONS, the URI attribute MUST NOT be present.

GROUP-ID

The value is a quoted-string which specifies the group to which the Rendition belongs. See Section 4.4.4.1.1. This attribute is REQUIRED.

LANGUAGE

The value is a quoted-string containing one of the standard Tags for Identifying Languages [RFC5646], which identifies the primary language used in the Rendition. This attribute is OPTIONAL.

ASSOC-LANGUAGE

The value is a quoted-string containing a language tag [RFC5646] that identifies a language that is associated with the Rendition. An associated language is often used in a different role than the language specified by the LANGUAGE attribute (e.g. written vs. spoken, or as a fallback dialect). This attribute is OPTIONAL. The LANGUAGE and ASSOC-LANGUAGE attributes can be used, for example, to link Norwegian renditions that use different spoken and written languages.

NAME

The value is a quoted-string containing a human-readable description of the Rendition. If the LANGUAGE attribute is present then this description SHOULD be in that language. This attribute is REQUIRED.

DEFAULT

The value is an enumerated-string; valid strings are YES and NO. If the value is YES, then the client SHOULD play this Rendition of the content in the absence of information from the user indicating a different choice. This attribute is OPTIONAL. Its absence indicates an implicit value of NO.

AUTOSELECT

The value is an enumerated-string; valid strings are YES and NO. This attribute is OPTIONAL. Its absence indicates an implicit value of NO. If the value is YES, then the client MAY choose to play this Rendition in the absence of explicit user preference because it matches the current playback environment, such as chosen system language. If the AUTOSELECT attribute is present, its value MUST be YES if the value of the DEFAULT attribute is YES.

FORCED

The value is an enumerated-string; valid strings are YES and NO. This attribute is OPTIONAL. Its absence indicates an implicit value of NO. The FORCED attribute MUST NOT be present unless the TYPE is SUBTITLES. A value of YES indicates that the Rendition contains content which is considered essential to play. When selecting a FORCED Rendition, a client SHOULD choose the one that best matches the current playback environment (e.g. language). A value of NO indicates that the Rendition contains content which is intended to be played in response to explicit user request.

INSTREAM-ID

The value is a quoted-string that specifies a Rendition within the segments in the Media Playlist. This attribute is REQUIRED if the TYPE attribute is CLOSED-CAPTIONS, in which case it MUST have one of the values: “CC1”, “CC2”, “CC3”, “CC4”, or “SERVICEn” where n MUST be an integer between 1 and 63 (e.g.”SERVICE3″ or “SERVICE42”). The values “CC1”, “CC2”, “CC3”, and “CC4” identify a Line 21 Data Services channel [CEA608]. The “SERVICE” values identify a Digital Television Closed Captioning [CEA708] service block number. For all other TYPE values, the INSTREAM-ID MUST NOT be specified.

CHARACTERISTICS

The value is a quoted-string containing one or more Uniform Type Identifiers [UTI] separated by comma (,) characters. This attribute is OPTIONAL. Each UTI indicates an individual characteristic of the Rendition. A SUBTITLES Rendition MAY include the following characteristics: “public.accessibility.transcribes-spoken-dialog”; “public.accessibility.describes-music-and-sound”; “public.easy-to- read” (which indicates that the subtitles have been edited for ease of reading). An AUDIO Rendition MAY include the following characteristics: “public.accessibility.describes-video”. The CHARACTERISTICS attribute MAY include private UTIs.

CHANNELS

The value is a quoted-string that specifies an ordered, “/”-separated list of parameters. If the TYPE attribute is AUDIO then the first parameter is a count of audio channels expressed as a decimal-integer, indicating the maximum number of independent, simultaneous audio channels present in any Media Segment in the Rendition. For example, an AC-3 5.1 rendition would have a CHANNELS=”6″ attribute. No other CHANNELS parameters are currently defined.

All audio EXT-X-MEDIA tags SHOULD have a CHANNELS attribute. If a Master Playlist contains two renditions encoded with the same codec but a different number of channels, then the CHANNELS attribute is REQUIRED; otherwise it is OPTIONAL.

EXT-X-MEDIAタグは、メディアプレイリストを同じコンテンツの代替表現と関連づけるために使われます。 例えば、3つのEXT-X-MEDIAタグは、英語、フランス語、スペイン語での同じプレゼンテーションの表現を む音声のみのメディアプレイリストを識別するために使えます。 または2つのEXT-X-MEDIAタグは、2つの異なるカメラアングルを示す 映像のみのメディアプレイリストを識別するために使えます。

フォーマット:

#EXT-X-MEDIA:<attribute-list>

属性値は以下が使用可能です。

TYPE

値は列挙型文字列で、AUDIO,VIDEO,SUBTITLES,CLOSED-CAPTIONが有効な値です 本属性は必須です。 トランスポートストリームで、限定字幕メディア[CEA608]は映像ストリームで運ばれます。 そのため、種別:CLOSED-CAPTIONのEXT-X-MEDIAタグはストリーム(Rendition)を特定しません。 限定字幕メディアは各映像ストリームのメディアセグメントに存在します。

 
URI

引用符(“”)あり文字列でメディアプレイリストファイルを特定するURIを指定します。 本属性は省略可能。 4.4.4.2.1章参照 TYPE属性がCLOSED-CAPTIONSの場合、URI属性は存在してはなりません[MUST]。

GROUP-ID

引用符(“”)あり文字列で代替コンテンツが属するグループを特定します。本属性は必須。 4.4.4.1.1章参照。

 
LANGUAGE

引用符(“”)あり文字列で言語を特定するための標準タグ[RFC5646]を記載します。 本属性は省略可能。

 
ASSOC-LANGUAGE

引用符(“”)あり文字列で、代替コンテンツと関連する言語を特定する言語タグ[RFC5646]を指定します。 関連言語はしばしばLANGUAGE属性で指定された言語とは別の役割で使われます(記述に対する口述、方言) 本属性は省略可能。LANGUAGE と ASSOC-LANGUAGE属性は例えば、 ノルウェーの作品が、ノルウェー語と異なる話し言葉、書き言葉を使うような場合に使われます。

 
NAME

引用符(“”)あり文字列で代替コンテンツに対する可読の説明テキストを記載します。 もしLANGUAGE属性が存在する場合、本タグが存在する必要があります[SHOULD]。 本タグは必須[REQUIRED]。

DEFAULT

列挙型文字列でYESまたはNOを指定します。 YESの場合、クライアントは、特に他を選択する指定がなければ、この代替コンテンツを再生します[SHOULD]。本属性は省略可能。省略時は暗黙的にNO設定となります。

AUTOSELECT

列挙型文字列でYES/NOを設定します。本属性は省略可能。YESの場合、クライアントは、明示的なユーザ嗜好(例えば言語選択のように、再生環境が一致するなど)がなければ、この代替コンテンツを演奏しても良い[MAY]。DEFAULT属性がYESの場合、AUTOSELECT属性の値はYESでなければなりません[MUST]。

 
 
 
 
FORCED

列挙型文字列でYES/NOを設定します。本属性は省略可能。省略時は暗黙的にNOとして扱われます。 SUBTITLES属性が存在しない場合、FORCED属性は存在してはなりません[MUST NOT]。 値がYESの場合、代替コンテンツは再生が必須のコンテンツを含むことを示します。 FORCEDの代替コンテンツを選択する場合、クライアントは最も現在の再生環境にマッチするものを選択する必要があります[SHOULD]。 値がNOの場合、代替コンテンツはユーザ要求に応じて再生されるべきコンテンツを含むことを示します。

 
INSTREAM-ID

引用符(“”)あり文字列でメディアプレイリストのセグメント内の代替コンテンツを特定します。 TYPE属性がCLOSED-CAPTIONSの場合必須[REQUIRED]で、”CC1″,”CC2″,”CC3″,”CC4″, “SERVICEn” (nは1〜63 例:”SERVICE3″,”SERVICE42″ のいずれかの値を設定しなければなりません[MUST]。 “CC1″,”CC2″,”CC3”,”CC4″はLine21データサービスチャネル[CEA608]を特定します。 “SERVICE”はデジタルテレビ限定字幕[CEA708]のサービスブロック番号です。 TYPE属性がCLOSED-CAPTIONSでない場合、INSTREAM-IDを指定してはなりません[MUST]。

CHARACTERISTICS

引用符(“”)あり文字列で、一つ以上の、カンマで区切られたUniform Type 識別子[UTI を指定します。本属性は省略可能。各UTIは代替コンテンツの個別属性を示します。 SUBTITLE 代替コンテンツは以下のCHARACTERISTICS属性値を含んでも良い[MAY]。 “public.accessibility.transcribes-spoken-dialog”; “public.accessibility.describes-music-and-sound”; “public.easy-toread”(サブタイトルが読みやすさのために編集されたことを示す) AUDIO代替コンテンツは以下のCHARACTERISTICS属性値を含んでも良い “public.accessibility.describes-video”. CHARACTERISTICS属性はプライベートUniform Type 識別子を含んでも良い[MAY]。

CHANNELS

引用符(“”)あり文字列で, “/” で分割された順序付きパラメータリストを指定します。 TYPE属性がAUDIOの場合、最初のパラメータは10進整数で示される音声チャネルの数になります。 代替コンテンツの任意のセグメントに、同時に存在する独立した音声チャネルの最大数を示します。 例えば、AC-3 5.1代替コンテンツはCHANNELS=”6″の値を持ちます。その他のCHANNELSパラメ タは現在未定義です。

音声のEXT-X-MEDIAタグは全て、CHANNELS属性を持つ必要があります[SHOULD]。 マスタープレイリストが、同じコーデックでエンコードされ、異なるチャネル数を持つ二つの代替コンテンツを格納する場合、CHANNELS属性は必須[REQUIRED]になります。それ以外の場合は省略可能です。

4.4.4.1.1. Rendition Groups
A set of one or more EXT-X-MEDIA tags with the same GROUP-ID value and the same TYPE value defines a Group of Renditions. Each member of the Group MUST be an alternative rendition of the same content; otherwise playback errors can occur.

All EXT-X-MEDIA tags in a Playlist MUST meet the following constraints:

o All EXT-X-MEDIA tags in the same Group MUST have different NAME attributes.

o A Group MUST NOT have more than one member with a DEFAULT attribute of YES.

o Each EXT-X-MEDIA tag with an AUTOSELECT=YES attribute SHOULD have a combination of LANGUAGE [RFC5646], ASSOC-LANGUAGE, FORCED, and CHARACTERISTICS attributes that is distinct from those of other AUTOSELECT=YES members of its Group.

 
A Playlist MAY contain multiple Groups of the same TYPE in order to provide multiple encodings of that media type. If it does so, each Group of the same TYPE MUST have the same set of members, and each corresponding member MUST have identical attributes with the exception of the URI and CHANNELS attributes.

 
Each member in a Group of Renditions MAY have a different sample format. For example, an English rendition can be encoded with AC-3 5.1 while a Spanish rendition is encoded with AAC stereo. However, any EXT-X-STREAM-INF (Section 4.4.4.2) tag or EXT-X-I-FRAME-STREAM- INF (Section 4.4.4.3) tag which references such a Group MUST have a CODECS attribute that lists every sample format present in any Rendition in the Group, or client playback failures can occur. In the example above, the CODECS attribute would include “ac-3,mp4a.40.2”.

同じGROUP-ID値と同じTYPE値を持つ、一つ以上のEXT-X-MEDIAタグの組が 代替コンテンツのグループを定義します。グループの各メンバは同じコンテンツの代替代替コンテンツでなければなりません[MUST]。 でなければプレイバックエラーが発生しえます。 プレイリスト内の全てのEXT-X-MEDIAタグは以下の制約を満たさなければなりません[MUST]。

 
– 同じグループのEXT-X-MEDIAタグは、全て異なるNAME属性を持つこと

 
– グループ内でDEFAULT属性がYESの項目は一つであること

 
– AUTOSELECT=YESのEXT-X-MEDIAタグは、互いに異なる下記属性値の組み合わせを持つこと
(# LANGUAGE [RFC5646], ASSOC-LANGUAGE, FORCED, CHARACTERISTICS)

 
プレイリストは、該当メディア種別の複数のエンコーディングを提供するために同じTYPEの複数のグループを格納しても良い[MAY]。プレイリストは、該当メディア種別の複数のエンコーディングを提供するために同じTYPEの複数のグループを格納しても良い[MAY]。そうする場合、同じTYPEの各グループは同じメンバーのセットを持たなければならない[MUST]。対応する各メンバはURIとCHANNELS属性を除き、一意の属性を持たなければならない[MUST]。

代替コンテンツグループの各メンバは異なるサンプルフォーマットであっても良い[MUST]。 例えば、英語の代替コンテンツはAC-3 5.1をエンコードし、スペイン語の代替コンテンツをAACステレオでエンコードすることが可能。 しかし、そのようなグループを参照する EXT-X-STREAM-INFタグ(4.4.4.2章)またはEXT-X-I-FRAME-STREAMINFタグ(4.4.4.3章) は、存在する任意の代替コンテンツの全てのサンプルフォーマットを列挙するCODECS属性を持たなければならない[MUST]。 でなければ、クライアントの再生は失敗し得る。上記の例では、CODECS属性は”ac-3,mp4.40.2″を持ちます。

4.4.4.2. EXT-X-STREAM-INF

The EXT-X-STREAM-INF tag specifies a Variant Stream, which is a set of Renditions which can be combined to play the presentation. The attributes of the tag provide information about the Variant Stream.

The URI line that follows the EXT-X-STREAM-INF tag specifies a Media Playlist that carries a Rendition of the Variant Stream. The URI line is REQUIRED. Clients that do not support multiple video renditions SHOULD play this Rendition

Its format is:

#EXT-X-STREAM-INF:<attribute-list>
<URI>

The following attributes are defined:

BANDWIDTH

The value is a decimal-integer of bits per second. It represents the peak segment bit rate of the Variant Stream.

If all the Media Segments in a Variant Stream have already been created, the BANDWIDTH value MUST be the largest sum of peak segment bit rates that is produced by any playable combination of Renditions. (For a Variant Stream with a single Media Playlist, this is just the peak segment bit rate of that Media Playlist.)

An inaccurate value can cause playback stalls or prevent clients from playing the variant.

If the Master Playlist is to be made available before all Media Segments in the presentation have been encoded, the BANDWIDTH value SHOULD be the BANDWIDTH value of a representative period of similar content, encoded using the same settings. Every EXT-X-STREAM-INF tag MUST include the BANDWIDTH attribute.

AVERAGE-BANDWIDTH

The value is a decimal-integer of bits per second. It represents the average segment bit rate of the Variant Stream.

If all the Media Segments in a Variant Stream have already been created, the AVERAGE-BANDWIDTH value MUST be the largest sum of average segment bit rates that is produced by any playable combination of Renditions. (For a Variant Stream with a single Media Playlist, this is just the average segment bit rate of that Media Playlist.) An inaccurate value can cause playback stalls or prevent clients from playing the variant.

If the Master Playlist is to be made available before all Media Segments in the presentation have been encoded, the AVERAGE- BANDWIDTH value SHOULD be the AVERAGE-BANDWIDTH value of a representative period of similar content, encoded using the same settings.

The AVERAGE-BANDWIDTH attribute is OPTIONAL.

CODECS

The value is a quoted-string containing a comma-separated list of formats, where each format specifies a media sample type that is present in one or more Renditions specified by the Variant Stream. Valid format identifiers are those in the ISO Base Media File Format Name Space defined by The ‘Codecs’ and ‘Profiles’ Parameters for “Bucket” Media Types [RFC6381].

For example, a stream containing AAC-LC audio and H.264 Main Profile Level 3.0 video would have a CODECS value of “mp4a.40.2,avc1.4d401e”.

Note that if a Variant Stream specifies one more more Renditions that include IMSC subtitles, the CODECS attribute MUST indicate this with a format identifier such as “stpp.TTML.im1t”.

Every EXT-X-STREAM-INF tag SHOULD include a CODECS attribute.

RESOLUTION

The value is a decimal-resolution describing the optimal pixel resolution at which to display all the video in the Variant Stream.

The RESOLUTION attribute is OPTIONAL but is recommended if the Variant Stream includes video.

FRAME-RATE

The value is a decimal-floating-point describing the maximum frame rate for all the video in the Variant Stream, rounded to 3 decimal places.

The FRAME-RATE attribute is OPTIONAL but is recommended if the Variant Stream includes video. The FRAME-RATE attribute SHOULD be included if any video in a Variant Stream exceeds 30 frames per second.

HDCP-LEVEL

The value is an enumerated-string; valid strings are TYPE-0 and NONE. This attribute is advisory; a value of TYPE-0 indicates that the Variant Stream could fail to play unless the output is protected by HDCP Type 0 [HDCP] or equivalent. A value of NONE indicates that the content does not require output copy protection.

Encrypted Variant Streams with different HDCP levels SHOULD use different media encryption keys.

The HDCP-LEVEL attribute is OPTIONAL. It SHOULD be present if any content in the Variant Stream will fail to play without HDCP. Clients without output copy protection SHOULD NOT load a Variant Stream with an HDCP-LEVEL attribute unless its value is NONE.

AUDIO

The value is a quoted-string. It MUST match the value of the GROUP-ID attribute of an EXT-X-MEDIA tag elsewhere in the Master Playlist whose TYPE attribute is AUDIO. It indicates the set of audio Renditions that SHOULD be used when playing the presentation. See Section 4.4.4.2.1.

The AUDIO attribute is OPTIONAL.

VIDEO

The value is a quoted-string. It MUST match the value of the GROUP-ID attribute of an EXT-X-MEDIA tag elsewhere in the Master Playlist whose TYPE attribute is VIDEO. It indicates the set of video Renditions that SHOULD be used when playing the presentation. See Section 4.4.4.2.1.

The VIDEO attribute is OPTIONAL.

SUBTITLES

The value is a quoted-string. It MUST match the value of the GROUP-ID attribute of an EXT-X-MEDIA tag elsewhere in the Master Playlist whose TYPE attribute is SUBTITLES. It indicates the set of subtitle Renditions that can be used when playing the presentation. See Section 4.4.4.2.1.

The SUBTITLES attribute is OPTIONAL.

CLOSED-CAPTIONS

The value can be either a quoted-string or an enumerated-string with the value NONE. If the value is a quoted-string, it MUST match the value of the GROUP-ID attribute of an EXT-X-MEDIA tag elsewhere in the Playlist whose TYPE attribute is CLOSED-CAPTIONS, and indicates the set of closed-caption Renditions that can be used when playing the presentation. See Section 4.4.4.2.1.

If the value is the enumerated-string value NONE, all EXT-X -STREAM-INF tags MUST have this attribute with a value of NONE, indicating that there are no closed captions in any Variant Stream in the Master Playlist. Having closed captions in one Variant Stream but not another can trigger playback inconsistencies.

The CLOSED-CAPTIONS attribute is OPTIONAL.

EXT-X-STREAM-INFタグは バリアントストリーム(プレゼンテーションを再生するために組み合わされる、レンディションのセ ト)を特定します。 このタグの属性はバリアントストリームの情報を提供します。

EXT-X-STREAM-INFタグに続くURI行は、バリアントストリームのレンディションを運ぶメディア レイリストを特定します。 URI行は必須です。 複数ビデオレンディションの再生をサポートしないクライアントは、このレンディションを再生する 要があります[SHOULD]。

フォーマット:

#EXT-X-STREAM-INF:<attribute-list>
<URI>

以下の属性が定義されています

BANDWIDTH

10進整数で秒毎のビット数を記載します。 バリアントストリームのピークセグメントビットレートを表示します。

バリアントストリームの全てのメディアセグメントが生成されている場合、 BANDWIDTHは、任意の再生可能なレンディションの組み合わせによって生成される ピークセグメントビットレートの合計値の中で最大の値でなければなりません[MUST]。 単一のメディアプレイリストを持つバリアントストリームの場合、 単にメディアプレイリストのピークセグメントビットレートになります。

不正確な値はクライアントの再生ストールを発生させ得ます。

もしプレゼンテーション内の全てのメディアセグメントがエンコードされる前に マスタープレイリストが利用可能になる場合、BANDWIDTHの値は、 同じ設定でエンコードされる類似コンテンツの代表的区間のBANDWIDTH値を設定します[SHOULD]。

AVERAGE-BANDWIDTH

10進整数で毎秒のビット数を表します。 バリアントストリーム内の平均セグメントビットレートを示します。

バリアントストリームの全てのメディアセグメントが生成済みの場合、 BANDWIDTHは、任意の再生可能なレンディションの組み合わせによって生成される 平均セグメントビットレートの最大の合計値でなければなりません[MUST]。 単一のメディアプレイリストを持つバリアントストリームの場合、 単にメディアプレイリストの平均セグメントビットレートになります。 不正確な値はクライアントの再生ストールを発生させ得ます。

もしプレゼンテーション内の全てのメディアセグメントがエンコードされる前に マスタープレイリストが利用可能になる場合、BANDWIDTHの値は、 同じ設定でエンコードされる類似コンテンツの代表的区間のAVARAGE-BANDWIDTH値を設定します[SHOULD]。

本属性は省略可能です。

CODECS

引用符(“”)あり文字列で、カンマ区切りでフォーマットのリストを示します。 それらのフォーマットは、 バリアントストリームで特定される一つ以上のレンディションに存在する、 メディアサンプル種別を特定します。妥当なフォーマット識別子は、 “Bucket”メディアタイプ用のCodecs,Profilesパラメータで定義される ISOベースメディアファイルフォーマット名前空間[RFC6381]です。

例えば、AAC-LC音声とH.264 Mainプロファイル Level3.0の映像を持つストリームは “mp4a.40.2,avc1.4d401e”の値を持ちます。

もしバリアントストリームが一つ以上のIMSC字幕レンディションを特定する場合、 CODECS属性は、そのことを”stpp.TTML.im1t”のようなフォーマットIDで示さねばならない MUST]ことに留意してください。

全てのEXT-X-STREAM-INFタグはCODECS属性を含む必要があります[SHOULD]。

RESOLUTION

バリアントストリームの映像表示の最適ピクセル解像度を示す10進数。

本属性は省略可能だがバリアントストリームが映像を含む場合設定されることが望ましい。

FRAME-RATE

この値は、10進小数点(小数点3桁までに丸める)で、バリアントストリームの全てのビデオの最大フレームレートを示します。
FRAME-RATE属性は省略可能ですがバリアントストリームが映像を含む場合設定されることが望ましい。バリアントストリームの映像が30を超えるフレームレートを持つ場合設定される必要があります[SHOULD]。

 

HDCP-LEVEL

列挙型の文字列で、”TYPE-0″または”NONE”を設定します。本属性は参考的属性(advisory)です。TYPE-0は、バリアントストリームの出力がHDCP Type 0またはそれに準じる内容で保護されていなければ 再生に失敗し得ることを示します。NONEはコンテンツが出力コピー保護を要求しないことを示します。

異なるHDCPレベルの暗号化バリアントストリームは異なるメディア暗号化鍵を使う必要があります[SHOULD]。

本属性は省略可能です。バリアントストリームのいずれかのコンテンツが、HDCPなしでは再生に失敗する場合、本属性は存在する必要があります[SHOULD]。出力のコピー保護の必要のないクライアントは、その値がNONEでない限り、HDCP-LEVEL属性を含むバリアントストリームをロードするべきでありません[SHOULD NOT]。

AUDIO

引用符(“”)あり文字列で、マスタープレイリスト内の、いずれかの、TYPE属性がAUDIOであるEXT X-MEDIAタグのGROUP-ID属性 と一致しなければならない[MUST]。 プレゼンテーションを再生する際に使用する必要のある[SHOULD 音声代替コンテンツを指定します。 4.4.4.2.1章参照。

本属性は省略可能。

VIDEO

引用符(“”)あり文字列で指定します。マスタープレイリスト内の、いずれかの、TYPE属性がVIDEOであるEXT-X-MEDIAタグのGROUP-ID属性と一致しなければならない[MUST]。 プレゼンテーションを再生する際に使用する必要のある[SHOULD 映像代替コンテンツを指定します。 4.4.4.2.2章参照。

本属性は省略可能。

SUBTITLES

引用符(“”)あり文字列で指定します。 マスタープレイリスト内の、いずれかの、TYPE属性がSUBTITLESであるEXT-X-MEDIAタグのGRO P-ID属性 と一致しなければならない[MUST]。 プレゼンテーションを再生する際に使用する必要のある[SHOULD 字幕代替コンテンツを指定します。 4.4.4.2.1章参照

本属性は省略可能。

CLOSED-CAPTIONS

引用符(“”)あり文字列か列挙型文字列で値:NONEを取ります。 引用符(“”)あり文字列の場合、 その値がプレイリストのTYPE属性がCLOSED-CAPTIONSのEXT-X-MEDIAタグのGROUP-ID属性と 致しなければならない[MUST]。 また、本属性はプレゼンテーションを再生中に使用できる限定字幕代替メディアを示します。4.4.4.2.1章参照。

 
この値が列挙型文字列でNONEを取る場合、 全てのEXT-X-STREAM-INFタグは本属性についてNONEを設定せねばならない[MUST]。 また、マスタープレイリストの全てのバリアントストリームに限定字幕が存在しないことを示す。 あるバリアントストリームに限定字幕が存在し、別のバリアントストリームに字幕が存在しない場 、不整合な再生を引き起こし得ます。

本属性は省略可能。