每个媒体片段,由一系列的媒体片段标签和URI进行指定。一些媒体片段标签用于指定未来的媒体片段属性,一些媒体片段标签用于指定未来一段的媒体片段属性,直到在出现该标签才会更新属性值。样例:
#EXTINF:9.009,
http://media.example.com/first.ts
媒体片段标签不能出现在主播放列表中。客户端在主播放列表中发现媒体片段标签时,可以选择拒绝播放。
1. EXTINF
EXTINF是一个记录标记,该标记描述了后边URI所指定的媒体文件。每个媒体文件URI前边必须有EXTINF标签。格式如下:
#EXTINF: <DURATION>, <TITLE>
DURATION是一个整数或者浮点数,它指定了媒体文件以秒为单位的持续时间。一般来说选择用浮点数可以更精确标定播放时长。
如果协议号(compatibility version)小于3,则其必须为整数,时间应四舍五入到最接近的整数。
行内逗号后边的剩余部分是媒体文件的名字,该名字是媒体分片的人眼可读的信息标题。
该文档定义了如下的新标签:EXT-X-TARGETDURATION,EXT-X-MEDIA-SEQUENCE,EXT-X-KEY,EXT-X-PROGRAM-DATE-TIME,EXT-X-ALLOW-CATCH,EXT-X- ENDLIST,EXT-X-STREAM-INF,EXT-X-DISCONTINUITY,EXT-X-VERSION
2. EXT-X-BYTERANGE
表示媒体段是一个媒体URI资源中的一段,只对其后的media URI有效,格式如下:
#EXT-X-BYTERANGE:<n>[@<o>]
其中n表示这个区间的大小并且是一个浮点数表示子区间占用的字节个数,o表在URI中的offset;The EXT-X-BYTERANGE tag appeared in version 4 of the protocol
3. EXT-X-DISCONTINUITY
EXT-X-DISCONTINUITY标签表示该标签后边的媒体文件和之前的媒体文件之间的编码间断。
样例:#EXT-X-DISCONTINUITY
必须出现该标签的情况:file format、number, type and identifiers of tracks、timestamp sequence任一一个情况改变都需要出现。
应该出现该标签的情况:编码参数改变和编码序列改变
4.EXT-X-KEY
媒体文件可能是被加密的,EXT-X-KEY提供了解密媒体文件的必要信息,它的格式如下:
#EXT-X-KEY:METHOD=<method> [,URI = “<uri>”][,IV = <iv>]
Method属性指定了加密方法,定义了两种加密方法:NONE和AES-128。
加密方法NONE表示媒体文件不被加密,如果加密方法是NONE,那么URI和IV属性不允许存在。
加密方法AES-128表示媒体文件使用高级加密标准128位密钥和PKCS7 padding加密。如果加密方法是AES-128,那么对于URI属性,如果存在,则指定获取密钥的方法;对于IV属性,如果存在,则指定使用密钥的初始化向量。
IV属性出现在协议版本2中,新的EXT-X-KEY将会取代任何一个先前的EXT-X-KEY
如果播放列表文件没有包含EXT-X-KEY标签,那么媒体文件将不会被加密。
5.EXT-X-MAP
EXT-X-MAP标签指定了如何获得所需的媒体初始化部分。它的应用于后续的媒体片段,直到下一个该标签再出现。
样例:#EXT-X-MAP:<attribute-list>
它拥有以下几个属性值:
1) URI :它制定了媒体初始化部分资源的位置
2) BYTERANGE: 它制定初始化资源的占用字节大小。(这是一个可选项,如果未指定,则表示整个指定资源都需要)
6.EXT-X-PROGRAM-DATE-TIME
将一个绝对时间或是日期和一个媒体段中的第一个sample相关联,只对下一个meida URI有效,格式如下:
#EXT-X-PROGRAM-DATE-TIME:<YYYY-MM-DDThh:mm:ssZ>
For example:
#EXT-X-PROGRAM-DATE-TIME:2010-02-19T14:54:23.031+08:00