监控摄像头的拉流转发实现

这两天一直在调试Darwin的拉流转发功能,也就是使用Darwin服务器拉取另一个RTSP服务器的视频流(比方监控摄像头)的实时视频,然后通过Darwin服务器提供的rtsp地址进行转发播放,这个简称为拉流转发服务,基本功已经正常完成(网上有一个QTSSOnDemandRelayModule的思路可以参考:DarwinServer);现在包括海康摄像头提供的萤石云服务,其实是将这种拉流转发服务直接内置到了监控摄像头中,监控摄像头直接将采集到的视频流推送给云端的服务器,云端服务器提供实时点播的地址,提供手机客户端通过云端对监控摄像头的实时查看能力;

其实还做了另一个尝试,就是如何通过浏览器直接查看实时监控的视频流,给浏览器加播放器插件是已知的方案,过程中还尝试使用RTMP服务器SRS的hls切片能力,生成hls的点播地址,没有成功,所以考虑换个思路,通过WebRTC来实现这个功能,恰好前一段研究过Janus,Janus作为一个WebRTC的网关使用,其中的streaming插件能提供对rtsp流的请求和转发能力,浏览器的播放受限于codec的支持,所以监控摄像头通常采用的H264码流在浏览器端不能播放,通过尝试,如果转码为VP8,则播放正常;

整个完整的拓扑结构如下图:

发布了73 篇原创文章 · 获赞 26 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/twoconk/article/details/89382499