关于海康摄像头rtsp流转码推流到前端的若干尝试和总结

最近由于工作需要,业务系统需要集成网络摄像头。项目是架构,所以涉及到推流到前端页面的问题。我之前也没怎么解除过视频相关的问题,相关技术了解不多。相面就分不同篇幅简单梳理一下这个问题。

网络摄像头是现在安防系统中不可或缺的环节。以海康为例,官网提供的SDK主要是基于cs架构的。而且用C++试了一下,延迟和清晰程度感觉比基于bs的经过转码推流的效果好。这里也可能和测试的方法有关。

cs/bs在不同的应用场景有各自的优势,这里不赘述。

我的思路是先搞清楚,H5支持的视频格式,H264压缩的mp4, webm,ogg三种格式,这里的格式到底是视频的编码方式呢还是压缩方式我也不是特别清楚。海康摄像头输出的是rtsp流。

知道的不多,但目前的思路就是真么把rtsp流转码成H5支持的格式并推到前端显示。这里看了很多文章,有两篇确实有效果

https://blog.csdn.net/qq_34307209/article/details/78261691,这篇是说借住VLC这个工具先从摄像头拉流(rtsp,这个工具可以直接播放这种流),然后再借助开源音视频编解码工具ffmpeg转码到rtmp格式的流,rtmp格式的流对应到前端就是flv格式的数据,如果没有安装对应的插件,需要浏览器支持flash播放,否则也是无法播放的。

chrome 开启flash支持的方式,参考链接https://blog.csdn.net/m0_37649018/article/details/79154827

chrome://settings/content/flash

添加信任的服务ip+端口

其实另一篇思路和上一篇是一样的,也都是拉rtsp流转码到rtmp,浏览器支持flash播放,显示画面https://blog.csdn.net/LLittleF/article/details/81111713。

到现在即使这条路基本通了,但是如果要实际应用会有很多问题,先不说延迟,人数限制之类的问题,单是需要插件支持或者需要flash支持(chrome, firefox默认不支持flash播放,而且这也是个趋势),所以这种方案,应用到实际中,体验不会太好,如果多人需要看监控画面,每个人的电脑都需要修改配置,这中间阴差阳错,问题会很多,用户也不会接受的。

所以就需要找其他的方案,作为替代方案,所以就找到了webrtc。这个下一篇再说。

 

无意间看到一篇文章,我觉得写得很好,是关于流媒体服务的一些基础常识,很受教http://www.cnblogs.com/babosa/p/7355468.html

另外一种解决方案,没有测试https://github.com/daniulive/SmarterStreaming。

你可能感兴趣的:(webRTC)