IPC网络摄像机rtsp视频流web上H5播放方法
https://blog.csdn.net/weixin_42538493/article/details/106113325
最近因为项目需要,预研了一下rtsp视频流在web上通过H5播放的解决方案,通过搜索和整理,最终确定一个比较理想且实现较为简单的方案:websocket rtsp proxy + streamdian.js播放器组合;
1、H5播放器使用开源的streamdian.js,该公司开源了播放器,不过只实现了aac+h264视频流的解码,对于大多数应用场景来说,基本够用;
2、streamdian公司发布的后端websocket rtsp proxy是收费的,根据媒体代理数进行计费,计费单位$,对我大天朝来说,有些贵了,不过这个东东并不复杂,完全可以自己实现,进行替换;
好了,废话不多说,直接上干货,为了实现websocket rtsp proxy服务器,首先需要实现一个websocket proxy,github上直接找到代码:ws-tcp-proxy项目;然后将它改造成websocket rtsp proxy,如果对rtp over rtsp媒体传输方式比较熟悉的话,实现起来也比较容易;最后需要搭建webServer并且支持反向代理即可,这里采用Nginx来搭建;
完成了上述开发后,经过验证,自己开发的websocket rtsp proxy可以完美替换收费的streamdian服务器,播放器采用streamdian.js开源免费播放器;完整的代码在文末给出,并对代码做一些必要说明:
1、本代码仅是demo代码,仅仅实现了方案验证,本人不对因代码开源可能产生的任何商业纠纷负法律责任;
2、demo代码可分别在Windows和Linux上编译和运行;默认给出了Windows版本,如果需要在Linux上运行,则需要在Linux上编译wsp即可,Nginx也安装一个Linux版本,将Nginx配置文件和页面复制过去即可,我分别在Windows server 2019和CentOS7.5上验证了可以稳定运行;
3、如果你想将它应用于你的商用项目,你可能需要优化wsp(websocket rtsp proxy)服务器,解决可能的内存泄漏问题,以及实现多线程,当然多进程也可以;因为我的商用版本代码不能上传到这里,^v^。
4、使用方法:直接解压后,启动Nginx.exe和wsp.exe即可,无需启动参数,浏览器打开:http://127.0.0.1:8088,页面上输入rtsp的url,点击播放;
5、注意事项:
5.1、播放器仅支持aac、h264编码格式,其他格式的话,需要自己扩展streamdian.js播放器,后续我们可能会扩展支持h265、mpeg-ps;
5.2、如果播放失败,请将index.html文件中的localhost改成你Webserver的ip地址;
下载地址:
点击下载
————————————————
版权声明:本文为CSDN博主「觅光者」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42538493/article/details/106113325