随着假期的延长,很多工作都改成了线上办公,所以直播就成为了一个全民的话题。

直播的软件有很多,会议类型的,教育类型的,各种娱乐平台,都有免费直播的方式。

常见的软件有,钉钉,企业微信,腾讯会议,这些是办公类型的软件,比如说,斗鱼,战旗,火猫,虎牙,bilibili等,都是娱乐性直播平台,而且web端直接就可以播放,但是移动web端可能不是特别友好。

由于这些软件都会有一些弊端,比如办公软件必须下载才能使用,娱乐性直播平台没有频道加密功能,不具有局限性,所以如果H5播放器直接可以播放直播,那么兼容性和自由性就会得到很好的发挥。

先了解一下,直播协议,几天的探索总结如下:

推流:rtmp

拉流:rtmp、hls、httpflv

延迟对比:rtmp=httpflv>hls

刚开始推流的时候,我选择了七牛云的云直播服务,因我这个博客的对象储存用的就是七牛家的,设置过程很简单,按步骤解析域名就可以,只不过域名需要网安备案,所以花了两天时间进行了备案(不是ICP备案)。设置好之后,推流也很成功,可以在推流页面看见我的实时画面,但是这只是刚刚开始。

因为有一个重要的因素:播放器

H5 video标签原生的 播放器是播放不了这些格式的,所以寻找播放器,是一个难题,最开始研究了一下七牛提供的播放器(https://www.qiniu.com/products/player),试了一下总有BUG出现,比如说时间戳总出现BUG

然后开始搜索各种播放器,各种尝试,最后发现还是video.js的播放器比较好用,所以决定用video.js,但是这3种拉流格式,只有hls可以H5直接播放,其他的都需要flash支持,这样的话,移动端就没办法播放了,所以,拉流格式只能选择了hls,因为网络上关于这些的文章也不是很多,也没有一个具体的布局,只能自己一点一点慢慢折腾,但是hls格式的延迟确实很长,大概20左右,但是没有办法,为了适应移动web端,只能这样,video.js源码地址(https://github.com/zxczxc3787/video.js-),欢迎测试。

m3u8格式,有很多直播源,所以大家可以找一些直播源本地测试就可以,无需在服务器上折腾,所以说到直播源,我就想到了斗鱼,虎牙,战旗,等这些直播的直播源,因为这些平台也是推拉流的形式展现的直播,搜索了一下,原来早就有人研究这些直播源,抓取各大平台直播源的技术早就有讲解了,可以自己查找。

这里举例斗鱼直播源抓取的方法:首先找一个正在直播的直播间

 

比较爱看智勋就用智勋直播间举例吧

F12查询源码,如图所示

 

然后对这个链接进行修改:

http://hls1a.douyucdn.cn/live/312212rIzT1XPHo7_2000/playlist.m3u8?wsSecret=1ae4a99413de558cf5a95a0ed58f2162&wsTime=1581829703&token=h5-douyu-0-312212-dd35e4077d303f122b4f70269f8286f5&did=b0a9a4a302a0ef42c5662b7800061531&origin=all&vhost=play2

1.删掉尾部所有部分:

http://hls1a.douyucdn.cn/live/312212rIzT1XPHo7_2000

2.hls1a改成tx2play1:

http://tx2play1.douyucdn.cn/live/312212rIzT1XPHo7_2000

3.结尾加.flv或者.m3u8:

http://tx2play1.douyucdn.cn/live/312212rIzT1XPHo7_2000.flv (_2000是清晰度,可以删掉为默认最高清晰度)

http://tx2play1.douyucdn.cn/live/312212rIzT1XPHo7.m3u8

测试:

 

就是这么简单。

提示:学习使用,请勿商用,违者后果自负

flv格式说明:  由于H5只能用m3u8格式所以flv格式需要flash支持,但是在github上,偶然发现了,flv.js,是b站开源的播放器,支持flv在H5直接播放,无需flash支持,这就很开心了,经过折腾,发现了一个别人挺好的测试源码(https://github.com/zxczxc3787/flv.js)欢迎测试。

而且播放器实用性也很高,比原生video.js好用(因为我也是小白,所以不会开发)