m3u8协议

m3u8文件是用文件方式对媒体文件进行描述,由一些列标签组成。

m3u8文件示例1:单码率适配流

 1 #EXTM3U
 2 #EXT-X-VERSION:3
 3 #EXT-X-ALLOW-CACHE:YES
 4 #EXT-X-MEDIA-SEQUENCE:2
 5 #EXT-X-TARGETDURATION:16
 6 #EXTINF:14.357, no desc
 7 livestream-2.ts
 8 #EXTINF:15.617, no desc
 9 livestream-3.ts
 10 #EXTINF:14.358, no desc
 11 livestream-4.ts
 12 #EXTINF:15.618, no desc
 13 livestream-5.ts
 14 #EXTINF:11.130, no desc
 15 livestream-6.ts

该文件只是一个简单的Media PlayerList

1.其中#EXTM3U:

每个 m3u8 ⽂件第一行必须是这个 tag

2.#EXT-X-VERSION:m3u8文件版本号,⽐如#EXT-X-VERSION:3。

3. #EXTINF :指定每个媒体段(ts)的持续时间,这个仅对其后⾯的 URI 有效,每两个媒体段 URI 间被这个 tag 分隔开。

4. #EXT-X-TARGETDURATION :指定当前视频流中的单个切⽚(即 ts)⽂件的最⼤时长(秒)。所以 #EXTINF 中指定的时间⻓度必须⼩于或是等于这个最⼤值。这个 tag 在整个 Playlist ⽂件中只能出现一次(在嵌套的情况下,⼀般有真正ts url 的 m3u8 才会出现该 tag)。

5. #EXT-X-MEDIA-SEQUENCE : 每⼀个 media URI 在 Playlist 中只有唯⼀的序号,相邻之间序号 +1。 格式为: #EXT-X #EXT-X-MEDIA-SEQUENCE: 。⼀个 media URI 并不是必须要包含的,如果没 有,默认为 0.

6. #EXT-X-PLAYLIST-TYPE :提供关于 Playlist 的可变性的信息,这个对整个 Playlist 文件有效, 是可选的,格式如下: #EXT-X-PLAYLIST-TYPE: VOD,即为点播视频,服务器不能改变 Playlist ⽂件,换句话说就是该视频全部的 ts ⽂件已经被生成好了EVENT,就是实时⽣成 m3u8 和 ts 文件。服务器不能改变或是删除 Playlist ⽂件中的任何部分,但是可以向该⽂件中增加新的一⾏内容。它的索引⽂件一直处于动态变化中,播放的时候需要不断下载⼆级 index文件。

7. #EXT-X-ENDLIST : #EXT-X-ENDLIST 表示 m3u8 文件的结束,live m3u8 没有该 tag。它可以在 Playlist 中任意位置出现,但是只能出现一个,格式如下:#EXT-X-ENDLIST

示例文件2:

1 #EXTM3U
 2 #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1280000
 3 http://example.com/low.m3u8
 4 #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2560000
 5 http://example.com/mid.m3u8
 6 #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=7680000
 7 http://example.com/hi.m3u8
 8 #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=65000,CODECS="mp4a.40.5"
 9 http://example.com/audio-only.m3u8

这是包含多种比特率的Master PlayerList。该文件是一个实际使用中的顶级m3u8文件,该文件中又定义了多个二级文件。顶级m3u8文件主要是做码率适配的,二级m3u8才是真正的切片文件,客户端会默认选择码率最高的请求,如果发现码率达不到,会请求降低码率的刘。客户端拿到二级m3u8文件后,会继续请求里面的文件,这样就可以进行播放了。

#EXT-X-STREAM-INF :指定⼀个包含多媒体信息的 media URI 作为 Playlist,⼀般做 m3u8 的嵌 套使⽤,它只对紧跟后⾯的 URI 有效,格式如下:#EXT-X-STREAM-INF:<attribute-list>

        常用的属性如下:

        BANDWIDTH:带宽,必须有

        PROGRAM-ID:该值是⼀个十进制整数,唯⼀地标识⼀个在 Playlist ⽂件范围内的特定的描述。 ⼀个 Playlist 文件中可能包含多个有相同 ID 的此 tag

        CODECS:指定流的编码类型,不是必须的

        RESOLUTION:分辨率 AUDIO:这个值必须和 AUDIO 类别的 "EXT-X-MEDIA" 标签中 "GROUP-ID" 属性值相匹配

        VIDEO:同上

https://xxetb.xetslk.com/s/13him9

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值