What is M3U8

M3U8是一种可扩展的播放列表文件格式,它是一个包含UTF-8编码文字的m3u播放列表。这种格式被用来作为HTTP Live Stream索引文件的格式。索引文件里面包含真正的视频连接:

#EXTM3U

#EXT-X-TARGETDURATION:5220

#EXTINF:5220,

http://media.example.com/1.ts

#EXT-X-ENDLIST

也可以嵌套使用于多码流的适配:



    #EXTM3U

    #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1280000

    http://example.com/low.m3u8

    #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2560000

    http://example.com/mid.m3u8

    #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=7680000

    http://example.com/hi.m3u8

    #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=65000,CODECS="mp4a.40.5"

    http://example.com/audio-only.m3u8
  • 关键字含义
    EXT-X-TARGETDURATION:定义每个TS的最大的duration;
    EXT-X-MEDIA-SEQUENCE:定义当前m3u8文件中第一个文件的序列号,每个ts文件在m3u8文件中都有固定唯一的序列号;
    EXT-X-KEY:定义加密方式和key文件的url,用于取得16bytes的key文件解码ts文件;
    EXT-X-PROGRAM-DATE-TIME:第一个文件的绝对时间;
    EXT-X-ALLOW-CACHE:是否允许cache;
    EXT-X-ENDLIST:表明m3u8文件的结束,直播 m3u8没有该tag;
    EXT-X-STREAM-INF:属性值(BANDWIDTH、PROGRAM-ID、CODECS )分别表示(指定码率、唯一ID、指定流的编码类型);

多级M3U8栗子呈上

一级的M3U8:

#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=201273221265,BANDWIDTH=358400
test1.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=201273221265,BANDWIDTH=972800
test2.m3u8

在一级m3u8中定了test1.m3u8和test2.m3u8两个二级文件,假设播放器选了test1.m3u8,获取其内容如下:

#EXTM3U
#EXT-X-VERSION:1
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:3,
1-4.ts
#EXTINF:8,
1-6.ts
#EXTINF:8,
1-8.ts
#EXTINF:8,
1-10.ts
#EXT-X-ENDLIST

播放器拿到上述内容后,进一步请求里面的ts链接,就可以开始播放了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值