网络直播电视之M3U8解析篇 (下)
2016-04-16 10:46
676 查看
网络直播电视之M3U8解析篇 (下)
标签: c++C++directshowDirectshowDirectShow网络直播视频2012-12-26 13:04 43004人阅读 评论(8) 收藏 举报
分类:
网络播放器(9)
版权声明:本文为博主原创文章,未经博主允许不得转载。
在上一篇文章中讲述了网络直播电视的M3U8解析和其中的关键字段。本章我将对我遇见到的不同数据源的M3U8文件进行列举和分析。
第一种:ts片段地址为文件名称,下载地址为:http:\\www.XXX.com\01\XX\1.m3u8
[html] view
plain copy
#EXTM3U
#EXT-X-TARGETDURATION:8
#EXT-X-MEDIA-SEQUENCE:92595
#EXTINF:8,
20121120T182851-04-92595.ts
#EXTINF:8,
20121120T182851-04-92596.ts
#EXTINF:8,
20121120T182851-04-92597.ts
#EXTINF:8,
20121120T182851-04-92598.ts
#EXTINF:8,
20121120T182851-04-92599.ts
#EXTINF:8,
20121120T182851-04-92600.ts
#EXTINF:8,
20121120T182851-04-92601.ts
#EXTINF:8,
20121120T182851-04-92602.ts
那么获取到 20121120T182851-04-92595.ts 片段地址就为http:\\www.XXX.com\01\XX\20121120T182851-04-92595.ts。
类似情况,如下:
[cpp] view
plain copy
#EXTM3U #EXT-X-ALLOW-CACHE:NO #EXT-X-TARGETDURATION:3 #EXT-X-MEDIA-SEQUENCE:6198 #EXTINF:3, aac749f7425bf07f_13b4b0fd1b7_6198.ts?wsApp=HLS&wsMonitor=-1&wsHost=rtmp.cntv.lxdns.com #EXTINF:3, aac749f7425bf07f_13b4b0fe1b8_6199.ts?wsApp=HLS&wsMonitor=-1&wsHost=rtmp.cntv.lxdns.com #EXTINF:3, aac749f7425bf07f_13b4b0ffa08_6200.ts?wsApp=HLS&wsMonitor=-1&wsHost=rtmp.cntv.lxdns.com
第二种:ts片段地址为目录结构,下载地址为:http:\\www.XXX.com\01\XX\1.m3u8。
[html] view
plain copy
#EXTM3U
#EXT-X-ALLOW-CACHE:NO
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:9190381
#EXTINF:10,
/timeshift/63/20121129165010.ts
#EXTINF:10,
/timeshift/63/20121129165020.ts
#EXTINF:10,
/timeshift/63/20121129165030.ts
那么获取到/timeshift/63/20121129165010.ts片段地址就为http:\\www.XXX.com\01\XX/timeshift/63/20121129165010.ts。
第三种:ts片段地址为目录结构,但是和m3u8下载地址目录重叠。下载地址为:http:\\www.XXX.com\01\timeshift\63\1.m3u8。
[html] view
plain copy
#EXTM3U
#EXT-X-ALLOW-CACHE:NO
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:9190381
#EXTINF:10,
/timeshift/63/20121129165010.ts
#EXTINF:10,
/timeshift/63/20121129165020.ts
#EXTINF:10,
/timeshift/63/20121129165030.ts
将冲突的目录剔除,那么获取到/timeshift/63/20121129165010.ts片段地址就为http:\\www.XXX.com\01\XX/timeshift/63/20121129165010.ts。
第四种:ts片段地址为完整的片段下载地址,下载地址为:http:\\www.XXX.com\01\XX\1.m3u8。
[html] view
plain copy
#EXTM3U
#EXT-X-ALLOW-CACHE:NO
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:6297202
#EXTINF:10,
http://202.108.17.170:80/ipad/160_12784_1758/20121127185340.ts?userid=2221281760225887_160_12784_1758
#EXTINF:10,
http://202.108.17.170:80/ipad/160_12784_1758/20121127185350.ts?userid=2221281760225887_160_12784_1758
#EXTINF:10,
http://202.108.17.170:80/ipad/160_12784_1758/20121127185400.ts?userid=2221281760225887_160_12784_1758
这种情况下下载地址就不需要拼接了。
直播不同的数据得到的片段下载地址也就基本维持这四种情况,当然林子大了什么鸟都有。也说不定会碰见更奇特的呢。呵呵...
总结:
1、“http”开头的一定是全下载地址,不需要进行拼接处理的。也些“二杆子源”,会将写成“HTTP”或“Http”等等。所以我们需要先转成小写在进行匹配,当然下载地址的http还需为小写。
2、带有目录结构的源,同样有些或是这样的“timeshift/63/2012129165020.ts”,前面不带“/”。注意哦!
顶
0
踩
0
上一篇网络直播电视之M3U8解析篇(上)
下一篇如何定义TS流的空数据包
我的同类文章
相关文章推荐
- The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
- 【金融支付】名词:支付账户、备付金、网络支付、银行卡清算、贷记卡、代扣、代付
- 《网络工程师》 Part5 无线通信网
- TCP/IP卷一(第四章学习)
- C# 通俗解释网络通信中的“报头”
- CentOS网络接口文件详解(ifcfg-eth)
- AFNetworking网络请求networkactivityindicator不显示
- maven设置http代理
- IOS学习笔记(四)之ASIHTTPRequest
- htmlunit.WebClient 和 client.HttpClients 的比对
- Muduo网络库源码分析(五)Acceptor和TcpServer类
- web day8 web入门(软件体系,tomcat,HTTP协议)
- linux 防火墙设置(摘自网络)
- 网络各层协议简介
- iOS数据库离线缓存思路和网络层封装——网络请求基类封装
- iOS数据库离线缓存思路和网络层封装——数据缓存机制Model封装
- iOS数据库离线缓存思路和网络层封装——数据缓存操作封装
- 自己封装的网络请求
- Python实现简单的HTTP服务器(支持文件上传下载)
- 网络编程--HTTP协议访问网络