“HLS是由苹果公司提出的基于HTTP的流媒体网络传输协议,是苹果公司QuickTime X和iPhone软件系统的一部分,因此苹果系统自带的浏览器Safari都是天然支持HLS播放的,而其他的浏览器则默认不能直接播放HLS视频链接。借助于一些第三方扩展,Chrome、Firefox浏览器也是可以播放HLS视频源的,本文将介绍如何在Chrome、Firefox浏览器中安装插件播放HLS视频源。”
m3u8直播源介绍
之前在收集电视直播源的过程中发现现在很多电视直播源都是HLS(HTTP Live Streaming)格式的,RTMP、RTSP、FLV格式的也有,但是相对于HLS格式来说数量较少。HLS是由苹果公司提出的基于HTTP的流媒体网络传输协议,是苹果公司QuickTime X和iPhone软件系统的一部分,因此苹果系统自带的浏览器Safari都是天然支持HLS播放的,而其他的浏览器则默认不能直接播放HLS视频链接。借助于一些第三方扩展,Chrome、Firefox浏览器也是可以播放HLS视频源的,本文将介绍如何在Chrome、Firefox浏览器中安装插件播放HLS视频源。
m3u8文件是HLS视频源的静态索引文件,包含了完整的URL列表。
如之前收集的直播源:高清直播-playlist.m3u8
其内容有如下的格式:
#EXTM3U
#EXTINF:-1,CCTV3综艺
http://mgzb.live.miguvideo.com:8088/ws_w/2018/cctv3/1000/index.m3u8?msisdn=0406951654849&mdspid=&spid=699004&netType=1&sid=2200291045&pid=2028597139×tamp=20190407093944&SecurityKey=20190407093944&resourceId=&resourceType=&Channel_ID=1004_10010001005&ProgramID=609017193&ParentNodeID=-99&client_ip=122.114.220.175&assertID=2200291045&mvid=&mcid=&mpid=&encrypt=12215ff335f3f2f578483c8c7ad6a703
#EXTINF:-1,东方电影高清
http://mgzb.live.miguvideo.com:8088/wd_r2/ocn/dongfangdianyinghd/1200/index.m3u8?msisdn=0415057547053&mdspid=&spid=800033&netType=1&sid=5500186755&pid=2028597139×tamp=20190407094114&SecurityKey=20190407094114&resourceId=&resourceType=&Channel_ID=1004_10010001005&ProgramID=623674834&ParentNodeID=-99&client_ip=122.114.220.175&assertID=5500186755&mvid=&mcid=&mpid=&encrypt=deb696f851d90f8312bab3029e40c0ce
#EXTINF:-1,CCTV8电视剧
http://121.31.30.90:8085/ysten-business/live/cctv-8/1.m3u8
使用浏览器或者curl命令行对其中的CCTV8 视频源URL进行访问,可以下载到如下内容的文件:
#EXTM3U
#EXT-X-VERSION:4
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio",NAME="und",DEFAULT=YES,AUTOSELECT=YES,URI="04.m3u8"
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=825142,RESOLUTION=480x360,AUDIO="audio"
03.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1575098,RESOLUTION=640x480,AUDIO="audio"
02.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2074729,RESOLUTION=640x480,AUDIO="audio"
01.m3u8
以上m3u8文件中,每一行仍然是一个URL,只不过是相对URL,对其中的03.m3u8这个相对URL获取到绝对URL路径: http://121.31.30.90:8085/ysten-business/live/cctv-8/03.m3u8
进行访问可以得到如下内容:
#EXTM3U
#EXT-X-MEDIA-SEQUENCE:7626166
#EXT-X-TARGETDURATION:10
#EXT-X-VERSION:3
#EXTINF:10,2096012
http://121.31.30.90:85/live/cctv-8/cctv-8_20190422_093650_093700.ts
#EXTINF:10,2101652
http://121.31.30.90:85/live/cctv-8/cctv-8_20190422_093700_093710.ts
#EXTINF:10,2108232
http://121.31.30.90:85/live/cctv-8/cctv-8_20190422_093710_093720.ts
#EXTINF:10,2113120
http://121.31.30.90:85/live/cctv-8/cctv-8_20190422_093720_093730.ts
#EXTINF:10,2073828
http://121.31.30.90:85/live/cctv-8/cctv-8_20190422_093730_093740.ts
#EXTINF:10,2141320
http://121.31.30.90:85/live/cctv-8/cctv-8_20190422_093740_093750.ts
#EXTINF:10,2061232
http://121.31.30.90:85/live/cctv-8/cctv-8_20190422_093750_093800.ts
#EXTINF:10,2099772
http://121.31.30.90:85/live/cctv-8/cctv-8_20190422_093800_093810.ts
可以看到,现在的m3u8文件中每一行的URL变成了ts视频流的URL,对其中的ts URL进行访问是可以获取到真实的视频文件的。
浏览器插件安装
了解了m3u8文件的具体内容后,找一款能解析m3u8文件的浏览器插件就可以了,Native HLS Playback就是其中的一个,在Chrome浏览器和Firefox浏览器中都有对应插件提供。
Chrome浏览器
Chrome浏览器在web app store中搜索Native HLS Playback,找到对应插件进行安装:
插件安装完成后打开 http://121.31.30.90:8085/ysten-business/live/cctv-8/03.m3u8 进行测试:
Firefox浏览器
Firefox浏览器在add-ons中搜索Native HLS Playback,找到对应插件进行安装:
插件安装完成后打开 http://121.31.30.90:8085/ysten-business/live/cctv-8/03.m3u8 进行测试: