网络直播电视之M3U8解析篇 (下)
在上一篇文章中讲述了网络直播电视的M3U8解析和当中的keyword段。本章我将对我遇见到的不同数据源的M3U8文件进行列举和分析。
第一种:ts片段地址为文件名,下载地址为:http:\\www.XXX.com\01\XX\1.m3u8
#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。
类似情况,例如以下:
#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。
#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。
#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。
#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”,前面不带“/”。注意哦!
网络直播电视之M3U8解析篇 (下)的更多相关文章
- 《Linux大棚命令百篇下》网络篇的总结
本文是<Linux大棚命令百篇下>网络篇的总结 ping -c 指定数量,在windows下会自动停止,linux下会一直ping下去 -q 简短报告 -s 指定每次ping的数据包大小, ...
- ios 网络数据下载和JSON解析
ios 网络数据下载和JSON解析 简介 在本文中笔者将要给大家介绍ios中如何利用NSURLConnection从网络上下载数据,如何解析下载下来的JSON数据格式,以及如何显示数据和图片的异步下载 ...
- iOS之网络数据下载和JSON解析
iOS之网络数据下载和JSON解析 简介 在本文中笔者将要给大家介绍IOS中如何利用NSURLconnection从网络上下载数据以及如何解析下载下来的JSON数据格式,以及如何显示数据和托图片的异步 ...
- Google官方网络框架-Volley的使用解析Json以及加载网络图片方法
Google官方网络框架-Volley的使用解析Json以及加载网络图片方法 Volley是什么? Google I/O 大会上,Google 推出 Volley的一个网络框架 Volley适合什么场 ...
- Linux内核很吊之 module_init解析 (下)【转】
转自:https://blog.csdn.net/richard_liujh/article/details/46758073 版权声明:本文为博主原创文章,未经博主允许不得转载. https://b ...
- golang ffmpeg 做网络直播
最近在公司做在线视频转码的工作,研究了下ffmpeg 最后直接研究了下网络直播,我是在我自己的mac 上面测试的,效果,还可以,先看看效果图吧 ffmpeg 我是通过brew安装 的,这步就略了 VL ...
- 《软件定义网络:SDN与OpenFlow解析》
<软件定义网络:SDN与OpenFlow解析> 基本信息 原书名:SDN: Software Defined Networks 原出版社: O'Reilly Media 作者: (美)Th ...
- Retrofit + RxJava + OkHttp 让网络请求变的简单-基础篇
https://www.jianshu.com/p/5bc866b9cbb9 最近因为手头上的工作做完了,比较闲,想着做一些优化.看到以前用的那一套网络框架添加一个请求比较麻烦,并且比较难用,所以想改 ...
- Gson全解析(下)-Gson性能分析
前言 在之前的学习中,我们在Gson全解析(上)Gson使用的基础到分别运用了JsonSerializer和JsonDeserializer进行JSON和java实体类之间的相互转化. 在Gson全解 ...
随机推荐
- HDU 5067-Harry And Dig Machine(DFS)
Harry And Dig Machine Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Ot ...
- [小工具] Command-line CPU Killer(附源码及下载链接)
博主有次在拆卸自己的笔记本电脑后,发现电脑如果静置时间长了有时会重启,但奇怪的是当我自己在电脑前工作的时候从来没有重启过.据此推测可能 CPU 完全空闲的时候风扇完全停转了,虽然 CPU 温度不高,但 ...
- Java基础知识强化58:经典排序之二叉树排序(BinaryTreeSort)
1. 二叉树排序 二叉树排序的描述也是一个递归的描述, 所以二叉树排序的构造自然也用递归的: 二叉排序树或者是一棵空树,或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于它 ...
- CSS选择器列表
h1 类型选择器 选择元素的一个类型 .className 类选择器 以class属性的值来选择元素,可以在一个页面中出现多个 #idName ID选择器 以id属性的值来选择元素,在页面中是唯一的, ...
- iframe顶部跳转跨域问题
$("#button").on("click", function () { // top.location.locatio ...
- Swift中对计算属性的理解和对之前的补充
这个功能的重点作用应该是在计算上. 对于一般的属性,要么直接存一个,要么直接读一个,计算属性则可以根据所设置内容,进行一些修改或计算之类的, 比如: import UIKit class sample ...
- C#中的委托是什么?
概述 委托类似C++中的函数指针,但是又有所不同.在C++中,函数指针不是类型安全的,它指向的是内存中的某一个位置,我们无法判断这个指针实际指向什么,对于参数和返回类型就更难以知晓.而.NET的委托则 ...
- 你好,C++(1)C++是什么?C++的“前世今生”
The world is built on C++. ——Herb Sutter the chairman of the ISO C++ standards committee and chief n ...
- CentOS 5.5安装图解教程
说明:实际生产环境中,CentOS 5.5这个版本相当稳定,而且硬件兼容性也很好,是很多服务器装机者的首选系统,下面介绍CentOS 5.5的具体安装过程 说明:实际生产环境中,CentOS 5. ...
- uc/os 笔记(转)
1.uC/OS-II中使用互斥信号对象应该注意 互斥信号对象(Mutual Exclusion Semaphore)简称Mutex,是uC/OS-II的内核对象之一,用于管理那些需要独占访问的资源,并 ...