最近因为项目需要,预研了一下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代码ÿ