网络直播电视之M3U8解析篇 (下)

346 篇文章 0 订阅
317 篇文章 0 订阅

网络直播电视之M3U8解析篇 (下)

标签: c++C++directshowDirectshowDirectShow网络直播视频
  43004人阅读  评论(8)  收藏  举报
  分类:
 


       在上一篇文章中讲述了网络直播电视的M3U8解析和其中的关键字段。本章我将对我遇见到的不同数据源的M3U8文件进行列举和分析。

     第一种:ts片段地址为文件名称,下载地址为:http:\\www.XXX.com\01\XX\1.m3u8

[html]  view plain  copy
  1. #EXTM3U  
  2. #EXT-X-TARGETDURATION:8  
  3. #EXT-X-MEDIA-SEQUENCE:92595  
  4. #EXTINF:8,  
  5. 20121120T182851-04-92595.ts  
  6. #EXTINF:8,  
  7. 20121120T182851-04-92596.ts  
  8. #EXTINF:8,  
  9. 20121120T182851-04-92597.ts  
  10. #EXTINF:8,  
  11. 20121120T182851-04-92598.ts  
  12. #EXTINF:8,  
  13. 20121120T182851-04-92599.ts  
  14. #EXTINF:8,  
  15. 20121120T182851-04-92600.ts  
  16. #EXTINF:8,  
  17. 20121120T182851-04-92601.ts  
  18. #EXTINF:8,  
  19. 20121120T182851-04-92602.ts  

    那么获取到 20121120T182851-04-92595.ts 片段地址就为http:\\www.XXX.com\01\XX\20121120T182851-04-92595.ts。

类似情况,如下:

[cpp]  view plain  copy
  1. #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
  1. #EXTM3U  
  2. #EXT-X-ALLOW-CACHE:NO  
  3. #EXT-X-TARGETDURATION:10  
  4. #EXT-X-MEDIA-SEQUENCE:9190381  
  5. #EXTINF:10,  
  6. /timeshift/63/20121129165010.ts  
  7. #EXTINF:10,  
  8. /timeshift/63/20121129165020.ts  
  9. #EXTINF:10,  
  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
  1. #EXTM3U  
  2. #EXT-X-ALLOW-CACHE:NO  
  3. #EXT-X-TARGETDURATION:10  
  4. #EXT-X-MEDIA-SEQUENCE:9190381  
  5. #EXTINF:10,  
  6. /timeshift/63/20121129165010.ts  
  7. #EXTINF:10,  
  8. /timeshift/63/20121129165020.ts  
  9. #EXTINF:10,  
  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
  1. #EXTM3U  
  2. #EXT-X-ALLOW-CACHE:NO  
  3. #EXT-X-TARGETDURATION:10  
  4. #EXT-X-MEDIA-SEQUENCE:6297202  
  5. #EXTINF:10,  
  6. http://202.108.17.170:80/ipad/160_12784_1758/20121127185340.ts?userid=2221281760225887_160_12784_1758  
  7. #EXTINF:10,  
  8. http://202.108.17.170:80/ipad/160_12784_1758/20121127185350.ts?userid=2221281760225887_160_12784_1758  
  9. #EXTINF:10,  
  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
我的同类文章
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值