文档章节

IOS 设备m3u8流媒体协议标签解析

孟飞阳
 孟飞阳
发布于 2016/07/17 22:39
字数 1377
阅读 113
收藏 1

1、抓取接口内容

通过配置代理抓包工具与itouch连接后,在代理服务端即可抓取itouch访问优酷服务器过程的包。配置教程:

http://jingyan.baidu.com/article/5bbb5a1b4cb92513eaa1797a.html

抓取成功后,如图:

以下优酷服务端响应itouch播放请求的内容:

#EXTM3U
#EXT-X-TARGETDURATION:12
#EXT-X-VERSION:2
#EXTINF:6,
http://58.211.22.209/67742D3E9A34883C3013EF4071/03000201005355AEB045B30230E416DE8E7AE4-029D-1B46-B233-8E29C448A69F.flv?ts_start=0&ts_end=5.9&ts_seg_no=0&ts_keyframe=1
#EXTINF:6,
http://58.211.22.209/67742D3E9A34883C3013EF4071/03000201005355AEB045B30230E416DE8E7AE4-029D-1B46-B233-8E29C448A69F.flv?ts_start=5.9&ts_end=11.9&ts_seg_no=1&ts_keyframe=1
#EXTINF:6,
http://58.211.22.209/67742D3E9A34883C3013EF4071/03000201005355AEB045B30230E416DE8E7AE4-029D-1B46-B233-8E29C448A69F.flv?ts_start=11.9&ts_end=17.9&ts_seg_no=2&ts_keyframe=1
#EXTINF:12,
http://58.211.22.209/67742D3E9A34883C3013EF4071/03000201005355AEB045B30230E416DE8E7AE4-029D-1B46-B233-8E29C448A69F.flv?ts_start=17.9&ts_end=29.9&ts_seg_no=4&ts_keyframe=1
#EXTINF:12,
http://58.211.22.209/67742D3E9A34883C3013EF4071/03000201005355AEB045B30230E416DE8E7AE4-029D-1B46-B233-8E29C448A69F.flv?ts_start=29.9&ts_end=41.9&ts_seg_no=5&ts_keyframe=1
#EXTINF:12,
http://58.211.22.209/67742D3E9A34883C3013EF4071/03000201005355AEB045B30230E416DE8E7AE4-029D-1B46-B233-8E29C448A69F.flv?ts_start=41.9&ts_end=53.9&ts_seg_no=6&ts_keyframe=1
#EXTINF:12,
http://58.211.22.209/67742D3E9A34883C3013EF4071/03000201005355AEB045B30230E416DE8E7AE4-029D-1B46-B233-8E29C448A69F.flv?ts_start=53.9&ts_end=65.9&ts_seg_no=7&ts_keyframe=1
#EXTINF:12,
http://58.211.22.209/67742D3E9A34883C3013EF4071/03000201005355AEB045B30230E416DE8E7AE4-029D-1B46-B233-8E29C448A69F.flv?ts_start=65.9&ts_end=77.9&ts_seg_no=8&ts_keyframe=1
#EXTINF:12,
http://58.211.22.209/67742D3E9A34883C3013EF4071/03000201005355AEB045B30230E416DE8E7AE4-029D-1B46-B233-8E29C448A69F.flv?ts_start=77.9&ts_end=89.9&ts_seg_no=9&ts_keyframe=1
#EXTINF:12,
http://58.211.22.209/67742D3E9A34883C3013EF4071/03000201005355AEB045B30230E416DE8E7AE4-029D-1B46-B233-8E29C448A69F.flv?ts_start=89.9&ts_end=101.9&ts_seg_no=10&ts_keyframe=1
#EXTINF:12,
http://58.211.22.209/67742D3E9A34883C3013EF4071/03000201005355AEB045B30230E416DE8E7AE4-029D-1B46-B233-8E29C448A69F.flv?ts_start=101.9&ts_end=113.9&ts_seg_no=11&ts_keyframe=1
#EXTINF:12,
http://58.211.22.209/67742D3E9A34883C3013EF4071/03000201005355AEB045B30230E416DE8E7AE4-029D-1B46-B233-8E29C448A69F.flv?ts_start=113.9&ts_end=125.9&ts_seg_no=12&ts_keyframe=1
#EXTINF:4,
http://58.211.22.209/67742D3E9A34883C3013EF4071/03000201005355AEB045B30230E416DE8E7AE4-029D-1B46-B233-8E29C448A69F.flv?ts_start=125.9&ts_end=129.833&ts_seg_no=13&ts_keyframe=1
#EXT-X-ENDLIST

2、解析特殊标签

内容中有一些特殊标签,如#EXTM3U,现在我们来解析这些标签:

编号

标签值

标签意义

备注

1、

#EXTM3U

标识播放列表文件扩展名的格式,如

.M3U8

该标签必须包含在播放列表中。且只能出现1次

2、

#EXT-X-TARGETDURATION

指定媒体段文件最大持续的时间

该标签在播放列表文件中只能出现1次。#EXTINF会标识每个段的具体持续时间,该时间只能小于等于#EXT-X-TARGETDURATION

3、

#EXTINF

指定每个媒体段文件的持续时间。

该标签后必须紧跟段文件的URI地址。

4、

#EXT-X-VERSION

指定播放列表兼容性版本。相关的媒体文件和服务器都必须全部支持该标签指定的版本。

该标签必须包含在播放列表中,且该值在PlayList中只能出现1次

5、

#EXT-X-DISCONTINUITY

该标签指示在当前段文件的段前或段后的连续性

该标签不能出现在主播放列表中

6、

#EXT-X-ENDLIST

该标签指示其后没有媒体文件段了。

该标签可以在播放列表的任意位置出现,但只能出现1次

7、

#EXT-X-BYTERANGE

该标签指示当前的媒体段文件是一个被媒体URI确定的源文件的子范围

该标签只能出现在当前段文件的下一个段文件中。

8、

#EXT-X-MEDIA-SEQUENCE

每个媒体段文件在播放列表中都有一个唯一的顺序值,该标签指示第一个出现的段文件的顺序号。

如果该值是个十进制的整数,则该值不能在减少。一个播放列表文件一个以上的该标签。如果播放列表不包含此标签,则第一段出现的段文件的序号就是0,该标签不能出现在主播放列表中

9、

#EXT-X-KEY

媒体段文件可能会被加密,该标签指示如何解密他们。

该标签应用在当前段文件和下一个段文件之间,多个该标签必须提供同样的解密字符。

10、

#EXT-X-PROGRAM-DATE-TIME

该标签指定与第一个段文件的实例连接的绝对日期和时间。

该标签只能应用在当前段文件的下一个段文件中

11、

#EXT-X-ALLOW-CACHE

该标签值指示客户端是否缓存下一个请求的段文件。

该标签可以在播放列表的任意位置出现,但只能出现1次。

12、

#EXT-X-PLAYLIST-TYPE

该标签值将为播放列表提供多个提示信息。它应用与整个播放列表中。

该标签不能出现在主播放列表

13、

#EXT-X-MEDIA

该标签用于替换播放列表相关的相同的内容。

该标签只能出现在版本4以上的协议中,且不能出现在播放列表中

14、

#Rendition Groups

展示一套具有相同GROUP-ID值得EXT-X-MEDIA,

组内的每个成员必须代表可替代的一段相同内容

15、

#EXT-X-STREAM-INF

该标签指定一个流,这个流可以绑定在播放介绍中。

如绑定编码,带宽值等。

16、

#EXT-X-I-FRAMES-ONLY

该标签指定每个媒体段文件中的关键帧,关键帧被编码为不依赖其他帧。

不能出现在主播放文件

17、

#EXT-X-MAP

该标签指示了如何从每个段文件的包头中获得信息。它应用在每个紧接着的段文件中。

 

18、

#EXT-X-I-FRAME-STREAM-INF

该标签指示一个媒体播放列表文件所包含的的关键帧的帧内容介绍。它是独立的,不应用在主播放列表的特定URI中。

该标签不能出现在媒体播放列表中。

19、

#EXT-X-INDEPENDENT-SEGMENTS

该标签指示所有的媒体段文件都能被解码,它应用在播放列表中的每个段文件中。

协议版本6以上才能支持。

20、

#EXT-X-START

该标签指示播放列表中能被优先播放的点。默认为客户端在刚开始播放时,必须处在这个点。

此关键字在播放列表中只能出现1次。

© 著作权归作者所有

共有 人打赏支持
孟飞阳
粉丝 208
博文 981
码字总数 546304
作品 5
朝阳
个人站长
私信 提问
iOS 直播类APP开发流程解析

1 . 音视频处理的一般流程: 数据采集→数据编码→数据传输(流媒体服务器) →解码数据→播放显示 1、数据采集: 摄像机及拾音器收集视频及音频数据,此时得到的为原始数据 涉及技术或协议: ...

HeroHY
2017/02/10
0
0
sewise player 应用ios时M3U8文件的刷新时间

@jackzhang1204 你好,想跟你请教个问题:sewise player应用于iPhone和iPad的时候,设备的M3U8文件的刷新时间(设备向流媒体服务器请求最新的M3U8文件的时间间隔)总是20s,我换了2个版本的s...

wb-live
2016/06/27
293
0
HTML5视频播放

M3U8:在IOS device和mac上可以用http的方式进行分发,其中playlist标准为由m3u扩展而来的m3u8文件,媒体文件为MPEG2-TS或者AAC文件(audio only)。M3U8分顶级M3U8和二级M3U8, 顶级M3U8主要是...

空心大白菜
2015/03/09
3
0
RTMP、HTTP-FLV、HLS,你了解常见的三大直播协议吗

随着直播行业大火,游戏、乐秀、教育、发布会等直播类产品层出不穷,能够满足各方人员的需求。在直播中,总能在其中找到适合自己的产品内容。喜欢玩游戏的可以看游戏直播,想学点工作技能的,...

又拍云
2018/10/31
0
0
Visual Studio Code 支持 iOS Web 应用调试

微软JavaScript Diagnostics项目经理Kenneth Auchenberg在一篇文章中写道,有一个新的Visual Studio Code扩展,允许开发人员直接在他们的Mac和Windows编辑器上调试在iOS设备上运行的JavaScr...

局长
2016/09/06
3.4K
6

没有更多内容

加载失败,请刷新页面

加载更多

从 for of 聊到 Generator

你能学到什么 对 for of 更深入的理解 iterator 到底是何方神圣? 数组也是对象,为什么不能用 for of 来遍历对象呢? 如何实现对象的 for of? Generator 又是何方神圣? Generator 有什么用呢...

Jack088
24分钟前
1
0
怎么判断go-sql-driver 安装成功

.下载安装   执行下面两个命令:     下载:go get github.com/Go-SQL-Driver/MySQL     安装:go install github.com/Go-SQL-Driver/MySQL   怎么判断go-sql-driver 安装成功 ...

dragon_tech
32分钟前
0
0
刚入职阿里,告诉你真实的职场生活,兼谈P6、P7、P8的等级

一:拿下offer的人,基本上都有什么特征? 二:为什么选择阿里? 三:阿里的工作氛围什么样? 四:阿里的薪资情况? 五:阿里的晋升空间有多大? 最近部门招聘,很多工程师,包括我在内都参与...

java知识分子
45分钟前
4
0

中国龙-扬科
48分钟前
1
0
windows 安装nvm

1、nvw-windows的官网:https://github.com/coreybutler/nvm-windows/releases 2、选择nvm-setup.zip安装 3、配置环境变量 4、检查nvm是否安装成功 使用管理员权限打开一个命令行。输入nvm v...

灰白发
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部