在做RTSP摄像机H5无插件直播中遇到的对接海康摄像机发送OPTIONS心跳时遇到的坑

我们在实现一套EasyNVR无插件直播方案时,选择了采用厂家无关化的通用协议RTSP/Onvif接入摄像机IPC/NVR设备,总所周知,Onvif是摄像机的发现与控制管理协议,Onvif用到的流媒体协议也是RTSP,那么,我们在摄像机/NVR流媒体接入上,就是直接采用统一的RTSP协议接入;

然而,在RTSP协议上,由于各个厂家都有不同的处理方法,比如 海康、大华、雄迈、宇视、天地伟业等厂家的RTSP地址规则就不一样,在有Onvif协议支持的设备还好一些,可以通过Onvif将摄像机的RTSP地址发现出来,但是遇到不支持Onvif的设备,就要自己拼接各个厂家的RTSP地址规则了,例如:海康、大华IpCamera RTSP地址和格式雄迈/巨峰摄像机RTSP地址格式

接入RTSP方面,目前市面上兼容性最强的两个组件:live555和ffmpeg,各有利弊,live555结构复杂、ffmpeg整体庞大,最终我们选择了以live555作为摄像机RTSP接入的方案,能非常方便实现部分功能的定制,例如本文重点提到的OPTIONS发送的问题:

当我们采用RTP over UDP/TCP方式在取流的过程中,RTSPClient(live555)可能长时间都在从RTSPServer(IPC/NVR)取流,但缺没有向RTSPServer发送保活报文,如果服务器端启动了Session保活检测机制(参看live555中RTSPServer中noteliveness实现),服务器端长时间没有收到客户端发送的数据包,就会认为客户端连接是假连接,主动断开与客户端的连接(不管客户端是否正在取流);

所以,我们为了解决上述的问题,我们大部分的RTSPClient客户端都会定时(例如30s)向RTSPServer发送OPTIONS(有的也有可能发送的是GET_PARAMETER)命令,类似于保活报文,这样服务器端就能正常地发送直播数据流了;

然而,并不是所有的RTSPServer都做的那么好,就比如海康的某些IPC/NVR型号,当RTSPClient在拉流的过程中,突然发送OPTIONS保活报文,就像是发送了一个垃圾数据一样,RTSPServer自动就将整条RTSP连接断开了,导致RTP取流也随着停止了,我们只能在这类设备中,选择不发送OPTIONS保活包;

EasyNVR RTSP无插件H5直播方案

EasyNVR就完全解决了上述各种问题,实现了一个完整的、小而美的传统安防向互联网迈进的解决方案:
★ 支持PC端/Android安卓端/iOS苹果端/微信端无插件化观看;
★ 支持微信扫描二维码观看;
★ 支持微信/微博直播分享;
★ 基于纯Web网页/无插件H5观看(不用安装任何APP);
★ 支持海康/大华等市面上几乎全部的网络摄像机接入;
★ 实时IP Camera/NVR直播画面实时直播监控;

EasyNVR 下载

EasyNVR项目下载地址:https://github.com/EasyDarwin/EasyNVR(内含使用文档和接口文档)

EasyNVR适用于各种网络场景中

EasyNVR

EasyNVR

EasyNVR

EasyNVR适用的案例

基于EasyNVR实现了很多行业场景的直播需求,目前已经广泛应用于石油油田、水利大坝、园区监控、幼儿园直播、景区直播:

EasyNVR网页监控

上为一水利监控项目应用,EasyNVR服务器一边拥有内网访问权限,一边拥有公网固定IP,采用的是方案1x

EasyNVR网页监控

上为一施工工地网页监控项目,采用的EasyNVR方案为1x

EasyNVR网页监控

上为一幼儿园直播监控项目,面向家长进行幼儿园微信直播,采用的EasyNVR方案为1x

EasyNVR网页监控

上为一园区监控网页监控项目,采用的EasyNVR方案为1x

EasyNVR网页监控

上为一施工工地网页监控项目,采用的EasyNVR方案为1x

EasyNVR网页监控

上为中石油地点网页监控项目,采用的EasyNVR方案为2x

EasyNVR

上为黄山某景区微信直播项目,采用的EasyNVR方案为2x

EasyNVR使用的一些常见问题

常见应用: 安防监控系统 / 小区监控 / 幼儿园监控 / 交通监控 / 厂区监控 / 景点景区监控 / 店面监控

特色特点: 基于纯web页面观看监控 / 无须安装插件 / 跨平台支持PC端、安卓端、iOS苹果端 /支持微信扫二维码观看

WEB端跨平台监控的目标是什么?
本站做的是取监控摄像头视频流,进行服务器端分发,实现无插件跨平台的web监控(注意,不是基于APP / APK,而是基于纯web页面),PC端/安卓/IOS苹果等主流终端,打开同一个网页地址都可以观看,同时也支持手机微信扫二维码观看。

海康/大华自身就有官方的自带的web端,你这边做的这种有什么意义?
第一,本站做的是无插件跨平台的web观看形式,PC/安卓/IOS苹果都开打开同一个页面,直接可以观看(web端是不要装插件的);而海康/大华的web端观看是必须装他们自己的插件的,这是最主要的区别;
第二,本站方案,实现的是用户自己的流媒体服务器平台,无在线观看人数限制的问题;而海康云平台(萤石云)是海康的私有云,基于萤石云观看,也是必须装海康自己的APP或APK,并且对在线人数有严格限定的。

EasyNVR用户需要准备什么?
1. 服务器方面:Windows2008/Windows2012/CentOS 64位操作系统 、4G内存、2核CPU及以上;
2. 服务器带宽:根据自身情况而定 : 5M-100M不等(与用户要求的在线人数有关系);
3. 一个或多个监控摄像头(支持RTSP或Onvif) 。

我们提供什么样的服务?
1. 为用户搭建服务器端环境;
2. 为用户实现海康/大华监控摄像头实现基于web端无插件跨平台直播;
3. 实现PC、安卓、IOS苹果三种主流终端都可以观看监控画面;
4. 提供完整实例给用户,提供完整技术教程,提供技术售后。

为什么选择我们?
1. 经验。我们拥有数年流媒体技术服务的实际应用经验,也拥有web流媒体播放器操作经验,熟悉多终端跨平台技术;
2. 实测。我们亲自购买海康/大华/雄迈/天地伟业网络摄像头IPC,进行实测验证;庞大的开源社区用户群体;
3. 多种方案。我们目前能提供1x / 2x / 3x 三种方案,这三种方案基本包含了IPC所处的各种网络环境;
4. 稳定。我们做出的直播效果,无论是PC端直播画面,还是移动端直播画面,都比较稳定;
5. 操作方便。我们给用户提供完整的范例及教程,普通人员均可按范例添加或删减摄像头;
6. 省心省力。一个页面适配PC、安卓、IOS苹果、微信,简化繁杂的主流终端的适配,省心省力。

在线演示:

http://easynvr.easydarwin.org:10800/

获取更多信息

技术方案咨询:13718530929

邮件:support@easydarwin.org

WEB:www.EasyDarwin.org

QQ交流群:587254841

Copyright © EasyDarwin.org 2012-2017

EasyDarwin

原文地址:https://www.cnblogs.com/babosa/p/9217797.html