Independent Submission                                    R. Pantos, Ed.
Request for Comments: 8216                                   Apple, Inc.
Category: Informational                                           W. May
ISSN: 2070-1721                                       MLB Advanced Media
                                                             August 2017
        
Independent Submission                                    R. Pantos, Ed.
Request for Comments: 8216                                   Apple, Inc.
Category: Informational                                           W. May
ISSN: 2070-1721                                       MLB Advanced Media
                                                             August 2017
        

HTTP Live Streaming

HTTP实时流媒体

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 7 of this protocol.

本文档描述了一种用于传输无限多媒体数据流的协议。它指定文件的数据格式以及流的服务器(发送方)和客户端(接收方)要执行的操作。它描述了该协议的版本7。

Status of This Memo

关于下段备忘

This document is not an Internet Standards Track specification; it is published for informational purposes.

本文件不是互联网标准跟踪规范;它是为了提供信息而发布的。

This is a contribution to the RFC Series, independently of any other RFC stream. The RFC Editor has chosen to publish this document at its discretion and makes no statement about its value for implementation or deployment. Documents approved for publication by the RFC Editor are not a candidate for any level of Internet Standard; see Section 2 of RFC 7841.

这是对RFC系列的贡献,独立于任何其他RFC流。RFC编辑器已选择自行发布此文档,并且未声明其对实现或部署的价值。RFC编辑批准发布的文件不适用于任何级别的互联网标准;见RFC 7841第2节。

Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at http://www.rfc-editor.org/info/rfc8216.

有关本文件当前状态、任何勘误表以及如何提供反馈的信息,请访问http://www.rfc-editor.org/info/rfc8216.

Copyright Notice

版权公告

Copyright (c) 2017 IETF Trust and the persons identified as the document authors. All rights reserved.

版权所有(c)2017 IETF信托基金和确定为文件作者的人员。版权所有。

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document.

本文件受BCP 78和IETF信托有关IETF文件的法律规定的约束(http://trustee.ietf.org/license-info)自本文件出版之日起生效。请仔细阅读这些文件,因为它们描述了您对本文件的权利和限制。

This document may not be modified, and derivative works of it may not be created, except to format it for publication as an RFC or to translate it into languages other than English.

不得修改本文件,也不得创建其衍生作品,除非将其格式化为RFC出版或将其翻译为英语以外的其他语言。

Table of Contents

目录

   1. Introduction to HTTP Live Streaming .............................4
   2. Overview ........................................................4
   3. Media Segments ..................................................6
      3.1. Supported Media Segment Formats ............................6
      3.2. MPEG-2 Transport Streams ...................................7
      3.3. Fragmented MPEG-4 ..........................................7
      3.4. Packed Audio ...............................................8
      3.5. WebVTT .....................................................8
   4. Playlists .......................................................9
      4.1. Definition of a Playlist ..................................10
      4.2. Attribute Lists ...........................................11
      4.3. Playlist Tags .............................................12
           4.3.1. Basic Tags .........................................12
                  4.3.1.1. EXTM3U ....................................12
                  4.3.1.2. EXT-X-VERSION .............................12
           4.3.2. Media Segment Tags .................................13
                  4.3.2.1. EXTINF ....................................13
                  4.3.2.2. EXT-X-BYTERANGE ...........................14
                  4.3.2.3. EXT-X-DISCONTINUITY .......................14
                  4.3.2.4. EXT-X-KEY .................................15
                  4.3.2.5. EXT-X-MAP .................................17
                  4.3.2.6. EXT-X-PROGRAM-DATE-TIME ...................18
                  4.3.2.7. EXT-X-DATERANGE ...........................18
                           4.3.2.7.1. Mapping SCTE-35 into
                                      EXT-X-DATERANGE ................20
           4.3.3. Media Playlist Tags ................................22
                  4.3.3.1. EXT-X-TARGETDURATION ......................22
                  4.3.3.2. EXT-X-MEDIA-SEQUENCE ......................22
                  4.3.3.3. EXT-X-DISCONTINUITY-SEQUENCE ..............23
                  4.3.3.4. EXT-X-ENDLIST .............................23
                  4.3.3.5. EXT-X-PLAYLIST-TYPE .......................24
                  4.3.3.6. EXT-X-I-FRAMES-ONLY .......................24
           4.3.4. Master Playlist Tags ...............................25
                  4.3.4.1. EXT-X-MEDIA ...............................25
                           4.3.4.1.1. Rendition Groups ...............28
                  4.3.4.2. EXT-X-STREAM-INF ..........................29
                           4.3.4.2.1. Alternative Renditions .........32
                  4.3.4.3. EXT-X-I-FRAME-STREAM-INF ..................33
                  4.3.4.4. EXT-X-SESSION-DATA ........................34
                  4.3.4.5. EXT-X-SESSION-KEY .........................35
           4.3.5. Media or Master Playlist Tags ......................35
                  4.3.5.1. EXT-X-INDEPENDENT-SEGMENTS ................35
                  4.3.5.2. EXT-X-START ...............................36
        
   1. Introduction to HTTP Live Streaming .............................4
   2. Overview ........................................................4
   3. Media Segments ..................................................6
      3.1. Supported Media Segment Formats ............................6
      3.2. MPEG-2 Transport Streams ...................................7
      3.3. Fragmented MPEG-4 ..........................................7
      3.4. Packed Audio ...............................................8
      3.5. WebVTT .....................................................8
   4. Playlists .......................................................9
      4.1. Definition of a Playlist ..................................10
      4.2. Attribute Lists ...........................................11
      4.3. Playlist Tags .............................................12
           4.3.1. Basic Tags .........................................12
                  4.3.1.1. EXTM3U ....................................12
                  4.3.1.2. EXT-X-VERSION .............................12
           4.3.2. Media Segment Tags .................................13
                  4.3.2.1. EXTINF ....................................13
                  4.3.2.2. EXT-X-BYTERANGE ...........................14
                  4.3.2.3. EXT-X-DISCONTINUITY .......................14
                  4.3.2.4. EXT-X-KEY .................................15
                  4.3.2.5. EXT-X-MAP .................................17
                  4.3.2.6. EXT-X-PROGRAM-DATE-TIME ...................18
                  4.3.2.7. EXT-X-DATERANGE ...........................18
                           4.3.2.7.1. Mapping SCTE-35 into
                                      EXT-X-DATERANGE ................20
           4.3.3. Media Playlist Tags ................................22
                  4.3.3.1. EXT-X-TARGETDURATION ......................22
                  4.3.3.2. EXT-X-MEDIA-SEQUENCE ......................22
                  4.3.3.3. EXT-X-DISCONTINUITY-SEQUENCE ..............23
                  4.3.3.4. EXT-X-ENDLIST .............................23
                  4.3.3.5. EXT-X-PLAYLIST-TYPE .......................24
                  4.3.3.6. EXT-X-I-FRAMES-ONLY .......................24
           4.3.4. Master Playlist Tags ...............................25
                  4.3.4.1. EXT-X-MEDIA ...............................25
                           4.3.4.1.1. Rendition Groups ...............28
                  4.3.4.2. EXT-X-STREAM-INF ..........................29
                           4.3.4.2.1. Alternative Renditions .........32
                  4.3.4.3. EXT-X-I-FRAME-STREAM-INF ..................33
                  4.3.4.4. EXT-X-SESSION-DATA ........................34
                  4.3.4.5. EXT-X-SESSION-KEY .........................35
           4.3.5. Media or Master Playlist Tags ......................35
                  4.3.5.1. EXT-X-INDEPENDENT-SEGMENTS ................35
                  4.3.5.2. EXT-X-START ...............................36
        
   5. Key Files ......................................................37
      5.1. Structure of Key Files ....................................37
      5.2. IV for AES-128 ............................................37
   6. Client/Server Responsibilities .................................37
      6.1. Introduction ..............................................37
      6.2. Server Responsibilities ...................................37
           6.2.1. General Server Responsibilities ....................37
           6.2.2. Live Playlists .....................................40
           6.2.3. Encrypting Media Segments ..........................41
           6.2.4. Providing Variant Streams ..........................42
      6.3. Client Responsibilities ...................................44
           6.3.1. General Client Responsibilities ....................44
           6.3.2. Loading the Media Playlist File ....................44
           6.3.3. Playing the Media Playlist File ....................45
           6.3.4. Reloading the Media Playlist File ..................46
           6.3.5. Determining the Next Segment to Load ...............47
           6.3.6. Decrypting Encrypted Media Segments ................47
   7. Protocol Version Compatibility .................................48
   8. Playlist Examples ..............................................50
      8.1. Simple Media Playlist .....................................50
      8.2. Live Media Playlist Using HTTPS ...........................50
      8.3. Playlist with Encrypted Media Segments ....................51
      8.4. Master Playlist ...........................................51
      8.5. Master Playlist with I-Frames .............................51
      8.6. Master Playlist with Alternative Audio ....................52
      8.7. Master Playlist with Alternative Video ....................52
      8.8. Session Data in a Master Playlist .........................53
      8.9. CHARACTERISTICS Attribute Containing Multiple
           Characteristics ...........................................54
      8.10. EXT-X-DATERANGE Carrying SCTE-35 Tags ....................54
   9. IANA Considerations ............................................54
   10. Security Considerations .......................................55
   11. References ....................................................56
      11.1. Normative References .....................................56
      11.2. Informative References ...................................59
   Contributors ......................................................60
   Authors' Addresses ................................................60
        
   5. Key Files ......................................................37
      5.1. Structure of Key Files ....................................37
      5.2. IV for AES-128 ............................................37
   6. Client/Server Responsibilities .................................37
      6.1. Introduction ..............................................37
      6.2. Server Responsibilities ...................................37
           6.2.1. General Server Responsibilities ....................37
           6.2.2. Live Playlists .....................................40
           6.2.3. Encrypting Media Segments ..........................41
           6.2.4. Providing Variant Streams ..........................42
      6.3. Client Responsibilities ...................................44
           6.3.1. General Client Responsibilities ....................44
           6.3.2. Loading the Media Playlist File ....................44
           6.3.3. Playing the Media Playlist File ....................45
           6.3.4. Reloading the Media Playlist File ..................46
           6.3.5. Determining the Next Segment to Load ...............47
           6.3.6. Decrypting Encrypted Media Segments ................47
   7. Protocol Version Compatibility .................................48
   8. Playlist Examples ..............................................50
      8.1. Simple Media Playlist .....................................50
      8.2. Live Media Playlist Using HTTPS ...........................50
      8.3. Playlist with Encrypted Media Segments ....................51
      8.4. Master Playlist ...........................................51
      8.5. Master Playlist with I-Frames .............................51
      8.6. Master Playlist with Alternative Audio ....................52
      8.7. Master Playlist with Alternative Video ....................52
      8.8. Session Data in a Master Playlist .........................53
      8.9. CHARACTERISTICS Attribute Containing Multiple
           Characteristics ...........................................54
      8.10. EXT-X-DATERANGE Carrying SCTE-35 Tags ....................54
   9. IANA Considerations ............................................54
   10. Security Considerations .......................................55
   11. References ....................................................56
      11.1. Normative References .....................................56
      11.2. Informative References ...................................59
   Contributors ......................................................60
   Authors' Addresses ................................................60
        
1. Introduction to HTTP Live Streaming
1. HTTP实时流媒体简介

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.

HTTP实时流媒体提供了一种可靠、经济高效的方法,可以通过Internet传送连续的长格式视频。它允许接收器根据当前网络条件调整媒体的比特率,以便以尽可能最佳的质量保持不间断播放。它支持间隙内容边界。它为媒体加密提供了一个灵活的框架。它可以有效地提供相同内容的多个格式副本,例如音频翻译。它提供了与大规模HTTP缓存基础架构的兼容性,以支持向大量受众的交付。

Since the Internet-Draft was first posted 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.

自2009年首次发布互联网草案以来,HTTP直播已经被广泛的内容生产者、工具供应商、分销商和设备制造商实施和部署。在随后的八年中,通过与各种媒体流实现者的广泛审查和讨论,该协议得到了完善。

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.

本文档旨在通过描述媒体传输协议,促进HTTP实时流媒体实现之间的互操作性。使用此协议,客户机可以从服务器接收连续的媒体流以进行并发呈现。

This document describes version 7 of the protocol.

本文件描述了协议的第7版。

2. Overview
2. 概述

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

多媒体呈现由播放列表的统一资源标识符(URI)[RFC3986]指定。

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

播放列表是媒体播放列表或主播放列表。两者都是包含URI和描述性标记的UTF-8文本文件。

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

#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
        
   #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.

第一行是格式标识符标记#EXTM3U。包含#EXT-X-TARGETDURATION的行表示所有媒体段的长度都将小于等于10秒。然后,声明三个媒体段。第一个和第二个是9.009秒长;第三个是3.003秒。

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.

要播放此播放列表,客户端首先下载它,然后下载并播放其中声明的每个媒体段。客户端将按照本文档中的说明重新加载播放列表,以发现任何添加的片段。数据应该通过HTTP[RFC7230]进行传输,但是,一般来说,URI可以指定任何能够按需可靠传输指定资源的协议。

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", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

本文件中的关键词“必须”、“不得”、“必需”、“应”、“不应”、“建议”、“不建议”、“可”和“可选”在所有大写字母出现时(如图所示)应按照BCP 14[RFC2119][RFC8174]所述进行解释。

3. Media Segments
3. 媒体板块

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

媒体播放列表包含构成整个演示文稿的一系列媒体片段。媒体段由URI和可选的字节范围指定。

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

每个媒体段的持续时间在媒体播放列表中通过其EXECEF标签表示(第4.3.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.3.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.

媒体播放列表中的每个片段都有一个唯一的整数媒体序列号。媒体播放列表中第一段的媒体序列号为0或在播放列表中声明(第4.3.3.2节)。每隔一段的媒体序列号等于它前面的段的媒体序列号加上一。

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 that are explicitly signaled as discontinuities (Section 4.3.2.3). Unmarked media discontinuities can trigger playback errors.

每个媒体段都必须携带编码比特流的连续性,该连续性是从具有先前媒体序列号的段的末尾开始的,其中时间戳和连续性计数器等系列中的值必须不间断地继续。唯一的例外是第一个出现在媒体播放列表中的媒体段和明确表示为不连续的媒体段(第4.3.2.3节)。未标记的媒体中断可能会触发播放错误。

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 Instantaneous Decoding Refresh (IDR); frames prior to the first IDR will be downloaded but possibly discarded.

包含视频的任何媒体段应包括足够的信息,以初始化视频解码器并解码包括段中最后一帧的连续帧集;如果段中有足够的信息对段中的所有帧进行解码,则可以优化网络效率。例如,包含H.264视频的任何媒体段应包含瞬时解码刷新(IDR);将下载第一个IDR之前的帧,但可能会丢弃。

3.1. Supported Media Segment Formats
3.1. 支持的媒体段格式

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 tag (Section 4.3.2.5). The Media Initialization Section MUST NOT contain sample data.

某些媒体格式需要一个公共字节序列来初始化解析器,然后才能解析媒体段。此特定于格式的序列称为介质初始化部分。介质初始化部分可由EXT-X-MAP标签指定(第4.3.2.5节)。介质初始化部分不得包含样本数据。

3.2. MPEG-2 Transport Streams
3.2. MPEG-2传输流

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

MPEG-2传输流由[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).

MPEG-2传输流段的媒体初始化部分是节目关联表(PAT),后跟节目映射表(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 tag (Section 4.3.2.5) 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.

传输流段必须包含单个MPEG-2程序;未定义多节目传输流的播放。每个运输流段必须包含PAT和PMT,或应用EXT-X-MAP标签(第4.3.2.5节)。在没有EXT-X-MAP标签的段中,前两个传输流数据包应该是PAT和PMT。

3.3. Fragmented MPEG-4
3.3. 片段化MPEG-4

MPEG-4 Fragments are specified by the ISO Base Media File Format [ISOBMFF]. Unlike regular MPEG-4 files that 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.

MPEG-4片段由ISO基本媒体文件格式[ISOBMFF]指定。与常规MPEG-4文件不同,常规MPEG-4文件具有包含样本表的电影框(“moov”)和包含相应样本的媒体数据框(“mdat”),MPEG-4片段由包含样本表子集的电影片段框(“moof”)和包含这些样本的媒体数据框组成。使用MPEG-4片段确实需要一个用于初始化的电影框,但该电影框只包含非样本特定的信息,例如轨迹和样本描述。

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 of [ISOBMFF].

片段化MPEG-4(fMP4)段是[ISOBMFF]第3节定义的“段”,包括[ISOBMFF]第8.16节中对媒体数据框的限制。

The Media Initialization Section for an fMP4 Segment is an ISO Base Media File that can initialize a parser for that Segment.

fMP4段的媒体初始化部分是一个ISO基本媒体文件,可以初始化该段的解析器。

Broadly speaking, fMP4 Segments and Media Initialization Sections are [ISOBMFF] files that also satisfy the constraints described in this section.

一般来说,fMP4段和介质初始化段是[ISOBMFF]文件,也满足本节中描述的约束条件。

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 Common Media Application Format (CMAF) Header [CMAF] meets all these requirements.

fMP4段的媒体初始化部分必须包含一个文件类型框(“ftyp”),其中包含与“iso6”或更高版本兼容的品牌。文件类型框后面必须跟一个电影框。电影盒必须为fMP4段中的每个曲目片段盒(“traf”)包含一个具有匹配曲目ID的曲目盒(“trak”)。每个曲目盒应包含一个样本表,但其样本计数必须为零。电影标题框(“mvhd”)和曲目标题框(“tkhd”)的持续时间必须为零。电影扩展框(“mvex”)必须位于最后一个曲目框之后。请注意,通用媒体应用程序格式(CMAF)标头[CMAF]满足所有这些要求。

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.

在fMP4段中,每个轨迹片段框必须包含一个轨迹片段解码时间框(“tfdt”)。fMP4段必须使用电影片段相对寻址。fMP4段不得使用外部数据引用。请注意,CMAF段满足这些要求。

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

播放列表中包含EXT-X-I-FRAMES-ONLY标签(第4.3.3.6节)的fMP4段可省略帧内编码帧(I-frame)样本数据之后的媒体数据框部分。

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

媒体播放列表中的每个fMP4段都必须应用EXT-X-MAP标记。

3.4. Packed Audio
3.4. 压缩音频

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 Advanced Audio Coding (AAC) with Audio Data Transport Stream (ADTS) framing [ISO_13818_7], MP3 [ISO_13818_3], AC-3 [AC_3], and Enhanced AC-3 [AC_3].

压缩音频段包含编码的音频样本和ID3标记,它们简单地打包在一起,具有最小的帧,并且没有每个样本的时间戳。支持的压缩音频格式是具有音频数据传输流(ADTS)帧[ISO_13818_7]、MP3[ISO_13818_3]、AC-3[AC_3]和增强AC-3[AC_3]的高级音频编码(AAC)。

A Packed Audio Segment has no Media Initialization Section.

压缩音频段没有媒体初始化部分。

Each Packed Audio Segment MUST signal the timestamp of its first sample with an ID3 Private frame (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专用帧(PRIV)标记[ID3]发送其第一个样本的时间戳信号。ID3 PRIV所有者标识符必须是“com.apple.streaming.transportStreamTimestamp”。ID3有效负载必须是33位MPEG-2程序基本流时间戳,表示为大端八位字节数,其中上31位设置为零。客户端不应播放没有此ID3标记的压缩音频段。

3.5. WebVTT
3.5. WebVTT

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

WebVTT段是WebVTT[WebVTT]文件的一部分。WebVTT片段带有字幕。

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

WebVTT段的媒体初始化部分是WebVTT头。

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.

每个WebVTT片段必须包含在片段持续时间指示的时间段内显示的所有字幕提示。每个提示的开始时间偏移和结束时间偏移必须指示该提示的总显示时间,即使提示时间范围的一部分在段时段之外。WebVTT段可能不包含任何线索;这表示在此期间不显示字幕。

Each WebVTT Segment MUST either start with a WebVTT header or have an EXT-X-MAP tag applied to it.

每个WebVTT段必须以WebVTT标题开头,或应用EXT-X-MAP标记。

In order to synchronize timestamps between audio/video and subtitles, an 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:

为了同步音频/视频和字幕之间的时间戳,应在每个WebVTT头中添加一个X-TIMESTAMP-MAP元数据头。此标头将WebVTT提示时间戳映射到变体流的其他格式副本中的MPEG-2(PES)时间戳。其格式为:

   X-TIMESTAMP-MAP=LOCAL:<cue time>,MPEGTS:<MPEG-2 time>
   e.g., X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
        
   X-TIMESTAMP-MAP=LOCAL:<cue time>,MPEGTS:<MPEG-2 time>
   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段没有X-TIMESTAMP-MAP,则客户端必须假定WebVTT提示时间0映射为MPEG-2时间戳0。

When synchronizing WebVTT with PES timestamps, clients SHOULD account for cases where the 33-bit PES timestamps have wrapped and the WebVTT cue times have not.

将WebVTT与PES时间戳同步时,客户端应考虑33位PES时间戳已包装而WebVTT提示时间未包装的情况。

4. Playlists
4. 播放列表

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.

本节介绍HTTP直播使用的播放列表文件。在本节中,“必须”和“不得”指定合法播放列表文件的语法和结构规则。违反这些规则的播放列表无效;客户端必须无法解析它们。见第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.3.1.1) and EXTINF (Section 4.3.2.1).

播放列表文件的格式源自M3U[M3U]播放列表文件格式,并继承了早期文件格式的两个标记:EXTM3U(第4.3.1.1节)和extEF(第4.3.2.1节)。

In the specification of tag syntax, a string enclosed by <> identifies a tag parameter; its specific format is described in its tag definition. If a parameter is further surrounded by [], it is optional; otherwise, it is required.

在标记语法规范中,用<>括起来的字符串标识标记参数;其特定格式在其标记定义中描述。如果参数被[]进一步包围,则该参数是可选的;否则,它是必需的。

Each Playlist file MUST be identifiable either by 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.

每个播放列表文件必须通过其URI的路径组件或HTTP内容类型进行标识。在第一种情况下,路径必须以.m3u8或.m3u结尾。在第二种情况下,HTTP内容类型必须是“application/vnd.apple.mpegurl”或“audio/mpegurl”。客户端应拒绝解析未识别的播放列表。

4.1. Definition of a Playlist
4.1. 播放列表的定义

Playlist files MUST be encoded in UTF-8 [RFC3629]. They MUST NOT contain any Byte Order Mark (BOM); clients SHOULD fail to parse Playlists that 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" [UNICODE]. Note that US-ASCII [US_ASCII] conforms to these rules.

播放列表文件必须以UTF-8[RFC3629]编码。它们不得包含任何字节顺序标记(BOM);客户端应该无法解析包含BOM的播放列表,或者不能解析为UTF-8。播放列表文件不得包含UTF-8控制字符(U+0000至U+001F和U+007F至U+009F),CR(U+000D)和LF(U+000A)除外。所有字符序列必须根据Unicode规范化格式“NFC”[Unicode]进行规范化。请注意,US-ASCII[US_ASCII]符合这些规则。

Lines in a Playlist file are terminated by either a single line feed character or a carriage return character followed by a line feed character. Each line is a URI, is blank, or starts with the character '#'. Blank lines are ignored. Whitespace MUST NOT be present, except for elements in which it is explicitly specified.

播放列表文件中的行以单行换行符或回车符后跟换行符终止。每行都是URI、为空或以字符“#”开头。空白行被忽略。空格不能存在,除非元素中明确指定了空格。

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.

以字符“#”开头的行是注释或标记。标记以#EXT开头。它们区分大小写。以“#”开头的所有其他行都是注释,应该忽略。

A URI line identifies a Media Segment or a Playlist file (see Section 4.3.4.2). Each Media Segment is specified by a URI and the tags that apply to it.

URI行标识媒体段或播放列表文件(参见第4.3.4.2节)。每个媒体段由URI和应用于它的标记指定。

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.

如果播放列表中的所有URI行都标识媒体段,则播放列表就是媒体播放列表。如果播放列表中的所有URI行都标识媒体播放列表,则播放列表就是主播放列表。播放列表必须是媒体播放列表或主播放列表;所有其他播放列表都无效。

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.

播放列表中的URI,无论是URI行还是标记的一部分,都可能是相对的。任何相对URI都被视为相对于包含它的播放列表的URI。

The duration of a Media Playlist 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.3.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.

媒体段的段比特率是媒体段的大小除以其熄灭持续时间(第4.3.2.1节)。注意,这包括容器开销,但不包括传递系统施加的开销,如HTTP、TCP或IP头。

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.

媒体播放列表的峰值段比特率是总持续时间在目标持续时间的0.5到1.5倍之间的任何连续段集的最大比特率。通过将段大小之和除以段持续时间之和来计算集合的比特率。

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.

媒体播放列表的平均段比特率是媒体播放列表中每个媒体段的大小(以位为单位)除以媒体播放列表持续时间的总和。注意,这包括容器开销,但不包括HTTP或交付系统施加的其他开销。

4.2. Attribute Lists
4.2. 属性列表

Certain tags have values that 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

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.

AttributeName是一个不带引号的字符串,包含集合[A..Z]、[0..9]和“-”中的字符。因此,AttributeName只包含大写字母,而不包含小写字母。AttributeName和“=”字符之间以及“=”字符和AttributeValue之间不得有任何空格。

An AttributeValue is one of the following:

AttributeValue是以下内容之一:

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 十进制整数:集合[0..9]中的一个不带引号的字符串,表示0到2^64-1(18446744073709551615)范围内的以10为基数的算术整数。十进制整数的长度可以是1到20个字符。

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 AttributeNames.

o 十六进制序列:集合[0..9]和[A..F]中以0x或0x为前缀的不带引号的字符串。十六进制序列的最大长度取决于其AttributeName。

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

o 十进制浮点:集合[0..9]和“.”中的一个不带引号的字符串,表示十进制位置表示法中的非负浮点数。

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

o 有符号十进制浮点:集合[0..9]、“-”和“.”中的一个不带引号的字符串,用十进制位置表示法表示有符号浮点数。

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 带引号的字符串:一对双引号(0x22)内的字符串。以下字符不得出现在带引号的字符串中:换行符(0xA)、回车符(0xD)或双引号(0x22)。应构造带引号的字符串AttributeValue,以便按字节比较足以测试两个带引号的字符串AttributeValue是否相等。注意,这意味着区分大小写的比较。

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

o 枚举字符串:由AttributeName显式定义的集合中的无引号字符串。枚举字符串永远不会包含双引号(“)、逗号(、)或空格。

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).

o 十进制分辨率:由“x”字符分隔的两个十进制整数。第一个整数是水平像素尺寸(宽度);第二个是垂直像素尺寸(高度)。

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

给定AttributeName的AttributeValue类型由属性定义指定。

A given AttributeName MUST NOT appear more than once in a given attribute-list. Clients SHOULD refuse to parse such Playlists.

给定的AttributeName在给定的属性列表中不能出现多次。客户端应拒绝解析此类播放列表。

4.3. Playlist Tags
4.3. 播放列表标签

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

播放列表标签指定播放列表的全局参数,或指定显示在其后的媒体段或媒体播放列表的信息。

4.3.1. Basic Tags
4.3.1. 基本标记

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

媒体播放列表和主播放列表中都允许使用这些标签。

4.3.1.1. EXTM3U
4.3.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标记表示该文件是扩展的M3U[M3U]播放列表文件。它必须是每个媒体播放列表和每个主播放列表的第一行。其格式为:

#EXTM3U

#EXTM3U

4.3.1.2. EXT-X-VERSION
4.3.1.2. EXT-X-VERSION

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

EXT-X-VERSION标签表示播放列表文件、相关媒体及其服务器的兼容版本。

The EXT-X-VERSION tag applies to the entire Playlist file. Its format is:

EXT-X-VERSION标签适用于整个播放列表文件。其格式为:

   #EXT-X-VERSION:<n>
        
   #EXT-X-VERSION:<n>
        

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

其中n是一个整数,表示协议兼容性版本号。

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.

它必须出现在包含与协议版本1不兼容的标记或属性的所有播放列表中,以支持与旧客户端的互操作性。第7节指定任何给定播放列表文件的兼容版本号的最小值。

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 fail to parse it.

播放列表文件不能包含多个EXT-X-VERSION标签。如果客户端遇到具有多个EXT-X-VERSION标记的播放列表,则必须无法解析该列表。

4.3.2. Media Segment Tags
4.3.2. 媒体段标签

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.

每个媒体段由一系列媒体段标记和一个URI指定。某些媒体段标记仅适用于下一个段;其他应用于所有后续段,直到同一标记的另一个实例。

A Media Segment tag MUST NOT appear in a Master Playlist. Clients MUST fail to parse Playlists that contain both Media Segment tags and Master Playlist tags (Section 4.3.4).

媒体段标签不得出现在主播放列表中。客户端必须无法解析包含媒体段标记和主播放列表标记的播放列表(第4.3.4节)。

4.3.2.1. EXTINF
4.3.2.1. 灭绝

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:

EXECEF标记指定媒体段的持续时间。它仅适用于下一个媒体段。每个媒体段都需要此标签。其格式为:

   #EXTINF:<duration>,[<title>]
        
   #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. Durations SHOULD be decimal-floating-point, with enough accuracy to avoid perceptible error when segment durations are accumulated. However, 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 UTF-8 text.

其中,duration是一个十进制浮点数或十进制整数(如第4.2节所述),以秒为单位指定媒体段的持续时间。持续时间应为十进制浮点,具有足够的精度,以避免累积段持续时间时出现明显错误。但是,如果兼容版本号小于3,则持续时间必须为整数。报告为整数的持续时间应四舍五入到最接近的整数。逗号后面的行的剩余部分是媒体段的可选可读信息标题,表示为UTF-8文本。

4.3.2.2. EXT-X-BYTERANGE
4.3.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标记表示媒体段是由其URI标识的资源的子范围。它仅适用于播放列表中紧随其后的下一个URI行。其格式为:

   #EXT-X-BYTERANGE:<n>[@<o>]
        
   #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.

其中n是十进制整数,表示子范围的长度(以字节为单位)。如果存在,o是一个十进制整数,指示子范围的开始,作为从资源开始的字节偏移量。如果不存在o,则子范围从上一媒体段子范围后的下一个字节开始。

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 client MUST fail to parse the Playlist.

如果不存在o,则播放列表文件中必须出现上一个媒体段,并且该媒体段必须是同一媒体资源的子范围,或者该媒体段未定义,客户端必须无法解析播放列表。

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

没有EXT-X-BYTERANGE标记的媒体段由其URI标识的整个资源组成。

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

使用EXT-X-BYTERANGE标记需要兼容版本号为4或更高。

4.3.2.3. EXT-X-DISCONTINUITY
4.3.2.3. EXT-X不连续性

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

EXT-X-不连续标记表示它后面的媒体段和它前面的媒体段之间的不连续。

Its format is:

其格式为:

#EXT-X-DISCONTINUITY

#EXT-X不连续性

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

如果以下任何特征发生变化,则必须提供EXT-X-不连续性标签:

o file format

o 文件格式

o number, type, and identifiers of tracks

o 磁道的编号、类型和标识符

o timestamp sequence

o 时间戳序列

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

如果以下任何特征发生变化,则应显示EXT-X-不连续性标签:

o encoding parameters

o 编码参数

o encoding sequence

o 编码序列

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

有关EXT-X-不连续性标签的更多信息,请参见第3节、第6.2.1节和第6.3.3节。

4.3.2.4. EXT-X-KEY
4.3.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 and to every Media Initialization Section declared by an EXT-X-MAP tag 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标记指定如何解密它们。它适用于每个媒体段以及由EXT-X-MAP标记声明的每个媒体初始化部分,该标记出现在具有相同KEYFORMAT属性的播放列表文件中的下一个EXT-X-KEY标记(或播放列表文件的结尾)之间。如果最终生成相同的解密密钥,则具有不同KEYFORMAT属性的两个或多个EXT-X-KEY标记可能应用于同一媒体段。格式为:

   #EXT-X-KEY:<attribute-list>
        
   #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.

定义的方法有:无、AES-128和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) [AES_128] with a 128-bit key, Cipher Block Chaining (CBC), and Public-Key Cryptography Standards #7 (PKCS7) padding [RFC5652]. CBC is restarted on each segment boundary, using either the Initialization Vector (IV) attribute value or the Media Sequence Number as the IV; see Section 5.2.

AES-128的一种加密方法,表示使用高级加密标准(AES)[AES_128]对媒体段进行完全加密,使用128位密钥、密码块链接(CBC)和公钥加密标准#7(PKCS7)填充[RFC5652]。在每个段边界上重新启动CBC,使用初始化向量(IV)属性值或媒体序列号作为IV;见第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

SAMPLE-AES的加密方法意味着媒体段包含使用高级加密标准[AES_128]加密的媒体样本,例如音频或视频。如何将这些媒体流加密并封装在段中取决于

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 HTTP Live Streaming (HLS) Sample Encryption specification [SampleEnc]. The IV attribute MAY be present; see Section 5.2.

媒体编码和段的媒体格式。fMP4媒体段使用公共加密的“cbcs”方案[公共加密]进行加密。HTTP实时流(HLS)样本加密规范[SampleEnc]中描述了对包含H.264[H_264]、AAC[ISO_14496]、AC-3[AC_3]和增强AC-3[AC_3]媒体流的其他媒体段格式的加密。IV属性可能存在;见第5.2节。

URI

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.

该值是一个带引号的字符串,其中包含指定如何获取密钥的URI。除非方法为“无”,否则此属性是必需的。

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.

该值是一个十六进制序列,指定要与键一起使用的128位无符号整数初始化向量。使用IV属性需要兼容版本号为2或更高。使用IV属性的时间见第5.2节。

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.

该值是一个带引号的字符串,指定如何在URI标识的资源中表示密钥;详见第5节。此属性是可选的;它的缺失表明了“身份”的隐含价值。使用KEYFORMAT属性需要兼容版本号为5或更高。

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.

该值是一个带引号的字符串,包含一个或多个由“/”字符分隔的正整数(例如,“1”、“1/2”或“1/2/5”)。如果定义了特定KEYFORMAT的多个版本,则此属性可用于指示此实例符合的版本。此属性是可选的;如果不存在,则其值被视为“1”。使用KEYFORMATVERSIONS属性需要兼容版本号为5或更高。

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

如果媒体播放列表文件不包含EXT-X-KEY标记,则媒体段不加密。

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

有关密钥文件的格式,请参见第5节;有关媒体段加密的更多信息,请参见第5.2、6.2.3和6.3.6节。

4.3.2.5. EXT-X-MAP
4.3.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.

EXT-X-MAP标记指定如何获取解析适用媒体段所需的媒体初始化部分(第3部分)。它适用于播放列表中其后出现的每个媒体段,直到下一个EXT-X-MAP标记或播放列表结束。

Its format is:

其格式为:

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

The following attributes are defined:

定义了以下属性:

URI

URI

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

该值是一个带引号的字符串,其中包含一个URI,该URI标识包含媒体初始化部分的资源。此属性是必需的。

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.3.2.2. This attribute is OPTIONAL; if it is not present, the byte range is the entire resource indicated by the URI.

该值是一个带引号的字符串,指定URI属性标识的资源的字节范围。此范围应仅包含介质初始化部分。字节范围的格式见第4.3.2.2节。此属性是可选的;如果不存在,则字节范围是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.

当播放列表中的第一个媒体段(即,I-frame)(或EXT-X不连续标记后的第一个段)没有立即跟随其资源开头的媒体初始化部分时,应为带有EXT-X-I-FRAMES-ONLY标记的播放列表中的媒体段提供EXT-X-MAP标记。

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-I-FRAMES-ONLY标记的媒体播放列表中使用EXT-X-MAP标记需要兼容版本号为5或更高。在不包含EXT-X-I-FRAMES-ONLY标记的媒体播放列表中使用EXT-X-MAP标记需要兼容版本号为6或更高。

If the Media Initialization Section declared by an EXT-X-MAP tag is encrypted with a METHOD of AES-128, the IV attribute of the EXT-X-KEY tag that applies to the EXT-X-MAP is REQUIRED.

如果使用AES-128方法对EXT-X-MAP标记声明的媒体初始化部分进行加密,则需要应用于EXT-X-MAP的EXT-X-KEY标记的IV属性。

4.3.2.6. EXT-X-PROGRAM-DATE-TIME
4.3.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. Its format is:

EXT-X-PROGRAM-DATE-TIME标记将媒体段的第一个样本与绝对日期和/或时间关联。它仅适用于下一个媒体段。其格式为:

   #EXT-X-PROGRAM-DATE-TIME:<date-time-msec>
        
   #EXT-X-PROGRAM-DATE-TIME:<date-time-msec>
        

where date-time-msec is an ISO/IEC 8601:2004 [ISO_8601] date/time representation, such as YYYY-MM-DDThh:mm:ss.SSSZ. It SHOULD indicate a time zone and fractional parts of seconds, to millisecond accuracy.

其中,日期-时间毫秒是ISO/IEC 8601:2004[ISO_8601]日期/时间表示形式,例如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:2010-02-19T14:54:23.031+08:00
        

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

有关EXT-X-PROGRAM-DATE-TIME标签的更多信息,请参见第6.2.1节和第6.3.3节。

4.3.2.7. EXT-X-DATERANGE
4.3.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标记将日期范围(即,由开始日期和结束日期定义的时间范围)与一组属性/值对相关联。其格式为:

   #EXT-X-DATERANGE:<attribute-list>
        
   #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 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.

一个带引号的字符串,包含日期范围开始的ISO-8601日期。此属性是必需的。

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.

一个带引号的字符串,包含日期范围结束时的ISO-8601日期。它必须等于或晚于“开始日期”属性的值。此属性是可选的。

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.

以十进制浮点数秒表示的日期范围的持续时间。它不能是消极的。时间上的单个瞬间(例如,穿过终点线)的持续时间应为0。此属性是可选的。

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>

X-<客户端属性>

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.

“X-”前缀定义了为客户机定义的属性保留的名称空间。客户端属性必须是合法的AttributeName。客户端在定义自己的属性名称时应使用反向DNS语法以避免冲突。属性值必须是带引号的字符串、十六进制序列或十进制浮点。客户机定义属性的一个示例是X-COM-example-AD-ID=“XYZ123”。这些属性是可选的。

SCTE35-CMD, SCTE35-OUT, SCTE35-IN

SCTE35-CMD、SCTE35-OUT、SCTE35-IN

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

用于携带SCTE-35数据;更多信息见第4.3.2.7.1节。这些属性是可选的。

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.

具有END-ON-NEXT=YES属性的EXT-X-DATERANGE标记必须具有CLASS属性。具有相同CLASS属性的其他EXT-X-DATERANGE标记不得指定重叠的日期范围。

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

具有END-ON-NEXT=YES属性的EXT-X-DATERANGE标记不得包含持续时间或结束日期属性。

A Date Range with neither a DURATION, an END-DATE, nor 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.

如果播放列表包含EXT-X-DATERANGE标记,则它还必须至少包含一个EXT-X-PROGRAM-DATE-TIME标记。

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.

如果播放列表包含两个具有相同ID属性值的EXT-X-DATERANGE标记,则两个标记中出现的任何AttributeName都必须具有相同的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标记。

4.3.2.7.1. Mapping SCTE-35 into EXT-X-DATERANGE
4.3.2.7.1. 将SCTE-35映射到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.

根据SCTE-35规范[SCTE35]在源媒体中携带的拼接信息可以使用EXT-X-DATERANGE标签在媒体播放列表中表示。

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 an SCTE35-CMD attribute whose value is the big-endian binary representation of the splice_info_section(), expressed as a hexadecimal-sequence.

每个包含splice_null()、splice_schedule()、bandwidth_reservation()或private_cmd()的SCTE-35 splice_info_section()应由一个EXT-X-DaterRange标记表示,该标记带有SCTE35-cmd属性,其值为splice_info_section()的大端二进制表示形式,以十六进制序列表示。

An 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 an 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 an SCTE35-IN attribute, with the same formatting as SCTE35-CMD.

由一对splice_insert()命令发出信号的SCTE-35 splice out/in pair应由一个或多个带有相同ID属性的EXT-X-DATERANGE标记表示,该属性必须是该splice out/in pair的唯一属性。“out”接头信息部分()(out\U of\U网络指示器设置为1)必须放置在SCTE35-out属性中,格式与SCTE35-CMD相同。“in”接头信息部分()(out_of_network_指示器设置为0)必须放置在SCTE35-in属性中,格式与SCTE35-CMD相同。

An 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

由一对time_signal()命令发出信号的SCTE-35接头输出/输入对(每个命令都带有一个分段描述符())应由一个或多个带有相同ID属性的EXT-X-DATERANGE标记表示,该标记必须是该接头输出/输入对的唯一标记。这个

"out" splice_info_section() MUST be placed in an SCTE35-OUT attribute; the "in" splice_info_section() MUST be placed in an SCTE35-IN attribute.

“out”拼接_info_section()必须置于SCTE35-out属性中;“in”拼接信息部分()必须置于SCTE35-in属性中。

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 an SCTE35-OUT, SCTE35-IN, or SCTE35-CMD attribute whose value is the entire splice_info_section().

segmentation_descriptor()中的segmentation_type_id所指示的不同类型的分段应该由单独的EXT-X-DATERANGE标记表示,即使两个或多个segmentation_descriptor()到达同一拼接_info_节()。在这种情况下,每个EXT-X-DATERANGE标记都将具有一个SCTE35-OUT、SCTE35-In或SCTE35-CMD属性,其值为整个拼接信息节()。

An 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 an SCTE35-CMD attribute.

如果SCTE-35 time_signal()命令不表示拼接输出或插入点,则应使用带有SCTE35-CMD属性的EXT-X-DATERANGE标记来表示。

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

包含SCTE35-OUT属性的EXT-X-DATERANGE标记的开始日期必须是与该接头的程序时间相对应的日期和时间。

The START-DATE of an EXT-X-DATERANGE tag containing an SCTE35-CMD MUST be the date and time specified by the splice_time() in the command or the program time at which the command appeared in the source stream if the command does not specify a splice_time().

包含SCTE35-CMD的EXT-X-DATERANGE标记的开始日期必须是命令中的splice_time()指定的日期和时间,如果命令未指定splice_time(),则必须是命令出现在源流中的程序时间。

An EXT-X-DATERANGE tag containing an SCTE35-OUT attribute MAY contain a PLANNED-DURATION attribute. Its value MUST be the planned duration of the splice.

包含SCTE35-OUT属性的EXT-X-DATERANGE标记可能包含PLANNED-DURATION属性。其值必须是拼接的计划持续时间。

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

包含SCTE35-IN属性的EXT-X-DATERANGE标记的持续时间必须是相应out点和IN点之间的实际(非计划)节目持续时间。

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

包含SCTE35-IN属性的EXT-X-DATERANGE标记的结束日期必须是该点的实际(非计划)计划日期和时间。

If the actual end date and time is not known when an 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.

如果在播放列表中添加SCTE35-OUT属性时不知道实际结束日期和时间,则持续时间属性和结束时间属性不得存在;拼接的实际结束日期应在确定后由另一个EXT-X-DATERANGE标记发出信号。

A canceled splice SHOULD NOT appear in the Playlist as an EXT-X-DATERANGE tag.

取消的拼接不应作为EXT-X-DATERANGE标记出现在播放列表中。

An EXT-X-DATERANGE tag announcing a splice SHOULD be added to a Playlist at the same time as the last pre-splice Media Segment, or earlier if possible.

宣布拼接的EXT-X-DATERANGE标签应与最后一个预拼接媒体段同时添加到播放列表中,如果可能,可更早添加到播放列表中。

The ID attribute of an EXT-X-DATERANGE tag MAY contain a splice_event_id and/or a segmentation_event_id, but it MUST be unique in the Playlist. If there is a possibility that an SCTE-35 id will be reused, the ID attribute value MUST include disambiguation, such as a date or sequence number.

EXT-X-DATERANGE标记的ID属性可能包含拼接事件ID和/或分段事件ID,但在播放列表中必须是唯一的。如果有可能重用SCTE-35 id,则id属性值必须包括消除歧义,例如日期或序列号。

4.3.3. Media Playlist Tags
4.3.3. 媒体播放列表标签

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.

媒体播放列表标签不得出现在主播放列表中。

4.3.3.1. EXT-X-TARGETDURATION
4.3.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标签指定最大媒体段持续时间。播放列表文件中每个媒体段的结束持续时间(四舍五入为最接近的整数)必须小于或等于目标持续时间;较长的片段可能会触发播放暂停或其他错误。它适用于整个播放列表文件。其格式为:

   #EXT-X-TARGETDURATION:<s>
        
   #EXT-X-TARGETDURATION:<s>
        

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

其中s是十进制整数,表示目标持续时间(秒)。需要EXT-X-TARGETDURATION标签。

4.3.3.2. EXT-X-MEDIA-SEQUENCE
4.3.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标签表示播放列表文件中出现的第一个媒体段的媒体序列号。其格式为:

   #EXT-X-MEDIA-SEQUENCE:<number>
        
   #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).

如果媒体播放列表文件不包含EXT-X-Media-SEQUENCE标签,则媒体播放列表中第一个媒体段的媒体序列号应视为0。客户不得假设不同媒体播放列表中具有相同媒体序列号的片段包含匹配内容(参见第6.3.2节)。

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

媒体段的URI不需要包含其媒体序列号。

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

有关设置EXT-X-MEDIA-SEQUENCE标签的更多信息,请参见第6.2.1节和第6.3.5节。

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

EXT-X-MEDIA-SEQUENCE标签必须出现在播放列表中第一个媒体段之前。

4.3.3.3. EXT-X-DISCONTINUITY-SEQUENCE
4.3.3.3. EXT-X-不连续序列

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.

EXT-X-interruption-SEQUENCE标记允许在相同变体流或媒体播放列表中具有EXT-X-interruption标记的不同变体流的不同格式副本之间进行同步。

Its format is:

其格式为:

   #EXT-X-DISCONTINUITY-SEQUENCE:<number>
        
   #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.

如果媒体播放列表不包含EXT-X-不连续序列标签,则播放列表中第一个媒体段的不连续序列号应视为0。

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

EXT-X-intercontinuction-SEQUENCE标签必须出现在播放列表中的第一个媒体段之前。

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

EXT-X-不连续性序列标记必须出现在任何EXT-X-不连续性标记之前。

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

有关设置EXT-X-不连续序列标签值的更多信息,请参见第6.2.1节和第6.2.2节。

4.3.3.4. EXT-X-ENDLIST
4.3.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

#EXT-X-ENDLIST

4.3.3.5. EXT-X-PLAYLIST-TYPE
4.3.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标签提供有关媒体播放列表文件的可变信息。它适用于整个媒体播放列表文件。它是可选的。其格式为:

   #EXT-X-PLAYLIST-TYPE:<type-enum>
        
   #EXT-X-PLAYLIST-TYPE:<type-enum>
        

where type-enum is either EVENT or VOD.

其中,类型enum是事件或VOD。

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

第6.2.1节定义了EXT-X-PLAYLIST-TYPE标签的含义。

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 Video On Demand (VOD), the Media Playlist cannot change.

如果EXT-X-PLAYLIST-TYPE值为EVENT,则只能将媒体片段添加到媒体播放列表的末尾。如果EXT-X-PLAYLIST-TYPE值为视频点播(VOD),则无法更改媒体播放列表。

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标签,则可以根据第6.2.1节中的规则更新播放列表,而无需附加限制。例如,可更新实时播放列表(第6.2.2节),以按媒体段出现的顺序删除媒体段。

4.3.3.6. EXT-X-I-FRAMES-ONLY
4.3.3.6. 仅限EXT-X-I-FRAMES

The EXT-X-I-FRAMES-ONLY tag indicates that each Media Segment in the Playlist describes a single I-frame. I-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.

EXT-X-I-FRAMES-ONLY标签表示播放列表中的每个媒体段都描述一个I-FRAMES。I帧是编码的视频帧,其编码不依赖于任何其他帧。I-frame播放列表可用于特技表演,如快进、快退和擦洗。

The EXT-X-I-FRAMES-ONLY tag applies to the entire Playlist. Its format is:

EXT-X-I-FRAMES-ONLY标签适用于整个播放列表。其格式为:

#EXT-X-I-FRAMES-ONLY

#仅限EXT-X-I-FRAMES

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.

在具有EXT-X-I-FRAMES-ONLY标记的播放列表中,媒体段持续时间(EXEF标记值)是媒体段中的I-frame的显示时间与播放列表中的下一个I-frame的显示时间之间的时间,或者如果是播放列表中的最后一个I-frame,则是显示结束的时间。

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.3.2.2) MUST NOT include its Media Initialization Section;

包含I-frame段的媒体资源必须以媒体初始化部分(第3部分)开头,或附有指示媒体初始化部分的EXT-X-MAP标记,以便客户端可以按任何顺序加载和解码I-frame段。应用EXT-X-BYTERANGE标记的I帧段(第4.3.2.2节)的字节范围不得包括其媒体初始化部分;

clients can assume that the Media Initialization Section is defined by the 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.

客户端可以假定媒体初始化部分由EXT-X-MAP标记定义,或者位于从资源开始到该资源中第一个I帧段偏移量的位置。

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

使用EXT-X-I-FRAMES-仅要求兼容版本号为4或更高。

4.3.4. Master Playlist Tags
4.3.4. 主播放列表标签

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 fail to parse any Playlist that contains both a Master Playlist tag and either a Media Playlist tag or a Media Segment tag.

媒体播放列表中不得出现主播放列表标签;客户端必须无法解析包含主播放列表标签和媒体播放列表标签或媒体段标签的任何播放列表。

4.3.4.1. EXT-X-MEDIA
4.3.4.1. EXT-X-MEDIA

The EXT-X-MEDIA tag is used to relate Media Playlists that contain alternative Renditions (Section 4.3.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.

EXT-X-MEDIA标签用于关联包含相同内容的备选格式副本(第4.3.4.2.1节)的媒体播放列表。例如,三个EXT-X-MEDIA标签可用于标识仅音频媒体播放列表,其中包含同一演示文稿的英语、法语和西班牙语格式副本。或者,两个EXT-X-MEDIA标签可用于识别显示两个不同摄像机角度的纯视频媒体播放列表。

Its format is:

其格式为:

   #EXT-X-MEDIA:<attribute-list>
        
   #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.

该值是一个枚举字符串;有效字符串包括音频、视频、字幕和闭路字幕。此属性是必需的。

Typically, closed-caption [CEA608] media is carried in the video stream. Therefore, an EXT-X-MEDIA tag with TYPE of CLOSED-CAPTIONS does not specify a Rendition; the closed-caption media is present in the Media Segments of every video Rendition.

通常,在视频流中携带闭路字幕[CEA608]媒体。因此,带有闭路字幕类型的EXT-X-MEDIA标记不会指定格式副本;每个视频格式副本的媒体段中都有闭路字幕媒体。

URI

URI

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

该值是一个带引号的字符串,其中包含标识媒体播放列表文件的URI。此属性是可选的;见第4.3.4.2.1节。如果类型为闭路字幕,则URI属性不得存在。

GROUP-ID

组ID

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

该值是一个带引号的字符串,用于指定格式副本所属的组。见第4.3.4.1.1节。此属性是必需的。

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.

该值是一个带引号的字符串,其中包含一个用于标识语言的标准标记[RFC5646],用于标识格式副本中使用的主要语言。此属性是可选的。

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 versus spoken or a fallback dialect). This attribute is OPTIONAL.

该值是一个带引号的字符串,包含标识与格式副本关联的语言的语言标记[RFC5646]。关联语言通常用于不同于语言属性指定的语言的角色(例如,书面语与口语或备用方言)。此属性是可选的。

The LANGUAGE and ASSOC-LANGUAGE attributes can be used, for example, to link Norwegian Renditions that use different spoken and written languages.

例如,可以使用LANGUAGE和ASSOC-LANGUAGE属性链接使用不同口语和书面语言的挪威格式副本。

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.

该值是一个带引号的字符串,包含格式副本的可读描述。如果存在LANGUAGE属性,则此描述应使用该语言。此属性是必需的。

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.

该值是一个枚举字符串;有效字符串为“是”和“否”。如果值为“是”,则客户端应在没有来自用户指示不同选择的信息的情况下播放此格式副本的内容。此属性是可选的。它的缺失表示一个隐含的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.

该值是一个枚举字符串;有效字符串为是和否。此属性是可选的。它的缺失表示隐式值NO。除非类型为SUBTITLES,否则强制属性不得存在。

A value of YES indicates that the Rendition contains content that 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 that is intended to be played in response to explicit user request.

值为“否”表示格式副本包含要响应显式用户请求播放的内容。

INSTREAM-ID

流内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").

该值是一个带引号的字符串,用于指定媒体播放列表中片段内的格式副本。如果类型属性为闭路字幕,则需要该属性,在这种情况下,该属性必须具有以下值之一:“CC1”、“CC2”、“CC3”、“CC4”或“SERVICEn”,其中n必须是介于1和63之间的整数(例如,“SERVICE3”或“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.

值“CC1”、“CC2”、“CC3”和“CC4”标识第21行数据服务信道[CEA608]。“服务”值标识数字电视闭路字幕[CEA708]服务块编号。

For all other TYPE values, the INSTREAM-ID MUST NOT be specified.

对于所有其他类型值,不得指定流内ID。

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.

该值是一个带引号的字符串,包含一个或多个由逗号(,)字符分隔的统一类型标识符[UTI]。此属性是可选的。每个UTI表示格式副本的单个特征。

A SUBTITLES Rendition MAY include the following characteristics: "public.accessibility.transcribes-spoken-dialog", "public.accessibility.describes-music-and-sound", and "public.easy-to-read" (which indicates that the subtitles have been edited for ease of reading).

字幕格式副本可能包括以下特征:“public.accessibility.转录口语对话”、“public.accessibility.描述音乐和声音”和“public.easy read”(表示字幕已编辑以便于阅读)。

An AUDIO Rendition MAY include the following characteristic: "public.accessibility.describes-video".

音频格式副本可能包括以下特征:“public.accessibility.descriptions video”。

The CHARACTERISTICS attribute MAY include private UTIs.

特征属性可以包括私有UTI。

CHANNELS

渠道

The value is a quoted-string that specifies an ordered, backslash-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.

该值是一个带引号的字符串,用于指定参数的有序反斜杠分隔(“/”)列表。如果“类型”属性为“音频”,则第一个参数是以十进制整数表示的音频通道数,表示格式副本中任何媒体段中同时存在的独立音频通道的最大数量。例如,AC-3 5.1格式副本将具有CHANNELS=“6”属性。当前未定义其他通道参数。

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标记都应具有频道属性。如果主播放列表包含两个使用相同编解码器编码但频道数不同的格式副本,则需要“频道”属性;否则,它是可选的。

4.3.4.1.1. Rendition Groups
4.3.4.1.1. 移交逃犯小组

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.

一组具有相同组ID值和相同类型值的一个或多个EXT-X-MEDIA标记定义了一组格式副本。组中的每个成员必须是相同内容的替代格式副本;否则,可能会发生播放错误。

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

播放列表中的所有EXT-X-MEDIA标记必须满足以下约束:

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

o 同一组中的所有EXT-X-MEDIA标记必须具有不同的名称属性。

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

o 一个组不能有多个默认属性为“是”的成员。

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.

o 每个具有AUTOSELECT=YES属性的EXT-X-MEDIA标记应具有LANGUAGE[RFC5646]、ASSOC-LANGUAGE、FORCED和CHARACTERISTICS属性的组合,这些属性不同于其组中其他AUTOSELECT=YES成员的属性。

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.

播放列表可以包含相同类型的多个组,以便提供该媒体类型的多个编码。如果这样做,则相同类型的每个组必须具有相同的成员集,并且每个对应的成员必须具有相同的属性(URI和通道属性除外)。

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 tag (Section 4.3.4.2) or EXT-X-I-FRAME-STREAM-INF tag (Section 4.3.4.3) that 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".

格式副本组中的每个成员可能具有不同的示例格式。例如,英语格式副本可以使用AC-3 5.1编码,而西班牙语格式副本可以使用AAC立体声编码。但是,引用此类组的任何EXT-X-STREAM-INF标记(第4.3.4.2节)或EXT-X-I-FRAME-STREAM-INF标记(第4.3.4.3节)必须具有CODECS属性,该属性列出组中任何格式副本中存在的每个示例格式,否则可能会发生客户端播放失败。在上面的示例中,CODECS属性将包括“ac-3,mp4a.40.2”。

4.3.4.2. EXT-X-STREAM-INF
4.3.4.2. EXT-X-STREAM-INF

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

EXT-X-STREAM-INF标记指定一个变体流,它是一组可组合以播放演示文稿的格式副本。标记的属性提供关于变量流的信息。

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.

EXT-X-STREAM-INF标记后面的URI行指定一个媒体播放列表,其中包含变体流的格式副本。URI行是必需的。不支持多个视频格式副本的客户端应播放此格式副本。

Its format is:

其格式为:

   #EXT-X-STREAM-INF:<attribute-list>
   <URI>
        
   #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.

每个EXT-X-STREAM-INF标记必须包含带宽属性。

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].

该值是一个带引号的字符串,包含以逗号分隔的格式列表,其中每种格式指定一种媒体示例类型,该类型存在于变体流指定的一个或多个格式副本中。有效格式标识符是由“Bucket”媒体类型的“codec”和“Profiles”参数定义的ISO基本媒体文件格式名称空间中的标识符[RFC6381]。

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

例如,包含AAC低复杂度(AAC-LC)音频和H.264主配置文件级别3.0视频的流的编解码器值为“mp4a.40.2,avc1.4d401e”。

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

每个EXT-X-STREAM-INF标记都应该包含一个CODECS属性。

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 three 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.

帧速率属性是可选的,但如果变体流包含视频,则建议使用该属性。如果变体流中的任何视频超过每秒30帧,则应包括帧速率属性。

HDCP-LEVEL

HDCP-1级

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 High-bandwidth Digital Content Protection (HDCP) Type 0 [HDCP] or equivalent. A value of NONE indicates that the content does not require output copy protection.

该值是一个枚举字符串;有效字符串的类型为-0和NONE。这种属性是咨询性的;TYPE-0的值表示变体流可能无法播放,除非输出受到高带宽数字内容保护(HDCP)TYPE 0[HDCP]或等效物的保护。值NONE表示内容不需要输出副本保护。

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

具有不同HDCP级别的加密变体流应使用不同的媒体加密密钥。

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.

HDCP-LEVEL属性是可选的。如果变体流中的任何内容在没有HDCP的情况下无法播放,则应显示该文件。没有输出拷贝保护的客户端不应加载具有HDCP级别属性的变量流,除非其值为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.3.4.2.1.

该值是一个带引号的字符串。它必须与类型属性为AUDIO的主播放列表中其他位置的EXT-X-MEDIA标记的GROUP-ID属性值相匹配。它指示播放演示文稿时应使用的音频格式副本集。见第4.3.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.3.4.2.1.

该值是一个带引号的字符串。它必须与类型属性为视频的主播放列表中其他位置的EXT-X-MEDIA标记的GROUP-ID属性值相匹配。它指示播放演示文稿时应使用的视频格式副本集。见第4.3.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.3.4.2.1.

该值是一个带引号的字符串。它必须与类型属性为SUBTITLES的主播放列表中其他位置的EXT-X-MEDIA标记的GROUP-ID属性值相匹配。它表示播放演示文稿时可以使用的字幕格式副本集。见第4.3.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 it indicates the set of closed-caption Renditions that can be used when playing the presentation. See Section 4.3.4.2.1.

该值可以是带引号的字符串,也可以是值为NONE的枚举字符串。如果该值是带引号的字符串,则该值必须与“类型”属性为“闭路字幕”的播放列表中其他位置的EXT-X-MEDIA标记的GROUP-ID属性值相匹配,并指示播放演示文稿时可以使用的闭路字幕格式副本集。见第4.3.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.

如果该值是枚举字符串值NONE,则所有EXT-X-STREAM-INF标记必须具有该值为NONE的属性,这表示主播放列表中的任何变体流中都没有闭合字幕。在一个变体流中有关闭的字幕,但在另一个变体流中没有,可能会触发播放不一致。

The CLOSED-CAPTIONS attribute is OPTIONAL.

“闭路字幕”属性是可选的。

4.3.4.2.1. Alternative Renditions
4.3.4.2.1. 其他格式副本

When an EXT-X-STREAM-INF tag contains an AUDIO, VIDEO, SUBTITLES, or CLOSED-CAPTIONS attribute, it indicates that alternative Renditions of the content are available for playback of that Variant Stream.

当EXT-X-STREAM-INF标记包含音频、视频、字幕或闭路字幕属性时,它表示内容的其他格式副本可用于播放该变体流。

When defining alternative Renditions, the following constraints MUST be met to prevent client playback errors:

定义替代格式副本时,必须满足以下约束以防止客户端播放错误:

o All playable combinations of Renditions associated with an EXT-X-STREAM-INF tag MUST have an aggregate bandwidth less than or equal to the BANDWIDTH attribute of the EXT-X-STREAM-INF tag.

o 与EXT-X-STREAM-INF标记关联的所有可播放格式副本组合的总带宽必须小于或等于EXT-X-STREAM-INF标记的带宽属性。

o If an EXT-X-STREAM-INF tag contains a RESOLUTION attribute and a VIDEO attribute, then every alternative video Rendition MUST have an optimal display resolution matching the value of the RESOLUTION attribute.

o 如果EXT-X-STREAM-INF标记包含分辨率属性和视频属性,则每个备选视频格式副本必须具有与分辨率属性值匹配的最佳显示分辨率。

o Every alternative Rendition associated with an EXT-X-STREAM-INF tag MUST meet the constraints for a Variant Stream described in Section 6.2.4.

o 与EXT-X-STREAM-INF标记关联的每个备选格式副本必须满足第6.2.4节中描述的变体流的约束条件。

The URI attribute of the EXT-X-MEDIA tag is REQUIRED if the media type is SUBTITLES, but OPTIONAL if the media type is VIDEO or AUDIO. If the media type is VIDEO or AUDIO, a missing URI attribute indicates that the media data for this Rendition is included in the Media Playlist of any EXT-X-STREAM-INF tag referencing this EXT-X-MEDIA tag. If the media TYPE is AUDIO and the URI attribute is missing, clients MUST assume that the audio data for this Rendition is present in every video Rendition specified by the EXT-X-STREAM-INF tag.

如果媒体类型为字幕,则EXT-X-MEDIA标记的URI属性是必需的,但如果媒体类型为视频或音频,则该属性是可选的。如果媒体类型为视频或音频,则缺少URI属性表示此格式副本的媒体数据包含在引用此EXT-X-media标记的任何EXT-X-STREAM-INF标记的媒体播放列表中。如果媒体类型为AUDIO且缺少URI属性,则客户端必须假定此格式副本的音频数据存在于EXT-X-STREAM-INF标记指定的每个视频格式副本中。

The URI attribute of the EXT-X-MEDIA tag MUST NOT be included if the media type is CLOSED-CAPTIONS.

如果媒体类型为闭路字幕,则不能包括EXT-X-MEDIA标记的URI属性。

4.3.4.3. EXT-X-I-FRAME-STREAM-INF
4.3.4.3. EXT-X-I-FRAME-STREAM-INF

The EXT-X-I-FRAME-STREAM-INF tag identifies a Media Playlist file containing the I-frames of a multimedia presentation. It stands alone, in that it does not apply to a particular URI in the Master Playlist. Its format is:

EXT-X-I-FRAME-STREAM-INF标记标识包含多媒体演示文稿I-frames的媒体播放列表文件。它是独立的,因为它不适用于主播放列表中的特定URI。其格式为:

   #EXT-X-I-FRAME-STREAM-INF:<attribute-list>
        
   #EXT-X-I-FRAME-STREAM-INF:<attribute-list>
        

All attributes defined for the EXT-X-STREAM-INF tag (Section 4.3.4.2) are also defined for the EXT-X-I-FRAME-STREAM-INF tag, except for the FRAME-RATE, AUDIO, SUBTITLES, and CLOSED-CAPTIONS attributes. In addition, the following attribute is defined:

为EXT-X-STREAM-INF标记(第4.3.4.2节)定义的所有属性也为EXT-X-I-FRAME-STREAM-INF标记定义,帧速率、音频、字幕和闭路字幕属性除外。此外,还定义了以下属性:

URI

URI

The value is a quoted-string containing a URI that identifies the I-frame Media Playlist file. That Playlist file MUST contain an EXT-X-I-FRAMES-ONLY tag.

该值是一个带引号的字符串,其中包含标识I-frame媒体播放列表文件的URI。该播放列表文件必须包含EXT-X-I-FRAMES-ONLY标记。

Every EXT-X-I-FRAME-STREAM-INF tag MUST include a BANDWIDTH attribute and a URI attribute.

每个EXT-X-I-FRAME-STREAM-INF标记必须包括带宽属性和URI属性。

The provisions in Section 4.3.4.2.1 also apply to EXT-X-I-FRAME-STREAM-INF tags with a VIDEO attribute.

第4.3.4.2.1节中的规定也适用于具有视频属性的EXT-X-I-FRAME-STREAM-INF标签。

A Master Playlist that specifies alternative VIDEO Renditions and I-frame Playlists SHOULD include an alternative I-frame VIDEO Rendition for each regular VIDEO Rendition, with the same NAME and LANGUAGE attributes.

指定备选视频格式副本和I-frame播放列表的主播放列表应包含每个常规视频格式副本的备选I-frame视频格式副本,且具有相同的名称和语言属性。

4.3.4.4. EXT-X-SESSION-DATA
4.3.4.4. EXT-X-SESSION-DATA

The EXT-X-SESSION-DATA tag allows arbitrary session data to be carried in a Master Playlist.

EXT-X-SESSION-DATA标签允许在主播放列表中携带任意会话数据。

Its format is:

其格式为:

   #EXT-X-SESSION-DATA:<attribute-list>
        
   #EXT-X-SESSION-DATA:<attribute-list>
        

The following attributes are defined:

定义了以下属性:

DATA-ID

数据标识

The value of DATA-ID is a quoted-string that identifies a particular data value. The DATA-ID SHOULD conform to a reverse DNS naming convention, such as "com.example.movie.title"; however, there is no central registration authority, so Playlist authors SHOULD take care to choose a value that is unlikely to collide with others. This attribute is REQUIRED.

DATA-ID的值是一个带引号的字符串,用于标识特定的数据值。DATA-ID应符合反向DNS命名约定,如“com.example.movie.title”;然而,并没有中央注册机构,所以播放列表的作者应该注意选择一个不太可能与其他人冲突的值。此属性是必需的。

VALUE

价值

VALUE is a quoted-string. It contains the data identified by DATA-ID. If the LANGUAGE is specified, VALUE SHOULD contain a human-readable string written in the specified language.

值是带引号的字符串。它包含由data-ID标识的数据。如果指定了语言,则该值应包含用指定语言编写的可读字符串。

URI

URI

The value is a quoted-string containing a URI. The resource identified by the URI MUST be formatted as JSON [RFC7159]; otherwise, clients may fail to interpret the resource.

该值是包含URI的带引号的字符串。URI标识的资源必须格式化为JSON[RFC7159];否则,客户端可能无法解释资源。

LANGUAGE

语言

The value is a quoted-string containing a language tag [RFC5646] that identifies the language of the VALUE. This attribute is OPTIONAL.

该值是一个带引号的字符串,包含标识该值语言的语言标记[RFC5646]。此属性是可选的。

Each EXT-X-SESSION-DATA tag MUST contain either a VALUE or URI attribute, but not both.

每个EXT-X-SESSION-DATA标记必须包含VALUE或URI属性,但不能同时包含两者。

A Playlist MAY contain multiple EXT-X-SESSION-DATA tags with the same DATA-ID attribute. A Playlist MUST NOT contain more than one EXT-X-SESSION-DATA tag with the same DATA-ID attribute and the same LANGUAGE attribute.

一个播放列表可能包含多个具有相同数据标识属性的EXT-X-SESSION-DATA标签。播放列表不得包含多个具有相同数据ID属性和相同语言属性的EXT-X-SESSION-DATA标记。

4.3.4.5. EXT-X-SESSION-KEY
4.3.4.5. EXT-X-SESSION-KEY

The EXT-X-SESSION-KEY tag allows encryption keys from Media Playlists to be specified in a Master Playlist. This allows the client to preload these keys without having to read the Media Playlist(s) first.

EXT-X-SESSION-KEY标签允许在主播放列表中指定媒体播放列表中的加密密钥。这允许客户端在不必先读取媒体播放列表的情况下预加载这些密钥。

Its format is:

其格式为:

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

All attributes defined for the EXT-X-KEY tag (Section 4.3.2.4) are also defined for the EXT-X-SESSION-KEY, except that the value of the METHOD attribute MUST NOT be NONE. If an EXT-X-SESSION-KEY is used, the values of the METHOD, KEYFORMAT, and KEYFORMATVERSIONS attributes MUST match any EXT-X-KEY with the same URI value.

为EXT-X-KEY标记(第4.3.2.4节)定义的所有属性也为EXT-X-SESSION-KEY定义,但方法属性的值不得为无。如果使用EXT-X-SESSION-KEY,则METHOD、KEYFORMAT和KEYFORMATVERSIONS属性的值必须与具有相同URI值的任何EXT-X-KEY匹配。

EXT-X-SESSION-KEY tags SHOULD be added if multiple Variant Streams or Renditions use the same encryption keys and formats. An EXT-X-SESSION-KEY tag is not associated with any particular Media Playlist.

如果多个变体流或格式副本使用相同的加密密钥和格式,则应添加EXT-X-SESSION-KEY标记。EXT-X-SESSION-KEY标签与任何特定的媒体播放列表都没有关联。

A Master Playlist MUST NOT contain more than one EXT-X-SESSION-KEY tag with the same METHOD, URI, IV, KEYFORMAT, and KEYFORMATVERSIONS attribute values.

主播放列表不得包含多个具有相同方法、URI、IV、KEYFORMAT和KEYFORMATVERSIONS属性值的EXT-X-SESSION-KEY标记。

The EXT-X-SESSION-KEY tag is optional.

EXT-X-SESSION-KEY标记是可选的。

4.3.5. Media or Master Playlist Tags
4.3.5. 媒体或主播放列表标签

The tags in this section can appear in either Master Playlists or Media Playlists. If one of these tags appears in a Master Playlist, it SHOULD NOT appear in any Media Playlist referenced by that Master Playlist. A tag that appears in both MUST have the same value; otherwise, clients SHOULD ignore the value in the Media Playlist(s).

本节中的标签可以出现在主播放列表或媒体播放列表中。如果其中一个标签出现在主播放列表中,则该标签不应出现在该主播放列表引用的任何媒体播放列表中。出现在两者中的标记必须具有相同的值;否则,客户端应忽略媒体播放列表中的值。

These tags MUST NOT appear more than once in a Playlist. If a tag appears more than once, clients MUST fail to parse the Playlist.

这些标签在播放列表中不得出现多次。如果标签出现多次,则客户端必须无法解析播放列表。

4.3.5.1. EXT-X-INDEPENDENT-SEGMENTS
4.3.5.1. EXT-X独立段

The EXT-X-INDEPENDENT-SEGMENTS tag indicates that all media samples in a Media Segment can be decoded without information from other segments. It applies to every Media Segment in the Playlist.

EXT-X-INDEPENDENT-SEGMENTS标签表示一个媒体段中的所有媒体样本都可以在没有其他段信息的情况下解码。它适用于播放列表中的每个媒体段。

Its format is:

其格式为:

#EXT-X-INDEPENDENT-SEGMENTS

#EXT-X独立段

If the EXT-X-INDEPENDENT-SEGMENTS tag appears in a Master Playlist, it applies to every Media Segment in every Media Playlist in the Master Playlist.

如果EXT-X-INDEPENDENT-SEGMENTS标签出现在主播放列表中,则它适用于主播放列表中每个媒体播放列表中的每个媒体段。

4.3.5.2. EXT-X-START
4.3.5.2. EXT-X-START

The EXT-X-START tag indicates a preferred point at which to start playing a Playlist. By default, clients SHOULD start playback at this point when beginning a playback session. This tag is OPTIONAL.

EXT-X-START标签表示开始播放播放列表的首选点。默认情况下,客户端在开始播放会话时应在此时开始播放。此标记是可选的。

Its format is:

其格式为:

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

The following attributes are defined:

定义了以下属性:

TIME-OFFSET

时间偏移

The value of TIME-OFFSET is a signed-decimal-floating-point number of seconds. A positive number indicates a time offset from the beginning of the Playlist. A negative number indicates a negative time offset from the end of the last Media Segment in the Playlist. This attribute is REQUIRED.

TIME-OFFSET的值是以秒为单位的有符号十进制浮点数。正数表示从播放列表开始的时间偏移。负数表示从播放列表中最后一个媒体段结束的负时间偏移。此属性是必需的。

The absolute value of TIME-OFFSET SHOULD NOT be larger than the Playlist duration. If the absolute value of TIME-OFFSET exceeds the duration of the Playlist, it indicates either the end of the Playlist (if positive) or the beginning of the Playlist (if negative).

时间偏移的绝对值不应大于播放列表的持续时间。如果时间偏移的绝对值超过播放列表的持续时间,则表示播放列表的结束(如果为正)或播放列表的开始(如果为负)。

If the Playlist does not contain the EXT-X-ENDLIST tag, the TIME-OFFSET SHOULD NOT be within three target durations of the end of the Playlist file.

如果播放列表不包含EXT-X-ENDLIST标记,则时间偏移量不应在播放列表文件结束后的三个目标持续时间内。

PRECISE

准确的

The value is an enumerated-string; valid strings are YES and NO. If the value is YES, clients SHOULD start playback at the Media Segment containing the TIME-OFFSET, but SHOULD NOT render media samples in that segment whose presentation times are prior to the TIME-OFFSET. If the value is NO, clients SHOULD attempt to render every media sample in that segment. This attribute is OPTIONAL. If it is missing, its value should be treated as NO.

该值是一个枚举字符串;有效字符串为是和否。如果值为是,客户端应在包含时间偏移的媒体段开始播放,但不应在呈现时间早于时间偏移的媒体段中呈现媒体样本。如果该值为“否”,则客户端应尝试呈现该段中的每个媒体样本。此属性是可选的。如果缺少,则应将其值视为“否”。

5. Key Files
5. 关键文件
5.1. Structure of Key Files
5.1. 关键文件的结构

An EXT-X-KEY tag with a URI attribute identifies a Key file. A Key file contains a cipher key that can decrypt Media Segments in the Playlist.

带有URI属性的EXT-X-KEY标记标识密钥文件。密钥文件包含可以解密播放列表中媒体段的密码密钥。

[AES_128] encryption uses 16-octet keys. If the KEYFORMAT of an EXT-X-KEY tag is "identity", the Key file is a single packed array of 16 octets in binary format.

[AES_128]加密使用16个八位密钥。如果EXT-X-KEY标记的KEYFORMAT是“identity”,则密钥文件是一个由16个二进制格式的八位字节组成的压缩数组。

5.2. IV for AES-128
5.2. 用于AES-128的IV

[AES_128] REQUIRES the same 16-octet IV to be supplied when encrypting and decrypting. Varying this IV increases the strength of the cipher.

[AES_128]要求在加密和解密时提供相同的16个八位组IV。改变这个IV会增加密码的强度。

An IV attribute on an EXT-X-KEY tag with a KEYFORMAT of "identity" specifies an IV that can be used when decrypting Media Segments encrypted with that Key file. IV values for AES-128 are 128-bit numbers.

密钥格式为“identity”的EXT-X-KEY标记上的IV属性指定了一个IV,在解密使用该密钥文件加密的媒体段时可以使用该IV。AES-128的IV值为128位数字。

An EXT-X-KEY tag with a KEYFORMAT of "identity" that does not have an IV attribute indicates that the Media Sequence Number is to be used as the IV when decrypting a Media Segment, by putting its big-endian binary representation into a 16-octet (128-bit) buffer and padding (on the left) with zeros.

带有KEYFORMAT“identity”且不具有IV属性的EXT-X-KEY标记表示在解密媒体段时,媒体序列号将用作IV,方法是将其大端二进制表示形式放入16个八位组(128位)缓冲区,并用零填充(左侧)。

6. Client/Server Responsibilities
6. 客户机/服务器职责
6.1. Introduction
6.1. 介绍

This section describes how the server generates the Playlist and Media Segments and how the client should download them for playback.

本节介绍服务器如何生成播放列表和媒体片段,以及客户端应如何下载它们进行播放。

6.2. Server Responsibilities
6.2. 服务器职责
6.2.1. General Server Responsibilities
6.2.1. 一般服务器职责

The production of the source media is outside the scope of this document, which simply presumes a source of continuous encoded media containing the presentation.

源媒体的制作不在本文件的范围内,本文件仅假定包含演示文稿的连续编码媒体的来源。

The server MUST divide the source media into individual Media Segments whose duration is less than or equal to a constant target duration. Segments that are longer than the planned target duration can trigger playback stalls and other errors.

服务器必须将源媒体划分为持续时间小于或等于恒定目标持续时间的各个媒体段。超过计划目标持续时间的片段可能会触发播放暂停和其他错误。

The server SHOULD attempt to divide the source media at points that support effective decode of individual Media Segments, e.g., on packet and key frame boundaries.

服务器应尝试在支持单个媒体段有效解码的点(例如,在分组和关键帧边界上)划分源媒体。

The server MUST create a URI for every Media Segment that enables its clients to obtain the segment data. If a server supports partial loading of resources (e.g., via HTTP Range requests), it MAY specify segments as sub-ranges of larger resources using the EXT-X-BYTERANGE tag.

服务器必须为每个媒体段创建一个URI,使其客户端能够获取段数据。如果服务器支持部分加载资源(例如,通过HTTP范围请求),它可以使用EXT-X-BYTERANGE标记将段指定为较大资源的子范围。

Any Media Segment that is specified in a Playlist loaded by a client MUST be available for immediate download, or playback errors can occur. Once download starts, its transfer rate SHOULD NOT be constrained by the segment production process.

客户端加载的播放列表中指定的任何媒体段都必须可立即下载,否则可能会出现播放错误。下载开始后,其传输速率不应受到分段生产过程的限制。

HTTP servers SHOULD transfer text files -- such as Playlists and WebVTT segments -- using the "gzip" Content-Encoding if the client indicates that it is prepared to accept it.

HTTP服务器应该使用“gzip”内容编码传输文本文件,如播放列表和WebVTT片段,如果客户端表示准备接受它。

The server must create a Media Playlist file (Section 4) that contains a URI for each Media Segment that the server wishes to make available, in the order in which they are to be played.

服务器必须创建媒体播放列表文件(第4节),该文件包含服务器希望按照播放顺序提供的每个媒体段的URI。

The value of the EXT-X-VERSION tag (Section 4.3.1.2) SHOULD NOT be greater than what is required for the tags and attributes in the Playlist (see Section 7).

EXT-X-VERSION标签(第4.3.1.2节)的值不应大于播放列表中标签和属性所需的值(见第7节)。

Changes to the Playlist file MUST be made atomically from the point of view of the clients, or playback errors MAY occur.

必须从客户端的角度以原子方式更改播放列表文件,否则可能会出现播放错误。

The server MUST NOT change the Media Playlist file, except to:

服务器不得更改媒体播放列表文件,除非:

o Append lines to it (Section 6.2.1).

o 附加行(第6.2.1节)。

o Remove Media Segment URIs from the Playlist in the order that they appear, along with any tags that apply only to those segments (Section 6.2.2).

o 按媒体段URI的显示顺序从播放列表中删除媒体段URI,以及仅适用于这些段的任何标记(第6.2.2节)。

o Increment the value of the EXT-X-MEDIA-SEQUENCE or EXT-X-DISCONTINUITY-SEQUENCE tags (Section 6.2.2).

o 增加EXT-X-媒体序列或EXT-X-不连续序列标签的值(第6.2.2节)。

o Add an EXT-X-ENDLIST tag to the Playlist (Section 6.2.1).

o 将EXT-X-ENDLIST标签添加到播放列表(第6.2.1节)。

A Media Playlist has further constraints on its updates if it contains an EXT-X-PLAYLIST-TYPE tag. An EXT-X-PLAYLIST-TYPE tag with a value of VOD indicates that the Playlist file MUST NOT change. An EXT-X-PLAYLIST-TYPE tag with a value of EVENT indicates that the server MUST NOT change or delete any part of the Playlist file; it MAY append lines to it.

如果媒体播放列表包含EXT-X-Playlist-TYPE标签,则媒体播放列表对其更新有进一步的限制。值为VOD的EXT-X-PLAYLIST-TYPE标签表示播放列表文件不得更改。值为EVENT的EXT-X-PLAYLIST-TYPE标记表示服务器不得更改或删除播放列表文件的任何部分;它可以在其上附加行。

The value of the EXT-X-TARGETDURATION tag in the Media Playlist MUST NOT change. A typical target duration is 10 seconds.

媒体播放列表中EXT-X-TARGETDURATION标签的值不得更改。典型的目标持续时间为10秒。

Playlist changes other than those allowed here can trigger playback errors and inconsistent client behavior.

播放列表更改(此处允许的更改除外)可能会触发播放错误和不一致的客户端行为。

Each Media Segment in a Media Playlist has an integer Discontinuity Sequence Number. The Discontinuity Sequence Number can be used in addition to the timestamps within the media to synchronize Media Segments across different Renditions.

媒体播放列表中的每个媒体段都有一个整数不连续序列号。除了介质内的时间戳外,还可以使用不连续序列号跨不同格式副本同步介质段。

A segment's Discontinuity Sequence Number is the value of the EXT-X-DISCONTINUITY-SEQUENCE tag (or zero if none) plus the number of EXT-X-DISCONTINUITY tags in the Playlist preceding the URI line of the segment.

片段的不连续序列号是EXT-X-interruption-Sequence标记的值(如果没有,则为零)加上该片段URI行之前播放列表中EXT-X-interruption标记的数量。

The server MAY associate an absolute date and time with a Media Segment by applying an EXT-X-PROGRAM-DATE-TIME tag to it. This defines an informative mapping of the (wall-clock) date and time specified by the tag to the first media timestamp in the segment, which may be used as a basis for seeking, for display, or for other purposes. If a server provides this mapping, it SHOULD apply an EXT-X-PROGRAM-DATE-TIME tag to every segment that has an EXT-X-DISCONTINUITY tag applied to it.

服务器可以通过对媒体段应用EXT-X-PROGRAM-date-time标记,将绝对日期和时间与媒体段相关联。这定义了标签指定的(挂钟)日期和时间到段中第一个媒体时间戳的信息映射,可作为查找、显示或其他目的的基础。如果服务器提供此映射,则应将EXT-X-PROGRAM-DATE-TIME标记应用于每个应用了EXT-X-intercontinuction标记的段。

The Server MUST NOT add any EXT-X-PROGRAM-DATE-TIME tag to a Playlist that would cause the mapping between program date and Media Segment to become ambiguous.

服务器不得向播放列表中添加任何EXT-X-PROGRAM-DATE-TIME标记,否则会导致节目日期和媒体段之间的映射变得不明确。

The server MUST NOT remove an EXT-X-DATERANGE tag from a Playlist if any date in the range maps to a Media Segment in the Playlist.

如果范围内的任何日期映射到播放列表中的媒体段,则服务器不得从播放列表中删除EXT-X-DATERANGE标记。

The server MUST NOT reuse the ID attribute value of an EXT-X-DATERANGE tag for any new Date Range in the same Playlist.

服务器不得对同一播放列表中的任何新日期范围重复使用EXT-X-DATERANGE标记的ID属性值。

Once the Following Range of a Date Range with an END-ON-NEXT=YES attribute is added to a Playlist, the Server MUST NOT subsequently add a Date Range with the same CLASS attribute whose START-DATE is between that of the END-ON-NEXT=YES range and its Following Range.

一旦向播放列表中添加了具有END-ON-NEXT=YES属性的日期范围的以下范围,服务器随后不得添加具有相同类别属性的日期范围,其开始日期介于END-ON-NEXT=YES范围与其以下范围之间。

For Date Ranges with a PLANNED-DURATION attribute, the Server SHOULD signal the actual end of the range once it has been established. It can do so by adding another EXT-X-DATERANGE tag with the same ID attribute value and either a DURATION or an END-DATE attribute or, if the Date Range has an END-ON-NEXT=YES attribute, by adding a Following Range.

对于具有“计划持续时间”属性的日期范围,服务器应在确定该范围后发出该范围实际结束的信号。它可以通过添加另一个EXT-X-DATERANGE标记来完成此操作,该标记具有相同的ID属性值和持续时间或结束日期属性,或者,如果日期范围具有END-ON-NEXT=YES属性,则可以添加以下范围。

If the Media Playlist contains the final Media Segment of the presentation, then the Playlist file MUST contain the EXT-X-ENDLIST tag; this allows clients to minimize unproductive Playlist reloads.

如果媒体播放列表包含演示文稿的最终媒体段,则播放列表文件必须包含EXT-X-ENDLIST标签;这使客户端可以最大限度地减少非生产性播放列表的重新加载。

If a Media Playlist does not contain the EXT-X-ENDLIST tag, the server MUST make a new version of the Playlist file available that contains at least one new Media Segment. It MUST be made available relative to the time that the previous version of the Playlist file was made available: no earlier than one-half the target duration after that time, and no later than 1.5 times the target duration after that time. This allows clients to utilize the network efficiently.

如果媒体播放列表不包含EXT-X-ENDLIST标签,服务器必须提供包含至少一个新媒体段的播放列表文件的新版本。它必须相对于播放列表文件先前版本的可用时间可用:不早于该时间后目标持续时间的一半,不迟于该时间后目标持续时间的1.5倍。这使得客户端能够有效地利用网络。

If the server wishes to remove an entire presentation, it SHOULD provide a clear indication to clients that the Playlist file is no longer available (e.g., with an HTTP 404 or 410 response). It MUST ensure that all Media Segments in the Playlist file remain available to clients for at least the duration of the Playlist file at the time of removal to prevent interruption of in-progress playback.

如果服务器希望删除整个演示文稿,则应向客户端提供播放列表文件不再可用的明确指示(例如,使用HTTP 404或410响应)。它必须确保播放列表文件中的所有媒体段在移除时至少在播放列表文件的持续时间内对客户端保持可用,以防止中断正在进行的播放。

6.2.2. Live Playlists
6.2.2. 现场播放列表

The server MAY limit the availability of Media Segments by removing Media Segments from the Playlist file (Section 6.2.1). If Media Segments are to be removed, the Playlist file MUST contain an EXT-X-MEDIA-SEQUENCE tag. Its value MUST be incremented by 1 for every Media Segment that is removed from the Playlist file; it MUST NOT decrease or wrap. Clients can malfunction if each Media Segment does not have a consistent, unique Media Sequence Number.

服务器可以通过从播放列表文件中删除媒体段来限制媒体段的可用性(第6.2.1节)。如果要删除媒体段,播放列表文件必须包含EXT-X-Media-SEQUENCE标签。对于从播放列表文件中删除的每个媒体段,其值必须增加1;它不能减少或包裹。如果每个媒体段没有一致、唯一的媒体序列号,客户端可能会出现故障。

Media Segments MUST be removed from the Playlist file in the order that they appear in the Playlist; otherwise, client playback can malfunction.

媒体段必须按照它们在播放列表中出现的顺序从播放列表文件中删除;否则,客户端播放可能会出现故障。

The server MUST NOT remove a Media Segment from a Playlist file without an EXT-X-ENDLIST tag if that would produce a Playlist whose duration is less than three times the target duration. Doing so can trigger playback stalls.

如果从没有EXT-X-ENDLIST标记的播放列表文件中删除媒体段会产生持续时间小于目标持续时间三倍的播放列表,则服务器不得删除该播放列表文件中的媒体段。这样做可能会触发播放暂停。

When the server removes a Media Segment URI from the Playlist, the corresponding Media Segment MUST remain available to clients for a period of time equal to the duration of the segment plus the duration of the longest Playlist file distributed by the server containing that segment. Removing a Media Segment earlier than that can interrupt in-progress playback.

当服务器从播放列表中删除媒体段URI时,相应的媒体段必须在相当于该段的持续时间加上包含该段的服务器分发的最长播放列表文件的持续时间的时间内对客户端保持可用。删除早于此的媒体段可能会中断正在进行的播放。

If the server wishes to remove segments from a Media Playlist containing an EXT-X-DISCONTINUITY tag, the Media Playlist MUST contain an EXT-X-DISCONTINUITY-SEQUENCE tag. Without the EXT-X-DISCONTINUITY-SEQUENCE tag, it can be impossible for a client to locate corresponding segments between Renditions.

如果服务器希望从包含EXT-X不连续标签的媒体播放列表中删除片段,则媒体播放列表必须包含EXT-X不连续序列标签。如果没有EXT-X-intercontinuction-SEQUENCE标记,客户端可能无法在格式副本之间找到相应的片段。

If the server removes an EXT-X-DISCONTINUITY tag from the Media Playlist, it MUST increment the value of the EXT-X-DISCONTINUITY-SEQUENCE tag so that the Discontinuity Sequence Numbers of the segments still in the Media Playlist remain unchanged. The value of the EXT-X-DISCONTINUITY-SEQUENCE tag MUST NOT decrease or wrap. Clients can malfunction if each Media Segment does not have a consistent Discontinuity Sequence Number.

如果服务器从媒体播放列表中删除EXT-X-不连续标签,则必须增加EXT-X-不连续序列标签的值,以便媒体播放列表中仍然存在的片段的不连续序列号保持不变。EXT-X-不连续性-序列标记的值不得减小或环绕。如果每个媒体段没有一致的不连续序列号,客户端可能会出现故障。

If a server plans to remove a Media Segment after it is delivered to clients over HTTP, it SHOULD ensure that the HTTP response contains an Expires header that reflects the planned time-to-live.

如果服务器计划在通过HTTP将媒体段传递给客户端后删除该媒体段,则应确保HTTP响应包含反映计划生存时间的Expires标头。

A Live Playlist MUST NOT contain the EXT-X-PLAYLIST-TYPE tag, as no value of that tag allows Media Segments to be removed.

直播播放列表不得包含EXT-X-Playlist-TYPE标签,因为该标签的任何值都不允许删除媒体段。

6.2.3. Encrypting Media Segments
6.2.3. 加密媒体段

Media Segments MAY be encrypted. Every encrypted Media Segment MUST have an EXT-X-KEY tag (Section 4.3.2.4) applied to it with a URI that the client can use to obtain a Key file (Section 5) containing the decryption key.

媒体段可以被加密。每个加密的媒体段都必须有一个EXT-X-KEY标记(第4.3.2.4节),该标记带有一个URI,客户端可以使用该URI获取包含解密密钥的密钥文件(第5节)。

A Media Segment can only be encrypted with one encryption METHOD, using one encryption key and IV. However, a server MAY offer multiple ways to retrieve that key by providing multiple EXT-X-KEY tags, each with a different KEYFORMAT attribute value.

一个媒体段只能使用一种加密方法进行加密,使用一个加密密钥和IV。但是,服务器可以通过提供多个EXT-X-key标记(每个标记具有不同的KEYFORMAT属性值)来提供多种检索该密钥的方法。

The server MAY set the HTTP Expires header in the key response to indicate the duration for which the key can be cached.

服务器可以在密钥响应中设置HTTP Expires头,以指示可以缓存密钥的持续时间。

Any unencrypted Media Segment in a Playlist that is preceded by an encrypted Media Segment MUST have an EXT-X-KEY tag applied to it with a METHOD attribute of NONE. Otherwise, the client will misinterpret those segments as encrypted.

播放列表中任何前面有加密媒体段的未加密媒体段都必须应用EXT-X-KEY标记,且方法属性为NONE。否则,客户端将错误地将这些段解释为加密的。

If the encryption METHOD is AES-128 and the Playlist does not contain the EXT-X-I-FRAMES-ONLY tag, AES encryption as described in Section 4.3.2.4 SHALL be applied to individual Media Segments.

如果加密方法为AES-128,且播放列表不包含EXT-X-I-FRAMES-ONLY标签,则应将第4.3.2.4节所述的AES加密应用于各个媒体段。

If the encryption METHOD is AES-128 and the Playlist contains an EXT-X-I-FRAMES-ONLY tag, the entire resource MUST be encrypted using AES-128 CBC with PKCS7 padding [RFC5652]. Encryption MAY be restarted on 16-byte block boundaries, unless the first block contains an I-frame. The IV used for encryption MUST be either the Media Sequence Number of the Media Segment or the value of the IV attribute of the EXT-X-KEY tag, as described in Section 5.2. These constraints allow a client to load and decrypt individual I-frames specified as sub-ranges of regular encrypted Media Segments, and their Media Initialization Sections.

如果加密方法为AES-128且播放列表包含EXT-X-I-FRAMES-ONLY标记,则必须使用AES-128 CBC和PKCS7填充对整个资源进行加密[RFC5652]。可以在16字节块边界上重新开始加密,除非第一个块包含I帧。用于加密的IV必须是媒体段的媒体序列号或EXT-X-KEY标签的IV属性值,如第5.2节所述。这些约束允许客户端加载和解密指定为常规加密媒体段及其媒体初始化部分的子范围的单个I帧。

If the encryption METHOD is SAMPLE-AES, media samples MAY be encrypted prior to encapsulation in a Media Segment.

如果加密方法是SAMPLE-AES,则可以在封装到媒体段之前对媒体样本进行加密。

The server MUST NOT remove an EXT-X-KEY tag from the Playlist file if it applies to any Media Segment in the Playlist file, or clients who subsequently load that Playlist will be unable to decrypt those Media Segments.

如果EXT-X-KEY标签适用于播放列表文件中的任何媒体段,服务器不得从播放列表文件中删除该标签,否则随后加载该播放列表的客户端将无法解密这些媒体段。

6.2.4. Providing Variant Streams
6.2.4. 提供变体流

A server MAY offer multiple Media Playlist files to provide different encodings of the same presentation. If it does so, it SHOULD provide a Master Playlist file that lists each Variant Stream to allow clients to switch between encodings dynamically.

服务器可以提供多个媒体播放列表文件,以提供同一演示文稿的不同编码。如果这样做,它应该提供一个主播放列表文件,其中列出每个变体流,以允许客户端在编码之间动态切换。

Master Playlists describe regular Variant Streams with EXT-X-STREAM-INF tags and I-frame Variant Streams with EXT-X-I-FRAME-STREAM-INF tags.

主播放列表描述带有EXT-X-STREAM-INF标记的常规变体流和带有EXT-X-I-frame-STREAM-INF标记的I-frame变体流。

If an EXT-X-STREAM-INF tag or EXT-X-I-FRAME-STREAM-INF tag contains the CODECS attribute, the attribute value MUST include every media format [RFC6381] present in any Media Segment in any of the Renditions specified by the Variant Stream.

如果EXT-X-STREAM-INF标记或EXT-X-I-FRAME-STREAM-INF标记包含CODECS属性,则属性值必须包括变体流指定的任何格式副本中任何媒体段中存在的每种媒体格式[RFC6381]。

The server MUST meet the following constraints when producing Variant Streams in order to allow clients to switch between them seamlessly:

在生成变量流时,服务器必须满足以下约束,以允许客户端在变量流之间无缝切换:

o Each Variant Stream MUST present the same content.

o 每个变体流必须呈现相同的内容。

o Matching content in Variant Streams MUST have matching timestamps. This allows clients to synchronize the media.

o 变量流中的匹配内容必须具有匹配的时间戳。这允许客户端同步介质。

o Matching content in Variant Streams MUST have matching Discontinuity Sequence Numbers (see Section 4.3.3.3).

o 变体流中的匹配内容必须具有匹配的不连续序列号(见第4.3.3.3节)。

o Each Media Playlist in each Variant Stream MUST have the same target duration. The only exceptions are SUBTITLES Renditions and Media Playlists containing an EXT-X-I-FRAMES-ONLY tag, which MAY have different target durations if they have an EXT-X-PLAYLIST-TYPE of VOD.

o 每个变体流中的每个媒体播放列表必须具有相同的目标持续时间。唯一的例外是包含EXT-X-I-FRAMES-only标记的字幕格式副本和媒体播放列表,如果它们具有EXT-X-PLAYLIST-TYPE VOD,则可能具有不同的目标持续时间。

o Content that appears in a Media Playlist of one Variant Stream but not in another MUST appear either at the beginning or at the end of the Media Playlist file and MUST NOT be longer than the target duration.

o 出现在一个变体流的媒体播放列表中但不在另一个变体流中的内容必须出现在媒体播放列表文件的开头或结尾,并且不得超过目标持续时间。

o If any Media Playlists have an EXT-X-PLAYLIST-TYPE tag, all Media Playlists MUST have an EXT-X-PLAYLIST-TYPE tag with the same value.

o 如果任何媒体播放列表具有EXT-X-PLAYLIST-TYPE标签,则所有媒体播放列表必须具有具有相同值的EXT-X-PLAYLIST-TYPE标签。

o If the Playlist contains an EXT-X-PLAYLIST-TYPE tag with the value of VOD, the first segment of every Media Playlist in every Variant Stream MUST start at the same media timestamp.

o 如果播放列表包含具有VOD值的EXT-X-Playlist-TYPE标记,则每个变体流中每个媒体播放列表的第一段必须以相同的媒体时间戳开始。

o If any Media Playlist in a Master Playlist contains an EXT-X-PROGRAM-DATE-TIME tag, then all Media Playlists in that Master Playlist MUST contain EXT-X-PROGRAM-DATE-TIME tags with consistent mappings of date and time to media timestamps.

o 如果主播放列表中的任何媒体播放列表包含EXT-X-PROGRAM-DATE-TIME标记,则该主播放列表中的所有媒体播放列表必须包含EXT-X-PROGRAM-DATE-TIME标记,且日期和时间与媒体时间戳的映射一致。

o Each Variant Stream MUST contain the same set of Date Ranges, each one identified by an EXT-X-DATERANGE tag(s) with the same ID attribute value and containing the same set of attribute/value pairs.

o 每个变量流必须包含相同的日期范围集,每个日期范围由具有相同ID属性值的EXT-X-DATERANGE标记标识,并包含相同的属性/值对集。

In addition, for broadest compatibility, Variant Streams SHOULD contain the same encoded audio bitstream. This allows clients to switch between Variant Streams without audible glitching.

此外,为了最广泛的兼容性,变体流应该包含相同的编码音频比特流。这允许客户端在不同的流之间切换,而不会出现声音故障。

The rules for Variant Streams also apply to alternative Renditions (see Section 4.3.4.2.1).

变体流的规则也适用于备选格式副本(见第4.3.4.2.1节)。

6.3. Client Responsibilities
6.3. 客户责任
6.3.1. General Client Responsibilities
6.3.1. 一般客户责任

How the client obtains the URI to the Playlist file is outside the scope of this document; it is presumed to have done so.

客户端如何获取播放列表文件的URI不在本文档范围内;据推测它已经这样做了。

The client obtains the Playlist file from the URI. If the Playlist file so obtained is a Master Playlist, the client can select a Variant Stream to load from the Master Playlist.

客户端从URI获取播放列表文件。如果这样获得的播放列表文件是主播放列表,则客户端可以从主播放列表中选择要加载的变体流。

Clients MUST ensure that loaded Playlists comply with Section 4 and that the EXT-X-VERSION tag, if present, specifies a protocol version supported by the client; if either check fails, the client MUST NOT attempt to use the Playlist, or unintended behavior could occur.

客户端必须确保加载的播放列表符合第4节的要求,并且EXT-X-VERSION标签(如果存在)指定客户端支持的协议版本;如果任一检查失败,客户端不得尝试使用播放列表,否则可能会发生意外行为。

If any URI element in a Playlist contains an URI scheme that the client cannot handle, the client MUST stop playback. All clients MUST support HTTP schemes.

如果播放列表中的任何URI元素包含客户端无法处理的URI方案,客户端必须停止播放。所有客户端都必须支持HTTP方案。

To support forward compatibility, when parsing Playlists, clients MUST:

要支持前向兼容性,解析播放列表时,客户端必须:

o ignore any unrecognized tags.

o 忽略任何无法识别的标记。

o ignore any attribute/value pair with an unrecognized AttributeName.

o 忽略任何具有无法识别的AttributeName的属性/值对。

o ignore any tag containing an attribute/value pair of type enumerated-string whose AttributeName is recognized but whose AttributeValue is not recognized, unless the definition of the attribute says otherwise.

o 忽略任何包含类型枚举字符串的属性/值对的标记,该类型枚举字符串的AttributeName可识别,但AttributeValue不可识别,除非该属性的定义另有说明。

Algorithms used by the client to switch between Variant Streams are beyond the scope of this document.

客户端用于在变量流之间切换的算法超出了本文档的范围。

6.3.2. Loading the Media Playlist File
6.3.2. 加载媒体播放列表文件

Every time a Media Playlist is loaded or reloaded from a Playlist URI, the client MUST determine the next Media Segment to load, as described in Section 6.3.5, if it intends to play the presentation normally (i.e., in Playlist order at the nominal playback rate).

每次从播放列表URI加载或重新加载媒体播放列表时,客户端必须确定要加载的下一个媒体段,如第6.3.5节所述,如果它打算正常播放演示文稿(即,以播放列表顺序以标称播放速率播放)。

If the Media Playlist contains the EXT-X-MEDIA-SEQUENCE tag, the client SHOULD assume that each Media Segment in it will become unavailable at the time that the Playlist file was loaded plus the duration of the Playlist file.

如果媒体播放列表包含EXT-X-Media-SEQUENCE标记,则客户端应假定其中的每个媒体段在加载播放列表文件时加上播放列表文件的持续时间后将变得不可用。

A client MAY use the segment Media Sequence Number to track the location of a Media Segment within a Playlist when the Playlist is reloaded.

当重新加载播放列表时,客户端可以使用段媒体序列号来跟踪播放列表中媒体段的位置。

A client MUST NOT assume that segments with the same Media Sequence Number in different Variant Streams or Renditions have the same position in the presentation; Playlists MAY have independent Media Sequence Numbers. Instead, a client MUST use the relative position of each segment on the Playlist timeline and its Discontinuity Sequence Number to locate corresponding segments.

客户不得假设不同变体流或格式副本中具有相同媒体序列号的片段在演示文稿中的位置相同;播放列表可能有独立的媒体序列号。相反,客户端必须使用播放列表时间线上每个片段的相对位置及其不连续序列号来定位相应的片段。

A client MUST load the Media Playlist file of every Rendition selected for playback in order to locate the media specific to that Rendition. But, to prevent unnecessary load on the server, it SHOULD NOT load the Playlist file of any other Rendition.

客户端必须加载选定要播放的每个格式副本的媒体播放列表文件,才能找到特定于该格式副本的媒体。但是,为了防止服务器上出现不必要的加载,它不应加载任何其他格式副本的播放列表文件。

For some Variant Streams, it is possible to select Renditions that do not include the Rendition specified by the EXT-X-STREAM-INF tag. As noted above, the client SHOULD NOT load that Rendition in those cases.

对于某些变体流,可以选择不包含EXT-X-STREAM-INF标记指定的格式副本的格式副本。如上所述,在这些情况下,客户端不应加载该格式副本。

6.3.3. Playing the Media Playlist File
6.3.3. 播放媒体播放列表文件

The client SHALL choose which Media Segment to play first from the Media Playlist when playback starts. If the EXT-X-ENDLIST tag is not present and the client intends to play the media normally, the client SHOULD NOT choose a segment that starts less than three target durations from the end of the Playlist file. Doing so can trigger playback stalls.

开始播放时,客户端应从媒体播放列表中选择要首先播放的媒体段。如果EXT-X-ENDLIST标签不存在且客户端希望正常播放媒体,则客户端不应选择从播放列表文件末尾开始的时间少于三个目标持续时间的片段。这样做可能会触发播放暂停。

Normal playback can be achieved by playing the Media Segments in the order that they appear in the Playlist. The client MAY present the available media in any way it wishes, including normal playback, random access, and trick modes.

通过按媒体片段在播放列表中出现的顺序播放媒体片段,可以实现正常播放。客户端可以以其希望的任何方式呈现可用媒体,包括正常播放、随机访问和技巧模式。

The encoding parameters for samples in a Media Segment and across multiple Media Segments in a Media Playlist SHOULD remain consistent. However, clients SHOULD deal with encoding changes as they are encountered, for example, by scaling video content to accommodate a resolution change. If the Variant Stream includes a RESOLUTION attribute, clients SHOULD display all video within a rectangle with the same proportions as that resolution.

媒体播放列表中一个媒体段和多个媒体段中的样本的编码参数应保持一致。但是,客户机应该在遇到编码更改时进行处理,例如,通过缩放视频内容以适应分辨率更改。如果变量流包含分辨率属性,则客户端应以与该分辨率相同的比例显示矩形内的所有视频。

Clients SHOULD be prepared to handle multiple tracks of a particular type (e.g., audio or video). A client with no other preference SHOULD choose the track with the lowest numerical track identifier that it can play.

客户应准备好处理特定类型的多个曲目(例如音频或视频)。没有其他首选项的客户端应选择其可以播放的数字曲目标识符最低的曲目。

Clients SHOULD ignore private streams inside Transport Streams that they do not recognize. Private streams can be used to support different devices with the same stream, although stream authors SHOULD be sensitive to the additional network load that this imposes.

客户端应该忽略它们无法识别的传输流中的私有流。私有流可用于支持具有相同流的不同设备,尽管流作者应该对由此带来的额外网络负载敏感。

The client MUST be prepared to reset its parser(s) and decoder(s) before playing a Media Segment that has an EXT-X-DISCONTINUITY tag applied to it; otherwise, playback errors can occur.

在播放应用了EXT-X-不连续标记的媒体段之前,客户端必须准备重置其解析器和解码器;否则,可能会发生播放错误。

The client SHOULD attempt to load Media Segments in advance of when they will be required for uninterrupted playback to compensate for temporary variations in latency and throughput.

客户端应尝试在不间断播放所需的媒体段之前加载媒体段,以补偿延迟和吞吐量的临时变化。

The client MAY use the value of the EXT-X-PROGRAM-DATE-TIME tag to display the program origination time to the user. If the value includes time zone information, the client SHALL take it into account; if it does not, the client MAY assume the time to be local.

客户端可以使用EXT-X-PROGRAM-DATE-TIME标签的值向用户显示节目发起时间。如果该值包括时区信息,客户应予以考虑;如果没有,客户可以假定时间是本地的。

Note that dates in Playlists can refer to when the content was produced (or to other times), which have no relation to the time of playback.

请注意,播放列表中的日期可以指内容产生的时间(或其他时间),与播放时间无关。

If the first EXT-X-PROGRAM-DATE-TIME tag in a Playlist appears after one or more Media Segment URIs, the client SHOULD extrapolate backward from that tag (using EXTINF durations and/or media timestamps) to associate dates with those segments. To associate a date with any other Media Segment that does not have an EXT-X-PROGRAM-DATE-TIME tag applied to it directly, the client SHOULD extrapolate forward from the last EXT-X-PROGRAM-DATE-TIME tag appearing before that segment in the Playlist.

如果播放列表中的第一个EXT-X-PROGRAM-DATE-TIME标记出现在一个或多个媒体段URI之后,则客户端应从该标记向后推断(使用EXEF持续时间和/或媒体时间戳),以将日期与这些段相关联。要将日期与没有直接应用EXT-X-PROGRAM-date-TIME标记的任何其他媒体段相关联,客户端应从播放列表中该段之前出现的最后一个EXT-X-PROGRAM-date-TIME标记向前推断。

6.3.4. Reloading the Media Playlist File
6.3.4. 重新加载媒体播放列表文件

The client MUST periodically reload a Media Playlist file to learn what media is currently available, unless it contains an EXT-X-PLAYLIST-TYPE tag with a value of VOD, or a value of EVENT and the EXT-X-ENDLIST tag is also present.

客户端必须定期重新加载媒体播放列表文件,以了解当前可用的媒体,除非该文件包含值为VOD的EXT-X-Playlist-TYPE标记,或包含值为EVENT的EXT-X-ENDLIST标记,且EXT-X-ENDLIST标记也存在。

However, the client MUST NOT attempt to reload the Playlist file more frequently than specified by this section, in order to limit the collective load on the server.

但是,客户端尝试重新加载播放列表文件的频率不得超过本节规定的频率,以限制服务器上的总负载。

When a client loads a Playlist file for the first time or reloads a Playlist file and finds that it has changed since the last time it was loaded, the client MUST wait for at least the target duration before attempting to reload the Playlist file again, measured from the last time the client began loading the Playlist file.

当客户端首次加载播放列表文件或重新加载播放列表文件并发现自上次加载以来播放列表文件已发生更改时,客户端必须至少等待目标持续时间,然后再尝试重新加载播放列表文件,从客户端上次开始加载播放列表文件时开始测量。

If the client reloads a Playlist file and finds that it has not changed, then it MUST wait for a period of one-half the target duration before retrying.

如果客户端重新加载播放列表文件并发现该文件未更改,则必须等待目标持续时间的一半,然后重试。

After reloading a Media Playlist, the client SHOULD verify that each Media Segment in it has the same URI (and byte range, if specified) as the Media Segment with the same Media Sequence Number in the previous Media Playlist. It SHOULD halt playback if it does not, as this normally indicates a server error.

重新加载媒体播放列表后,客户端应验证其中的每个媒体段是否具有与上一个媒体播放列表中具有相同媒体序列号的媒体段相同的URI(和字节范围,如果指定)。如果没有,它应该停止播放,因为这通常表示服务器错误。

In order to reduce server load, the client SHOULD NOT reload the Playlist files of Variant Streams or alternate Renditions that are not currently being played. If it decides to switch playback to a different Variant Stream, it SHOULD stop reloading the Playlist of the old Variant Stream and begin loading the Playlist of the new Variant Stream. It can use the EXTINF durations and the constraints in Section 6.2.4 to determine the approximate location of corresponding media. Once media from the new Variant Stream has been loaded, the timestamps in the Media Segments can be used to synchronize the old and new timelines precisely.

为了减少服务器负载,客户端不应重新加载当前未播放的变体流或备用格式副本的播放列表文件。如果决定将播放切换到不同的变体流,则应停止重新加载旧变体流的播放列表,并开始加载新变体流的播放列表。它可以使用第6.2.4节中的熄灭持续时间和限制条件来确定相应介质的大致位置。加载新变体流中的媒体后,媒体段中的时间戳可用于精确同步新旧时间线。

A client MUST NOT attempt to use the Media Sequence Number to synchronize between streams (see Section 6.3.2).

客户端不得尝试使用媒体序列号在流之间进行同步(见第6.3.2节)。

6.3.5. Determining the Next Segment to Load
6.3.5. 确定要加载的下一段

The client MUST examine the Media Playlist file every time it is loaded or reloaded to determine the next Media Segment to load, as the set of available media MAY have changed.

每次加载或重新加载媒体播放列表文件时,客户端都必须检查该文件,以确定要加载的下一个媒体段,因为可用媒体集可能已更改。

The first segment to load is generally the segment that the client has chosen to play first (see Section 6.3.3).

第一个要加载的段通常是客户选择首先播放的段(见第6.3.3节)。

In order to play the presentation normally, the next Media Segment to load is the one with the lowest Media Sequence Number that is greater than the Media Sequence Number of the last Media Segment loaded.

为了正常播放演示文稿,要加载的下一个媒体段的媒体序列号最小,大于加载的最后一个媒体段的媒体序列号。

6.3.6. Decrypting Encrypted Media Segments
6.3.6. 解密加密的媒体段

If a Media Playlist file contains an EXT-X-KEY tag that specifies a Key file URI, the client can obtain that Key file and use the key inside it to decrypt all Media Segments to which that EXT-X-KEY tag applies.

如果媒体播放列表文件包含指定密钥文件URI的EXT-X-KEY标记,则客户端可以获取该密钥文件并使用其中的密钥解密EXT-X-KEY标记应用的所有媒体段。

A client MUST ignore any EXT-X-KEY tag with an unsupported or unrecognized KEYFORMAT attribute, to allow for cross-device addressability. If the Playlist contains a Media Segment to which only EXT-X-KEY tags with unrecognized or unsupported KEYFORMAT attributes are applied, playback SHOULD fail.

客户端必须忽略任何具有不受支持或无法识别的KEYFORMAT属性的EXT-X-KEY标记,以允许跨设备寻址。如果播放列表包含的媒体段仅应用了具有无法识别或不支持的KEYFORMAT属性的EXT-X-KEY标记,则播放应失败。

A client MUST NOT attempt to decrypt any segments whose EXT-X-KEY tag has a METHOD attribute that it does not recognize.

客户端不得尝试解密其EXT-X-KEY标记具有其无法识别的方法属性的任何段。

If the encryption METHOD is AES-128, AES-128 CBC decryption SHALL be applied to individual Media Segments, whose encryption format is described in Section 4.3.2.4.

如果加密方法为AES-128,则AES-128 CBC解密应应用于单个媒体段,其加密格式见第4.3.2.4节。

If the encryption METHOD is AES-128 and the Media Segment is part of an I-frame Playlist (Section 4.3.3.6) and it has an EXT-X-BYTERANGE tag applied to it, special care needs to be taken in loading and decrypting the segment, because the resource identified by the URI is encrypted in 16-byte blocks from the start of the resource.

如果加密方法为AES-128,并且媒体段是I-frame播放列表的一部分(第4.3.3.6节),并且应用了EXT-X-BYTERANGE标记,则在加载和解密该段时需要特别小心,因为URI标识的资源在从资源开始的16字节块中进行加密。

The decrypted I-frame can be recovered by first widening its byte range, as specified by the EXT-X-BYTERANGE tag, so that it starts and ends on 16-byte boundaries from the start of the resource.

解密的I帧可以通过首先扩大其字节范围来恢复,如EXT-X-BYTERANGE标记所指定的,这样它从资源的开始开始到结束都在16字节边界上。

Next, the byte range is widened further to include a 16-byte block at the beginning of the range. This 16-byte block allows the correct IV for the following block to be calculated.

接下来,字节范围进一步扩大,以在范围的开头包括一个16字节的块。此16字节块允许计算以下块的正确IV。

The widened byte range can then be loaded and decrypted with AES-128 CBC using an arbitrary IV. The number of bytes added to the beginning and the end of the original byte range are discarded from the decrypted bytes; what remains is the decrypted I-frame.

然后,可以使用任意IV使用AES-128 CBC加载和解密扩大的字节范围。添加到原始字节范围开头和结尾的字节数将从解密的字节中丢弃;剩下的是解密后的I帧。

If the encryption METHOD is SAMPLE-AES, AES-128 decryption SHALL be applied to encrypted media samples within the Media Segment.

如果加密方法为SAMPLE-AES,则AES-128解密应用于媒体段内加密的媒体样本。

An EXT-X-KEY tag with a METHOD of NONE indicates that the Media Segments it applies to are not encrypted.

方法为NONE的EXT-X-KEY标记表示其应用的媒体段未加密。

7. Protocol Version Compatibility
7. 协议版本兼容性

Protocol compatibility is specified by the EXT-X-VERSION tag. A Playlist that contains tags or attributes that are not compatible with protocol version 1 MUST include an EXT-X-VERSION tag.

协议兼容性由EXT-X-VERSION标记指定。包含与协议版本1不兼容的标签或属性的播放列表必须包含EXT-X-version标签。

A client MUST NOT attempt playback if it does not support the protocol version specified by the EXT-X-VERSION tag, or unintended behavior could occur.

如果客户端不支持EXT-X-version标记指定的协议版本,则客户端不得尝试播放,否则可能会发生意外行为。

A Media Playlist MUST indicate an EXT-X-VERSION of 2 or higher if it contains:

如果媒体播放列表包含以下内容,则必须指示2或更高版本的EXT-X-VERSION:

o The IV attribute of the EXT-X-KEY tag.

o EXT-X-KEY标记的IV属性。

A Media Playlist MUST indicate an EXT-X-VERSION of 3 or higher if it contains:

如果媒体播放列表包含以下内容,则必须指示3或更高版本的EXT-X:

o Floating-point EXTINF duration values.

o 浮点时间值。

A Media Playlist MUST indicate an EXT-X-VERSION of 4 or higher if it contains:

如果媒体播放列表包含以下内容,则必须指示EXT-X-VERSION 4或更高版本:

o The EXT-X-BYTERANGE tag.

o EXT-X-BYTERANGE标签。

o The EXT-X-I-FRAMES-ONLY tag.

o EXT-X-I-FRAMES-ONLY标记。

A Media Playlist MUST indicate an EXT-X-VERSION of 5 or higher if it contains:

如果媒体播放列表包含以下内容,则必须指示5或更高版本的EXT-X:

o The KEYFORMAT and KEYFORMATVERSIONS attributes of the EXT-X-KEY tag.

o EXT-X-KEY标记的KEYFORMAT和KEYFORMATVERSIONS属性。

o The EXT-X-MAP tag.

o EXT-X-MAP标记。

A Media Playlist MUST indicate an EXT-X-VERSION of 6 or higher if it contains:

如果媒体播放列表包含以下内容,则必须指示6或更高版本的EXT-X-VERSION:

o The EXT-X-MAP tag in a Media Playlist that does not contain EXT-X-I-FRAMES-ONLY.

o 媒体播放列表中不包含EXT-X-I-FRAMES-ONLY的EXT-X-MAP标记。

A Master Playlist MUST indicate an EXT-X-VERSION of 7 or higher if it contains:

如果主播放列表包含以下内容,则必须指示7或更高版本的EXT-X-VERSION:

o "SERVICE" values for the INSTREAM-ID attribute of the EXT-X-MEDIA tag.

o EXT-X-MEDIA标记的INSTREAM-ID属性的“服务”值。

The EXT-X-MEDIA tag and the AUDIO, VIDEO, and SUBTITLES attributes of the EXT-X-STREAM-INF tag are backward compatible to protocol version 1, but playback on older clients may not be desirable. A server MAY consider indicating an EXT-X-VERSION of 4 or higher in the Master Playlist but is not required to do so.

EXT-X-MEDIA标记和EXT-X-STREAM-INF标记的音频、视频和字幕属性与协议版本1向后兼容,但在旧客户端上播放可能不可取。服务器可以考虑在主播放列表中指示4或更高版本的EXT-X版本,但不需要这样做。

The PROGRAM-ID attribute of the EXT-X-STREAM-INF and the EXT-X-I-FRAME-STREAM-INF tags was removed in protocol version 6.

EXT-X-STREAM-INF和EXT-X-I-FRAME-STREAM-INF标记的PROGRAM-ID属性在协议版本6中被删除。

The EXT-X-ALLOW-CACHE tag was removed in protocol version 7.

EXT-X-ALLOW-CACHE标记已在协议版本7中删除。

8. Playlist Examples
8. 播放列表示例
8.1. Simple Media Playlist
8.1. 简单媒体播放列表
   #EXTM3U
   #EXT-X-TARGETDURATION:10
   #EXT-X-VERSION:3
   #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
   #EXT-X-ENDLIST
        
   #EXTM3U
   #EXT-X-TARGETDURATION:10
   #EXT-X-VERSION:3
   #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
   #EXT-X-ENDLIST
        
8.2. Live Media Playlist Using HTTPS
8.2. 使用HTTPS的实时媒体播放列表
   #EXTM3U
   #EXT-X-VERSION:3
   #EXT-X-TARGETDURATION:8
   #EXT-X-MEDIA-SEQUENCE:2680
        
   #EXTM3U
   #EXT-X-VERSION:3
   #EXT-X-TARGETDURATION:8
   #EXT-X-MEDIA-SEQUENCE:2680
        
   #EXTINF:7.975,
   https://priv.example.com/fileSequence2680.ts
   #EXTINF:7.941,
   https://priv.example.com/fileSequence2681.ts
   #EXTINF:7.975,
   https://priv.example.com/fileSequence2682.ts
        
   #EXTINF:7.975,
   https://priv.example.com/fileSequence2680.ts
   #EXTINF:7.941,
   https://priv.example.com/fileSequence2681.ts
   #EXTINF:7.975,
   https://priv.example.com/fileSequence2682.ts
        
8.3. Playlist with Encrypted Media Segments
8.3. 带有加密媒体段的播放列表
   #EXTM3U
   #EXT-X-VERSION:3
   #EXT-X-MEDIA-SEQUENCE:7794
   #EXT-X-TARGETDURATION:15
        
   #EXTM3U
   #EXT-X-VERSION:3
   #EXT-X-MEDIA-SEQUENCE:7794
   #EXT-X-TARGETDURATION:15
        
   #EXT-X-KEY:METHOD=AES-128,URI="https://priv.example.com/key.php?r=52"
        
   #EXT-X-KEY:METHOD=AES-128,URI="https://priv.example.com/key.php?r=52"
        
   #EXTINF:2.833,
   http://media.example.com/fileSequence52-A.ts
   #EXTINF:15.0,
   http://media.example.com/fileSequence52-B.ts
   #EXTINF:13.333,
   http://media.example.com/fileSequence52-C.ts
        
   #EXTINF:2.833,
   http://media.example.com/fileSequence52-A.ts
   #EXTINF:15.0,
   http://media.example.com/fileSequence52-B.ts
   #EXTINF:13.333,
   http://media.example.com/fileSequence52-C.ts
        
   #EXT-X-KEY:METHOD=AES-128,URI="https://priv.example.com/key.php?r=53"
        
   #EXT-X-KEY:METHOD=AES-128,URI="https://priv.example.com/key.php?r=53"
        
   #EXTINF:15.0,
   http://media.example.com/fileSequence53-A.ts
        
   #EXTINF:15.0,
   http://media.example.com/fileSequence53-A.ts
        
8.4. Master Playlist
8.4. 主播放列表
   #EXTM3U
   #EXT-X-STREAM-INF:BANDWIDTH=1280000,AVERAGE-BANDWIDTH=1000000
   http://example.com/low.m3u8
   #EXT-X-STREAM-INF:BANDWIDTH=2560000,AVERAGE-BANDWIDTH=2000000
   http://example.com/mid.m3u8
   #EXT-X-STREAM-INF:BANDWIDTH=7680000,AVERAGE-BANDWIDTH=6000000
   http://example.com/hi.m3u8
   #EXT-X-STREAM-INF:BANDWIDTH=65000,CODECS="mp4a.40.5"
   http://example.com/audio-only.m3u8
        
   #EXTM3U
   #EXT-X-STREAM-INF:BANDWIDTH=1280000,AVERAGE-BANDWIDTH=1000000
   http://example.com/low.m3u8
   #EXT-X-STREAM-INF:BANDWIDTH=2560000,AVERAGE-BANDWIDTH=2000000
   http://example.com/mid.m3u8
   #EXT-X-STREAM-INF:BANDWIDTH=7680000,AVERAGE-BANDWIDTH=6000000
   http://example.com/hi.m3u8
   #EXT-X-STREAM-INF:BANDWIDTH=65000,CODECS="mp4a.40.5"
   http://example.com/audio-only.m3u8
        
8.5. Master Playlist with I-Frames
8.5. 带I帧的主播放列表
   #EXTM3U
   #EXT-X-STREAM-INF:BANDWIDTH=1280000
   low/audio-video.m3u8
   #EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=86000,URI="low/iframe.m3u8"
   #EXT-X-STREAM-INF:BANDWIDTH=2560000
   mid/audio-video.m3u8
   #EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=150000,URI="mid/iframe.m3u8"
   #EXT-X-STREAM-INF:BANDWIDTH=7680000
   hi/audio-video.m3u8
   #EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=550000,URI="hi/iframe.m3u8"
   #EXT-X-STREAM-INF:BANDWIDTH=65000,CODECS="mp4a.40.5"
   audio-only.m3u8
        
   #EXTM3U
   #EXT-X-STREAM-INF:BANDWIDTH=1280000
   low/audio-video.m3u8
   #EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=86000,URI="low/iframe.m3u8"
   #EXT-X-STREAM-INF:BANDWIDTH=2560000
   mid/audio-video.m3u8
   #EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=150000,URI="mid/iframe.m3u8"
   #EXT-X-STREAM-INF:BANDWIDTH=7680000
   hi/audio-video.m3u8
   #EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=550000,URI="hi/iframe.m3u8"
   #EXT-X-STREAM-INF:BANDWIDTH=65000,CODECS="mp4a.40.5"
   audio-only.m3u8
        
8.6. Master Playlist with Alternative Audio
8.6. 主播放列表,带有可选音频

In this example, the CODECS attributes have been condensed for space. A '\' is used to indicate that the tag continues on the following line with whitespace removed:

在本例中,编解码器属性已压缩为空间。“\”用于指示标记在以下行上继续,并删除空格:

   #EXTM3U
   #EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac",NAME="English", \
      DEFAULT=YES,AUTOSELECT=YES,LANGUAGE="en", \
      URI="main/english-audio.m3u8"
   #EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac",NAME="Deutsch", \
      DEFAULT=NO,AUTOSELECT=YES,LANGUAGE="de", \
      URI="main/german-audio.m3u8"
   #EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac",NAME="Commentary", \
      DEFAULT=NO,AUTOSELECT=NO,LANGUAGE="en", \
      URI="commentary/audio-only.m3u8"
   #EXT-X-STREAM-INF:BANDWIDTH=1280000,CODECS="...",AUDIO="aac"
   low/video-only.m3u8
   #EXT-X-STREAM-INF:BANDWIDTH=2560000,CODECS="...",AUDIO="aac"
   mid/video-only.m3u8
   #EXT-X-STREAM-INF:BANDWIDTH=7680000,CODECS="...",AUDIO="aac"
   hi/video-only.m3u8
   #EXT-X-STREAM-INF:BANDWIDTH=65000,CODECS="mp4a.40.5",AUDIO="aac"
   main/english-audio.m3u8
        
   #EXTM3U
   #EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac",NAME="English", \
      DEFAULT=YES,AUTOSELECT=YES,LANGUAGE="en", \
      URI="main/english-audio.m3u8"
   #EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac",NAME="Deutsch", \
      DEFAULT=NO,AUTOSELECT=YES,LANGUAGE="de", \
      URI="main/german-audio.m3u8"
   #EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac",NAME="Commentary", \
      DEFAULT=NO,AUTOSELECT=NO,LANGUAGE="en", \
      URI="commentary/audio-only.m3u8"
   #EXT-X-STREAM-INF:BANDWIDTH=1280000,CODECS="...",AUDIO="aac"
   low/video-only.m3u8
   #EXT-X-STREAM-INF:BANDWIDTH=2560000,CODECS="...",AUDIO="aac"
   mid/video-only.m3u8
   #EXT-X-STREAM-INF:BANDWIDTH=7680000,CODECS="...",AUDIO="aac"
   hi/video-only.m3u8
   #EXT-X-STREAM-INF:BANDWIDTH=65000,CODECS="mp4a.40.5",AUDIO="aac"
   main/english-audio.m3u8
        
8.7. Master Playlist with Alternative Video
8.7. 主播放列表和备选视频

This example shows three different video Renditions (Main, Centerfield, and Dugout) and three different Variant Streams (low, mid, and high). In this example, clients that did not support the EXT-X-MEDIA tag and the VIDEO attribute of the EXT-X-STREAM-INF tag would only be able to play the video Rendition "Main".

此示例显示了三种不同的视频格式副本(主、中心场和Dugout)和三种不同的变体流(低、中、高)。在此示例中,不支持EXT-X-MEDIA标记和EXT-X-STREAM-INF标记的VIDEO属性的客户端将只能播放视频格式副本“Main”。

Since the EXT-X-STREAM-INF tag has no AUDIO attribute, all video Renditions would be required to contain the audio.

由于EXT-X-STREAM-INF标记没有音频属性,因此所有视频格式副本都需要包含音频。

In this example, the CODECS attributes have been condensed for space. A '\' is used to indicate that the tag continues on the following line with whitespace removed:

在本例中,编解码器属性已压缩为空间。“\”用于指示标记在以下行上继续,并删除空格:

   #EXTM3U
   #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="low",NAME="Main", \
      DEFAULT=YES,URI="low/main/audio-video.m3u8"
   #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="low",NAME="Centerfield", \
      DEFAULT=NO,URI="low/centerfield/audio-video.m3u8"
   #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="low",NAME="Dugout", \
      DEFAULT=NO,URI="low/dugout/audio-video.m3u8"
        
   #EXTM3U
   #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="low",NAME="Main", \
      DEFAULT=YES,URI="low/main/audio-video.m3u8"
   #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="low",NAME="Centerfield", \
      DEFAULT=NO,URI="low/centerfield/audio-video.m3u8"
   #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="low",NAME="Dugout", \
      DEFAULT=NO,URI="low/dugout/audio-video.m3u8"
        
   #EXT-X-STREAM-INF:BANDWIDTH=1280000,CODECS="...",VIDEO="low"
   low/main/audio-video.m3u8
        
   #EXT-X-STREAM-INF:BANDWIDTH=1280000,CODECS="...",VIDEO="low"
   low/main/audio-video.m3u8
        
   #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="mid",NAME="Main", \
      DEFAULT=YES,URI="mid/main/audio-video.m3u8"
   #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="mid",NAME="Centerfield", \
      DEFAULT=NO,URI="mid/centerfield/audio-video.m3u8"
   #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="mid",NAME="Dugout", \
      DEFAULT=NO,URI="mid/dugout/audio-video.m3u8"
        
   #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="mid",NAME="Main", \
      DEFAULT=YES,URI="mid/main/audio-video.m3u8"
   #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="mid",NAME="Centerfield", \
      DEFAULT=NO,URI="mid/centerfield/audio-video.m3u8"
   #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="mid",NAME="Dugout", \
      DEFAULT=NO,URI="mid/dugout/audio-video.m3u8"
        
   #EXT-X-STREAM-INF:BANDWIDTH=2560000,CODECS="...",VIDEO="mid"
   mid/main/audio-video.m3u8
        
   #EXT-X-STREAM-INF:BANDWIDTH=2560000,CODECS="...",VIDEO="mid"
   mid/main/audio-video.m3u8
        
   #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="hi",NAME="Main", \
      DEFAULT=YES,URI="hi/main/audio-video.m3u8"
   #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="hi",NAME="Centerfield", \
      DEFAULT=NO,URI="hi/centerfield/audio-video.m3u8"
   #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="hi",NAME="Dugout", \
      DEFAULT=NO,URI="hi/dugout/audio-video.m3u8"
        
   #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="hi",NAME="Main", \
      DEFAULT=YES,URI="hi/main/audio-video.m3u8"
   #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="hi",NAME="Centerfield", \
      DEFAULT=NO,URI="hi/centerfield/audio-video.m3u8"
   #EXT-X-MEDIA:TYPE=VIDEO,GROUP-ID="hi",NAME="Dugout", \
      DEFAULT=NO,URI="hi/dugout/audio-video.m3u8"
        
   #EXT-X-STREAM-INF:BANDWIDTH=7680000,CODECS="...",VIDEO="hi"
   hi/main/audio-video.m3u8
        
   #EXT-X-STREAM-INF:BANDWIDTH=7680000,CODECS="...",VIDEO="hi"
   hi/main/audio-video.m3u8
        
8.8. Session Data in a Master Playlist
8.8. 主播放列表中的会话数据

In this example, only the EXT-X-SESSION-DATA is shown:

在此示例中,仅显示EXT-X-SESSION-DATA:

   #EXT-X-SESSION-DATA:DATA-ID="com.example.lyrics",URI="lyrics.json"
        
   #EXT-X-SESSION-DATA:DATA-ID="com.example.lyrics",URI="lyrics.json"
        
   #EXT-X-SESSION-DATA:DATA-ID="com.example.title",LANGUAGE="en", \
           VALUE="This is an example"
   #EXT-X-SESSION-DATA:DATA-ID="com.example.title",LANGUAGE="es", \
           VALUE="Este es un ejemplo"
        
   #EXT-X-SESSION-DATA:DATA-ID="com.example.title",LANGUAGE="en", \
           VALUE="This is an example"
   #EXT-X-SESSION-DATA:DATA-ID="com.example.title",LANGUAGE="es", \
           VALUE="Este es un ejemplo"
        
8.9. CHARACTERISTICS Attribute Containing Multiple Characteristics
8.9. 特征包含多个特征的属性

Certain characteristics are valid in combination, as in:

某些特征在组合中有效,如:

CHARACTERISTICS= "public.accessibility.transcribes-spoken-dialog,public.easy-to-read"

CHARACTERISTICS=“public.accessibility.transcribe口语对话,public.easy-read”

8.10. EXT-X-DATERANGE Carrying SCTE-35 Tags
8.10. 携带SCTE-35标签的EXT-X-DATERANGE

This example shows two EXT-X-DATERANGE tags that describe a single Date Range, with an SCTE-35 "out" splice_insert() command that is subsequently updated with an SCTE-35 "in" splice_insert() command.

此示例显示了两个EXT-X-DATERANGE标记,它们使用SCTE-35“out”splice_insert()命令描述单个日期范围,该命令随后使用SCTE-35“in”splice_insert()命令更新。

   #EXTM3U
   ...
   #EXT-X-DATERANGE:ID="splice-6FFFFFF0",START-DATE="2014-03-05T11:
   15:00Z",PLANNED-DURATION=59.993,SCTE35-OUT=0xFC002F0000000000FF0
   00014056FFFFFF000E011622DCAFF000052636200000000000A0008029896F50
   000008700000000
        
   #EXTM3U
   ...
   #EXT-X-DATERANGE:ID="splice-6FFFFFF0",START-DATE="2014-03-05T11:
   15:00Z",PLANNED-DURATION=59.993,SCTE35-OUT=0xFC002F0000000000FF0
   00014056FFFFFF000E011622DCAFF000052636200000000000A0008029896F50
   000008700000000
        

... Media Segment declarations for 60s worth of media

... 60年代媒体的媒体细分声明

#EXT-X-DATERANGE:ID="splice-6FFFFFF0",DURATION=59.993,SCTE35-IN= 0xFC002A0000000000FF00000F056FFFFFF000401162802E6100000000000A00 08029896F50000008700000000 ...

#EXT-X-DATERANGE:ID=“splice-6FFFFFF0”,持续时间=59.993,SCTE35-IN=0xFC002000000000FF00000F056FFFF000401162802E61000000000A00 08029896F50008700000000。。。

9. IANA Considerations
9. IANA考虑

IANA has registered the following media type [RFC2046]:

IANA已注册以下媒体类型[RFC2046]:

Type name: application

类型名称:应用程序

Subtype name: vnd.apple.mpegurl

子类型名称:vnd.apple.mpegurl

Required parameters: none

所需参数:无

Optional parameters: none

可选参数:无

Encoding considerations: encoded as UTF-8, which is 8-bit text. This media type may require encoding on transports not capable of handling 8-bit text. See Section 4 for more information.

编码注意事项:编码为UTF-8,即8位文本。此媒体类型可能需要在无法处理8位文本的传输上进行编码。更多信息请参见第4节。

Security considerations: See Section 10.

安全注意事项:见第10节。

Compression: this media type does not employ compression.

压缩:此媒体类型不使用压缩。

Interoperability considerations: There are no byte-ordering issues, since files are 8-bit text. Applications could encounter unrecognized tags, which SHOULD be ignored.

互操作性注意事项:没有字节排序问题,因为文件是8位文本。应用程序可能会遇到无法识别的标记,应忽略这些标记。

Published specification: see Section 4.

公布的规范:见第4节。

Applications that use this media type: Multimedia applications such as the iPhone media player in iOS 3.0 and later and QuickTime Player in Mac OS X version 10.6 and later.

使用此媒体类型的应用程序:多媒体应用程序,如iOS 3.0及更高版本中的iPhone媒体播放器和Mac OS X 10.6及更高版本中的QuickTime播放器。

Fragment identifier considerations: no Fragment Identifiers are defined for this media type.

片段标识符注意事项:没有为此媒体类型定义片段标识符。

Additional information:

其他信息:

      Deprecated alias names for this type: none
      Magic number(s): #EXTM3U
      File extension(s): .m3u8, .m3u (see Section 4)
      Macintosh file type code(s): none
        
      Deprecated alias names for this type: none
      Magic number(s): #EXTM3U
      File extension(s): .m3u8, .m3u (see Section 4)
      Macintosh file type code(s): none
        

Person & email address to contact for further information: David Singer, singer@apple.com.

联系人和电子邮件地址,以获取更多信息:David Singer,singer@apple.com.

Intended usage: LIMITED USE

预期用途:有限用途

Restrictions on usage: none

使用限制:无

Author: Roger Pantos

作者:罗杰·潘托斯

Change Controller: David Singer

变更控制员:大卫·辛格

10. Security Considerations
10. 安全考虑

Since the protocol generally uses HTTP to transfer data, most of the same security considerations apply. See Section 15 of HTTP [RFC7230].

由于协议通常使用HTTP传输数据,因此大多数相同的安全注意事项适用。参见HTTP[RFC7230]第15节。

Media file parsers are typically subject to "fuzzing" attacks. Implementors SHOULD pay particular attention to code that will parse data received from a server and ensure that all possible inputs are handled correctly.

媒体文件解析器通常会受到“模糊”攻击。实现者应该特别注意解析从服务器接收的数据的代码,并确保正确处理所有可能的输入。

Playlist files contain URIs, which clients will use to make network requests of arbitrary entities. Clients SHOULD range-check responses to prevent buffer overflows. See also the Security Considerations section of "Uniform Resource Identifier (URI): Generic Syntax" [RFC3986].

播放列表文件包含URI,客户端将使用URI对任意实体发出网络请求。客户端应设置范围检查响应,以防止缓冲区溢出。另请参见“统一资源标识符(URI):通用语法”[RFC3986]的安全注意事项部分。

Apart from URL resolution, this format does not employ any form of active content.

除了URL解析,此格式不使用任何形式的活动内容。

Clients SHOULD limit each playback session to a reasonable number of concurrent downloads (e.g., four) to avoid contributing to denial-of-service attacks.

客户端应将每个播放会话限制为合理的并发下载次数(例如四次),以避免造成拒绝服务攻击。

HTTP requests often include session state ("cookies"), which may contain private user data. Implementations MUST follow cookie restriction and expiry rules specified by "HTTP State Management Mechanism" [RFC6265] to protect themselves from attack. See also the Security Considerations section of that document, and "Use of HTTP State Management" [RFC2964].

HTTP请求通常包括会话状态(“cookie”),其中可能包含私人用户数据。实现必须遵循“HTTP状态管理机制”[RFC6265]指定的cookie限制和到期规则,以保护自身免受攻击。另请参见该文档的安全注意事项部分和“HTTP状态管理的使用”[RFC2964]。

Encryption keys are specified by URI. The delivery of these keys SHOULD be secured by a mechanism such as HTTP Over TLS [RFC2818] (formerly SSL) in conjunction with a secure realm or a session token.

加密密钥由URI指定。这些密钥的传递应该通过诸如HTTP Over TLS[RFC2818](以前称为SSL)等机制以及安全域或会话令牌来保护。

11. References
11. 工具书类
11.1. Normative References
11.1. 规范性引用文件

[AC_3] Advanced Television Systems Committee, "Digital Audio Compression (AC-3) (E-AC-3) Standard", ATSC Standard A/52:2010, November 2010, <http://atsc.org/ wp-content/uploads/2015/03/A52-201212-17.pdf>.

[AC_3]高级电视系统委员会,“数字音频压缩(AC-3)(E-AC-3)标准”,ATSC标准A/52:2010,2010年11月<http://atsc.org/ wp content/uploads/2015/03/A52-201212-17.pdf>。

[AES_128] National Institute of Standards and Technology, "Advanced Encryption Standard (AES)", FIPS PUB 197, DOI 10.6028/NIST.FIPS.197, November 2001, <http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.197.pdf>.

[AES_128]国家标准与技术研究所,“高级加密标准(AES)”,FIPS PUB 197,DOI 10.6028/NIST.FIPS.197,2001年11月<http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.197.pdf>.

[CEA608] Consumer Electronics Association, "ANSI/CEA 608-E: Line 21 Data Services", April 2008.

[CEA608]消费电子协会,“ANSI/CEA608-E:第21行数据服务”,2008年4月。

[CEA708] Consumer Technology Association, "Digital Television (DTV) Closed Captioning", ANSI/CTA Standard CEA-708-E, August 2013, <https://standards.cta.tech/kwspub/published_docs/ ANSI-CTA-708-E-Preview.pdf>.

[CEA708]消费者技术协会,“数字电视(DTV)闭路字幕”,ANSI/CTA标准CEA-708-E,2013年8月<https://standards.cta.tech/kwspub/published_docs/ ANSI-CTA-708-E-Preview.pdf>。

[COMMON_ENC] International Organization for Standardization, "Information technology -- MPEG systems technologies -- Part 7: Common encryption in ISO base media file format files", ISO/IEC 23001-7:2016, February 2016, <http://www.iso.org/iso/ catalogue_detail.htm?csnumber=68042>.

[COMMON_ENC]国际标准化组织,“信息技术——MPEG系统技术——第7部分:ISO基本媒体文件格式文件中的通用加密”,ISO/IEC 23001-7:2016,2016年2月<http://www.iso.org/iso/ 目录\u detail.htm?csnumber=68042>。

[H_264] International Telecommunications Union, "Advanced video coding for generic audiovisual services", January 2012, <http://www.itu.int/rec/T-REC-H.264>.

[H_264]国际电信联盟,“通用视听服务的高级视频编码”,2012年1月<http://www.itu.int/rec/T-REC-H.264>.

[HDCP] Digital Content Protection LLC, "High-bandwidth Digital Content Protection System - Mapping HDCP to HDMI", February 2013, <http://www.digital-cp.com/ sites/default/files/specifications/ HDCP%20on%20HDMI%20Specification%20Rev2_2_Final1.pdf>.

[HDCP]数字内容保护有限责任公司,“高带宽数字内容保护系统-将HDCP映射到HDMI”,2013年2月<http://www.digital-cp.com/ sites/default/files/specification/HDCP%20on%20HDMI%20Specification%20Rev2\u 2\u Final1.pdf>。

[ISO_13818] International Organization for Standardization, "Generic coding of moving pictures and associated audio information", ISO/IEC International Standard 13818, October 2007, <http://www.iso.org/iso/catalogue_detail?csnumber=44169>.

[ISO_13818]国际标准化组织,“运动图像和相关音频信息的通用编码”,ISO/IEC国际标准13818,2007年10月<http://www.iso.org/iso/catalogue_detail?csnumber=44169>.

[ISO_13818_3] International Organization for Standardization, "ISO/IEC International Standard 13818-3:1998; Generic coding of moving pictures and associated audio information - Part 3: Audio", April 1998, <http://www.iso.org/iso/home/store/catalogue_tc/ catalogue_detail.htm?csnumber=26797>.

[ISO_13818_3]国际标准化组织,“ISO/IEC国际标准13818-3:1998;运动图像和相关音频信息的通用编码-第3部分:音频”,1998年4月<http://www.iso.org/iso/home/store/catalogue_tc/ 目录\u detail.htm?csnumber=26797>。

[ISO_13818_7] International Organization for Standardization, "Generic coding of moving pictures and associated audio information - Part 7: Advanced Audio Coding (AAC)", ISO/IEC International Standard 13818-3:2006, January 2006, <http://www.iso.org/iso/home/store/catalogue_tc/ catalogue_detail.htm?csnumber=43345>.

[ISO_13818_7]国际标准化组织,“运动图像和相关音频信息的通用编码-第7部分:高级音频编码(AAC)”,ISO/IEC国际标准13818-3:2006,2006年1月<http://www.iso.org/iso/home/store/catalogue_tc/ 目录\u detail.htm?csnumber=43345>。

[ISO_14496] International Organization for Standardization, "Information technology -- Coding of audio-visual objects -- Part 3: Audio", ISO/IEC 14496-3:2009, 2009, <http://www.iso.org/iso/catalogue_detail?csnumber=53943>.

[ISO_14496]国际标准化组织,“信息技术——视听对象编码——第3部分:音频”,ISO/IEC 14496-3:2009<http://www.iso.org/iso/catalogue_detail?csnumber=53943>.

[ISO_8601] International Organization for Standardization, "Data elements and interchange formats -- Information interchange -- Representation of dates and times", ISO/IEC International Standard 8601:2004, December 2004, <http://www.iso.org/iso/catalogue_detail?csnumber=40874>.

[ISO_8601]国际标准化组织,“数据元素和交换格式——信息交换——日期和时间的表示”,ISO/IEC国际标准8601:2004,2004年12月<http://www.iso.org/iso/catalogue_detail?csnumber=40874>.

[ISOBMFF] International Organization for Standardization, "Information technology -- Coding of audio-visual objects -- Part 12: ISO base media file format", ISO/IEC 14496-12:2015, December 2015, <http://www.iso.org/iso/ catalogue_detail.htm?csnumber=68960>.

[ISOBMFF]国际标准化组织,“信息技术——视听对象编码——第12部分:ISO基本媒体文件格式”,ISO/IEC 14496-12:2015,2015年12月<http://www.iso.org/iso/ 目录\u detail.htm?csnumber=68960>。

[RFC2046] Freed, N. and N. Borenstein, "Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types", RFC 2046, DOI 10.17487/RFC2046, November 1996, <https://www.rfc-editor.org/info/rfc2046>.

[RFC2046]Freed,N.和N.Borenstein,“多用途互联网邮件扩展(MIME)第二部分:媒体类型”,RFC 2046,DOI 10.17487/RFC2046,1996年11月<https://www.rfc-editor.org/info/rfc2046>.

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, <https://www.rfc-editor.org/info/rfc2119>.

[RFC2119]Bradner,S.,“RFC中用于表示需求水平的关键词”,BCP 14,RFC 2119,DOI 10.17487/RFC2119,1997年3月<https://www.rfc-editor.org/info/rfc2119>.

[RFC2818] Rescorla, E., "HTTP Over TLS", RFC 2818, DOI 10.17487/RFC2818, May 2000, <https://www.rfc-editor.org/info/rfc2818>.

[RFC2818]Rescorla,E.,“TLS上的HTTP”,RFC 2818,DOI 10.17487/RFC2818,2000年5月<https://www.rfc-editor.org/info/rfc2818>.

[RFC2964] Moore, K. and N. Freed, "Use of HTTP State Management", BCP 44, RFC 2964, DOI 10.17487/RFC2964, October 2000, <https://www.rfc-editor.org/info/rfc2964>.

[RFC2964]Moore,K.和N.Freed,“HTTP状态管理的使用”,BCP 44,RFC 2964,DOI 10.17487/RFC2964,2000年10月<https://www.rfc-editor.org/info/rfc2964>.

[RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO 10646", STD 63, RFC 3629, DOI 10.17487/RFC3629, November 2003, <https://www.rfc-editor.org/info/rfc3629>.

[RFC3629]Yergeau,F.,“UTF-8,ISO 10646的转换格式”,STD 63,RFC 3629,DOI 10.17487/RFC3629,2003年11月<https://www.rfc-editor.org/info/rfc3629>.

[RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform Resource Identifier (URI): Generic Syntax", STD 66, RFC 3986, DOI 10.17487/RFC3986, January 2005, <https://www.rfc-editor.org/info/rfc3986>.

[RFC3986]Berners Lee,T.,Fielding,R.,和L.Masinter,“统一资源标识符(URI):通用语法”,STD 66,RFC 3986,DOI 10.17487/RFC3986,2005年1月<https://www.rfc-editor.org/info/rfc3986>.

[RFC5646] Phillips, A., Ed. and M. Davis, Ed., "Tags for Identifying Languages", BCP 47, RFC 5646, DOI 10.17487/RFC5646, September 2009, <https://www.rfc-editor.org/info/rfc5646>.

[RFC5646]Phillips,A.,Ed.和M.Davis,Ed.,“识别语言的标签”,BCP 47,RFC 5646,DOI 10.17487/RFC5646,2009年9月<https://www.rfc-editor.org/info/rfc5646>.

[RFC5652] Housley, R., "Cryptographic Message Syntax (CMS)", STD 70, RFC 5652, DOI 10.17487/RFC5652, September 2009, <https://www.rfc-editor.org/info/rfc5652>.

[RFC5652]Housley,R.,“加密消息语法(CMS)”,STD 70,RFC 5652,DOI 10.17487/RFC5652,2009年9月<https://www.rfc-editor.org/info/rfc5652>.

[RFC6265] Barth, A., "HTTP State Management Mechanism", RFC 6265, DOI 10.17487/RFC6265, April 2011, <https://www.rfc-editor.org/info/rfc6265>.

[RFC6265]Barth,A.,“HTTP状态管理机制”,RFC 6265,DOI 10.17487/RFC6265,2011年4月<https://www.rfc-editor.org/info/rfc6265>.

[RFC6381] Gellens, R., Singer, D., and P. Frojdh, "The 'Codecs' and 'Profiles' Parameters for "Bucket" Media Types", RFC 6381, DOI 10.17487/RFC6381, August 2011, <https://www.rfc-editor.org/info/rfc6381>.

[RFC6381]Gellens,R.,Singer,D.,和P.Frojdh,“桶”媒体类型的“编解码器”和“配置文件”参数”,RFC 6381,DOI 10.17487/RFC6381,2011年8月<https://www.rfc-editor.org/info/rfc6381>.

[RFC7159] Bray, T., Ed., "The JavaScript Object Notation (JSON) Data Interchange Format", RFC 7159, DOI 10.17487/RFC7159, March 2014, <https://www.rfc-editor.org/info/rfc7159>.

[RFC7159]Bray,T.,Ed.“JavaScript对象表示法(JSON)数据交换格式”,RFC 7159,DOI 10.17487/RFC7159,2014年3月<https://www.rfc-editor.org/info/rfc7159>.

[RFC7230] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing", RFC 7230, DOI 10.17487/RFC7230, June 2014, <https://www.rfc-editor.org/info/rfc7230>.

[RFC7230]Fielding,R.,Ed.和J.Reschke,Ed.,“超文本传输协议(HTTP/1.1):消息语法和路由”,RFC 7230,DOI 10.17487/RFC7230,2014年6月<https://www.rfc-editor.org/info/rfc7230>.

[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, <https://www.rfc-editor.org/info/rfc8174>.

[RFC8174]Leiba,B.,“RFC 2119关键词中大写与小写的歧义”,BCP 14,RFC 8174,DOI 10.17487/RFC8174,2017年5月<https://www.rfc-editor.org/info/rfc8174>.

[SCTE35] Society of Cable Telecommunications Engineers, "Digital Program Insertion Cueing Message for Cable", ANSI/SCTE 35, August 2014, <http://www.scte.org/documents/pdf/Standards/ ANSI_SCTE%2035%202014.pdf>.

[SCTE35]电缆通信工程师协会,“电缆数字程序插入提示信息”,ANSI/SCTE 352014年8月<http://www.scte.org/documents/pdf/Standards/ ANSI_SCTE%2035%202014.pdf>。

[US_ASCII] American National Standard for Information Systems, "Coded Character Sets - 7-Bit American National Standard Code for Information Interchange (7-Bit ASCII)", ANSI X3.4, December 1986.

[US_ASCII]美国信息系统国家标准,“编码字符集-7位美国信息交换国家标准代码(7位ASCII)”,ANSI X3.41986年12月。

[WebVTT] World Wide Web Consortium (W3C), "WebVTT: The Web Video Text Tracks Format", Draft Community Group Report, June 2017, <http://dev.w3.org/html5/webvtt/>.

[WebVTT]万维网联盟(W3C),“WebVTT:网络视频文本跟踪格式”,社区小组报告草稿,2017年6月<http://dev.w3.org/html5/webvtt/>.

11.2. Informative References
11.2. 资料性引用

[CMAF] International Organization for Standardization, "Information technology -- Multimedia application format (MPEG-A) -- Part 19: Common media application format (CMAF) for segmented media", ISO/IEC FDIS 23000-19, <https://www.iso.org/standard/71975.html>.

[CMAF]国际标准化组织,“信息技术——多媒体应用格式(MPEG-A)——第19部分:分段媒体的通用媒体应用格式(CMAF)”,ISO/IEC FDIS 23000-19<https://www.iso.org/standard/71975.html>.

[ID3] ID3.org, "The ID3 audio file data tagging format", <http://www.id3.org/Developer_Information>.

[ID3]ID3.org,“ID3音频文件数据标记格式”<http://www.id3.org/Developer_Information>.

[M3U] Nullsoft, Inc., "The M3U Playlist format, originally invented for the Winamp media player", <https://en.wikipedia.org/w/ index.php?title=M3U7amp;oldid=786631666>.

[M3U]Nullsoft,Inc.,“M3U播放列表格式,最初是为Winamp媒体播放器发明的”<https://en.wikipedia.org/w/ php?title=M3U7amp;oldid=786631666>。

[SampleEnc] Apple Inc., "MPEG-2 Stream Encryption Format for HTTP Live Streaming", <https://developer.apple.com/library/ios/documentation/ AudioVideo/Conceptual/HLS_Sample_Encryption/>.

[SampleEnc]苹果公司,“HTTP直播流的MPEG-2流加密格式”<https://developer.apple.com/library/ios/documentation/ 音频视频/概念/HLS\u示例\u加密/>。

[UNICODE] The Unicode Consortium, "The Unicode Standard", <http://www.unicode.org/versions/latest/>.

[UNICODE]UNICODE联盟,“UNICODE标准”<http://www.unicode.org/versions/latest/>.

[UTI] Apple Inc., "Uniform Type Identifier", <http://developer.apple.com/library/ios/#documentation/ general/conceptual/DevPedia-CocoaCore/ UniformTypeIdentifier.html>.

[UTI]苹果公司,“统一类型标识符”<http://developer.apple.com/library/ios/#documentation/ general/Conceptional/DevPedia CocoaCore/UniformTypeIdentifier.html>。

Contributors

贡献者

Significant contributions to the design of this protocol were made by Jim Batson, David Biderman, Bill May, Roger Pantos, Alan Tseng, and Eryk Vershen. Stuart Cheshire helped edit the specification.

Jim Batson、David Biderman、Bill May、Roger Pantos、Alan Tseng和Eryk Vershen对该方案的设计做出了重大贡献。斯图尔特·切希尔帮助编辑了规范。

Authors' Addresses

作者地址

Roger Pantos (editor) Apple, Inc. Cupertino, California United States of America

罗杰·潘托斯(编辑)苹果公司,美国加利福尼亚州库比蒂诺

   Email: http-live-streaming-review@group.apple.com
        
   Email: http-live-streaming-review@group.apple.com
        

William May, Jr. Major League Baseball Advanced Media New York, New York United States of America

美国职业棒球大联盟高级媒体,纽约,纽约,美利坚合众国

   Email: bill.may@mlb.com
        
   Email: bill.may@mlb.com