最近接到一个需求,制作独立,自主可控的直播平台
直播分为三个部分,推流端,平台处理,客户端或网页拉流播放,
- 推流,电脑端我选择的是OBS,电脑直播神器,配置简单,该有的功能都有,不该有的功能也有
![OBS推流](https://cdn2.jiawei.xin/wp-content/uploads/2020/09/AHJG1VYI9XS4NI7T-1024x574.png)
![OBS推流设置](https://cdn2.jiawei.xin/wp-content/uploads/2020/09/8Y1567E5L1XYLFH6A.png)
![OBS推流地址](https://cdn2.jiawei.xin/wp-content/uploads/2020/09/8IHIU9U96O65NZM0XL.png)
![OBS推流码率](https://cdn2.jiawei.xin/wp-content/uploads/2020/09/@8O7GHKCLBFOZR7YE.png)
![OBS推流音频](https://cdn2.jiawei.xin/wp-content/uploads/2020/09/WFO7@INXUD1E5G4E7.png)
- 平台端,选择的是现成的方案,Node-Media-Server 在这里贴出地址
https://github.com/illuspas/Node-Media-Server
非常强大,功能很多,基于node,docker也能用,但是中文文档和英文文档不一样,英文文档更全一些…莫名其妙?
中文文档:https://github.com/illuspas/Node-Media-Server/blob/master/README_CN.md
英文文档:https://github.com/illuspas/Node-Media-Server/blob/master/README.md
除此之外,还接入了一些api,一起贴出来(贴出的api在开源项目中并没有,笔者使用的是付费版,付费版链接为:https://www.nodemedia.cn/,api文档:https://www.nodemedia.cn/doc/web/#/5?page_id=24)
api示例代码放在文章最后
![控制面板代码](https://cdn2.jiawei.xin/wp-content/uploads/2020/09/5F00K6QKQS083X1ITF5-1-1024x667.png)
![控制面板代码-获取流](https://cdn2.jiawei.xin/wp-content/uploads/2020/09/2X777LGQJCSYXH130TL-1024x576.png)
![控制面板代码-强制断开流](https://cdn2.jiawei.xin/wp-content/uploads/2020/09/NO4CTF9E8U91@BU7EG-1024x619.png)
- 播放端,最终选择了b站的flv.js,延时也还行,浏览器开销也低
![实时播放](https://cdn2.jiawei.xin/wp-content/uploads/2020/09/6R5CKHOT309L0FQFWQ-1-1024x543.png)
项目地址:https://github.com/bilibili/flv.js
- 最后,应要求,还加入了实时评论功能,用的是奥点云TIS实时消息队列