m3u and m3u8
1. M3U8也是一种M3U,只是它的编码格式是UTF-8格式。M3U用Latin-1字符集编码。
2. m3u8分顶级m3u8和二级m3u8, 顶级m3u8主要是做多码率适配的, 二级m3u8才是真正的切片文件,客户端默认会
首先选择码率最高的请求,如果发现码率达不到,会请求郊低码率的流(这个就不太清楚是一级还是二级了)
3. m3u8文件有两种应用场景:多码率适配流和单码率适配流(就当前项目而言应该用多码流)
----------------------------------------------------------
M3U文件实例
顶级m3u8文件:
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=400000
exam20140401.m3u8
exam20140402.m3u8
二级M3U8文件:
#EXTM3U
#EXT-X-TARGETDURATION:11
#EXT-X-MEDIA-SEQUENCE:1
#EXTINF:11,
exam_2014032900024_400&startoffset=0&endoffset=10838764/1.ts
#EXTINF:10,
exam_2014032900024_400&startoffset=10838764&endoffset=20659884/2.ts
#EXTINF:10,
exam_2014032900024_400&startoffset=20659884&endoffset=31139944/3.ts
#EXTINF:11,
exam_2014032900024_400&startoffset=31139944&endoffset=41262804/4.ts
#EXTINF:9,
exam_2014032900024_400&startoffset=41262804&endoffset=0/5.ts
#EXT-X-ENDLIST
或者
#EXTM3U
#EXT-X-MEDIA-SEQUENCE:1477958
#EXT-X-ALLOW-CACHE:YES
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:10
#EXTINF:10.000,
http://koumen.live.cntv.cn/i/cctv9_1@139238/segment1477958_500_av-p.ts
#EXTINF:10.000,
http://koumen.live.cntv.cn/i/cctv9_1@139238/segment1477959_500_av-p.ts
#EXTINF:10.000,
http://koumen.live.cntv.cn/i/cctv9_1@139238/segment1477960_500_av-p.ts
-----------------------------------------------------------------------
其中:
#EXTM3U 标头 – 此句必须在文件的第一行!
PROGRAM-ID 唯一ID(可以用系统当前时间设定)
BANDWIDTH 指定码率(不清楚)
CODECS 指定流的编码类型#EXT-X-DISCONTINUITY()(不清楚)
#EXT-X-TARGETDURATION: 定义每个TS的最大的持续时间(说明下一次请求更新列表的时间是10s以后)
#EXT-X-MEDIA-SEQUENCE: 定义当前m3u8文件中第一个文件的序列号,每个ts文件在m3u8文件中都有固定唯一的序列号
,该序列号用于在MBR时切换码率进行对齐
#EXT-X-ALLOW-CACHE: 列表是否允许缓存
#EXT-X-VERSION: M3U版本,不重要
#EXTINF:10, : 说明下面这个片段时长10s
#EXT-X-KEY: 定义加密方式和key文件的url,用于取得16bytes的key文件解码ts文件