m3u8文件内容剖析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
m3u8⽂件内容剖析
转⾃
m3u8 笔记:
m3u8格式⽤来流播放,直播流或者点播形式,⽬的是实现时实性及保密性它会不让你获取它的视频所在地址,所以你做视频软件的
时候就不能实现下载的功能。
其实⼤部分我们做视频推荐类的应⽤时候,使⽤的视频都是从优酷及⼟⾖上获取的,其实它们提供了开放的API,可以获取视频地址
以及视频的多个标签,视频的同类视频推荐,视频同类⽬下的视频等,开发者可以去申请。
优酷视频开放平台:
⼟⾖视频开放平台:
在IOS device和mac上可以⽤http的⽅式进⾏分发,其中playlist标准为由m3u扩展⽽来的m3u8⽂件,媒体⽂件为MPEG2-TS或者AAC⽂件(audio only)。
m3u8⽂件有两种应⽤场景
multi bitrate adaptive streaming
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1280000
/low.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2560000
/mid.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=7680000
/hi.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=65000,CODECS="mp4a.40.5"
/audio-only.m3u8
sbr bitrate adaptive streaming
#EXTM3U
#EXT-X-TARGETDURATION:5220
#EXTINF:5220,
/entire.ts
#EXT-X-ENDLIST
rfc doc:
m3u8 ⽂件是m3u⽂件的扩展。
在该rfc中定义了扩展的关键字:
其中:
#EXT-X-TARGETDURATION
定义每个TS的最⼤的duration。
#EXT-X-MEDIA-SEQUENCE
定义当前m3u8⽂件中第⼀个⽂件的序列号,每个ts⽂件在m3u8⽂件中都有固定唯⼀的序列号,该序列号⽤于在MBR
时切换码率进⾏对齐。
#EXT-X-KEY
定义加密⽅式和key⽂件的url,⽤于取得16bytes的key⽂件解码ts⽂件。
属性:
METHOD
URL
#EXT-X-PROGRAM-DATE-TIME
第⼀个⽂件的绝对时间
#EXT-X-ALLOW-CACHE
是否允许cache。
#EXT-X-ENDLIST
表明m3u8⽂件的结束。
live m3u8没有该tag。
#EXT-X-STREAM-INF
属性:
BANDWIDTH
PROGRAM-ID
CODECS
#EXT-X-DISCONTINUITY
当遇到该tag的时候说明以下属性发⽣了变化:
file format
number and type of tracks
encoding parameters
encoding sequence
timestamp sequence
#EXT-X-VERSION。