一种通过网页无控件低延迟查看实时监控视频的方法
技术领域
本发明属于监控技术和网络通信技术领域,具体涉及一种通过网页无控件低延迟查看实时监控视频的方法。
背景技术
传统的视频监控系统,一般都支持RTSP(Real Time Streaming Protocol,即实时流媒体协议)、ONVIF(Open Network Video Interface Forum,即开放网络视频接口论坛)以及GB/T 28181(即国家推荐标准28181)协议。不过浏览器原生并不支持这些协议,且长期以来一直没有提供对实时音视频的支持。所以监控视频,一般都是安装视频监控客户端软件,或者使用IE浏览器打开嵌入了视频监控OCX(Object Linking and Embedding (OLE)Control Extension,即对象类别扩充组件)控件的网站,来进行查看。
不过随着微软准备在2021年中期完全停止对对IE的支持,通过IE浏览器OCX控件查看监控视频的方式,很快将被淘汰。但微软新推出的浏览器Edge和谷歌的浏览器Chrome,都原生支持了基于网页的实时音视频协议WebRTC(Web Real-Time Communication,即网页实时通信),这又打开了另外一扇门。
为满足通过浏览器查看实时监控视频的实际问题,需要新的解决方案。
申请号为201911203239.8的中国发明专利申请公开了一种基于WebRTC协议的跨浏览器预览GB/T28181标准监控视频的方法。在GB/T 28181标准协议主体框架下通过兼容WebRTC技术协议,将GB/T 28181标准的软件应用适配范围拓展至windows和andorid等多操作系统平台及Chrome和Firefox等多浏览器环境。然而该专利申请提供的解决方案仍存在以下不足:
1、方案中WebRTC终端设备是一个SIP协议的Endpoint端点,它使用了比较重的SIPover WebSocket信令协议,并且还需要进行SIP号码的分配和注册,方案非常复杂。
2、WebRTC接入代理服务,需要有SIP代理转换服务器,以实现GB/T 28181 SIP到SIP+WebRTC的转换。
3、WEB业务服务器必须限定在GB/T 28181视频监控联网平台体系内。
4、视频监控列表是由WebRTC终端设备向WEB业务服务器来拉取。这导致WebRTC终端设备,需要同时和WebRTC接入代理服务及GB/T 28181视频监控联网平台这两个系统进行通信,这不符合软件设计和系统架构的一些基本原则。
发明内容
针对现有技术中存在的上述缺陷,本发明的目的是提供一种通过网页无控件低延迟查看实时监控视频的方法。本发明通过提供一种新型视频网关,使用GB/T 28181协议拉取视频监控系统中的视频,并对外提供浏览器能支持的WebRTC协议,让网页可以以无控件的方式,低延迟地查看实时监控视频。用户在网页上点击查看视频监控,网页先给视频网关发送开启拉流命令,视频网关从视频监控系统中拉取监控视频,并将其转换成WebRTC协议,随后网页开始拉取并显示。查看结束,无需网页发送停止拉取命令,视频网关会负责监控视频流的复用以及无人观看时的资源回收。
为实现上述发明目的,本发明采用以下技术方案:
一种通过网页无控件低延迟查看实时监控视频的方法,包括:
网页获取视频监控列表;
网页开启视频监控拉流;
网页拉取视频监控流;
网页停止拉取视频监控流。
其中,网页获取视频监控列表的过程具体包括:
视频网关会定期向视频监控系统发送请求设备目录请求,以获得最新的设备目录;
以及网页在登录后,向视频网关请求监控列表并展示。
视频网关和视频监控系统之间的协议是GB/T 28181;
网页和视频网关之间的协议是HTTP/HTTPS和WebRTC。
网页开启视频监控拉流的过程具体包括:
网页向视频网关请求开启某一摄像头的拉流;
视频网关收到网页的开启请求后,向视频监控发送呼叫该摄像头的请求;
视频网关呼通摄像头后,回复网页开启成功;
视频网关开始接收摄像头的音视频流。
开启摄像头成功后,网页开始拉取视频监控流;
网页拉取视频监控流的过程包括:
网页和视频网关进行WebRTC信令协商,网页向视频网关发送WebRTC SDP Offer,视频网关回复WebRTC SDP Answer;
WebRTC信令协商完成后,网页就和视频网关开始建立WebRTC连接;
WebRTC连接建立成功后,视频网关就将视频监控的音视频流,转发给网页查看。
网页停止拉取视频监控流的过程包括:
视频网关检测到和网页之间的WebRTC连接断开;
视频网关将此摄像头的连接计数减1;
如果连接计数为0,视频网关会在一段时间过后,挂断此摄像头;如果连接计数不为0,表明还有其它用户在观看此摄像头。
可选地,用户通过账号和密码,登录到网页承载的业务应用系统;所述视频网关支持跨域访问,网页可以直接给视频网关发送请求。
可选地,所述网页和视频网关进行WebRTC信令协商的方式为:
网页向视频网关发送WebRTC SDP Offer,视频网关回复WebRTC SDP Answer;
其中,SDP指会话描述协议,Offer指提议,Answer指应答。
可选地,成功获取到视频监控列表后,在页面上向用户呈现所述视频监控列表;
当侦测到用户点击某一摄像头的事件,即触发执行所述开启和拉取操作。
可选地,视频网关对连接计数,以便对同一摄像头的流进行复用和做无人观看时的资源回收。
相对于现有技术,本发明具有以下有益效果:
本发明视频网关从监控系统拉取监控视频时使用了GB/T 28181协议,网页从视频网关拉取视频使用了WebRTC协议,这两者都是实时协议,延迟都非常低。从实现效果上来看,即使多通过了一个视频网关,网页无控件查看监控视频,比IE浏览器OCX控件直连设备查看监控视频,延迟都还要低。
除低延迟外,本发明还具有以下优点:
(1)视频网关占用的端口极少。视频网关和网页之间是HTTP+WebRTC协议,HTTP是信令,WebRTC是媒体。我们在WebRTC建连过程中,通过不同网页端建立连接时有不同的指纹,使视频网关端只使用了一个WebRTC媒体端口,就能区分不同网页。视频网关和视频监控之间是SIP+RTP协议,SIP是信令,RTP是媒体。我们在视频网关从视频监控拉流过程中,通过信令中的SSRC,使视频网关只使用了一个RTP媒体端口,就能区分不同呼叫。视频网关只占用了4个端口,HTTP信令+WEBRTC媒体,是和网页通信,SIP信令+RTP媒体,是和视频监控通信。极少的端口占用,非常利于在公网或跨网部署。
(2)不再需要转码。最新的WebRTC,支持GB/T 28181中的H.264和G711.A,本方法已经不需要进行媒体的转码。
(3)流媒体复用和管理。视频网关对多人同时观看同一摄像头,有做复用和无人观看时的资源回收。
针对中国发明专利申请201911203239.8公开的技术方案,本发明具有的优势可总结如下:
使用的简单的HTTP协议来进行信令协商,实现简单,而且也非常利于APP对此功能的实现;不需要做SIP协议的转换,因为视频网关和网页之间的协议是HTTP+WebRTC;本发明并没有特别指明WEB业务服务器所在位置,因为这应该是在和视频监控及视频网关无关的用户业务应用系统体系内;本发明的视频网关从视频监控联网平台获取到了监控列表,做了这个监控列表的代理(功能代理兼协议转换(从SIP转换为HTTP)),从而做到了网页只需要和视频网关通信即可。
附图说明
图1是本发明实施例的总体示意图。
图2是本发明实施例中网页获取视频监控列表的流程图。
图3是本发明实施例中网页开启视频监控拉流的流程图。
图4是本发明实施例中网页拉取视频监控流的流程图。
图5是本发明实施例中停止拉取视频监控流的流程图。
具体实施方式
以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。需要说明的是,在本发明实施例中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的方法或者装置不仅包括所明确记载的要素,而且还包括没有明确列出的其他要素,或者是还包括为实施方法或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的方法或者装置中还存在另外的相关要素(例如方法中的步骤或者装置中的单元,例如的单元可以是部分电路、部分处理器、部分程序或软件等等)。
本实施例提供的一种通过网页无控件低延迟查看实时监控视频的方法总体如图1所示,如无特殊说明,附图中视频监控即视频监控系统,具体包括以下步骤:
步骤1网页获取视频监控列表,流程如图2所示,
步骤1.1视频网关会定期向视频监控系统发送请求设备目录请求,以获得最新的设备目录。
步骤1.2网页在登录后,向视频网关请求监控列表并展示。
在一种可能的实现方式中,用户通过账号和密码,登录到业务应用系统。业务应用集成了无控件低延迟查看实时监控视频功能,本方法中的网页即指业务应用。视频网关支持跨域访问,网页可以直接给视频网关发送请求。
视频网关和视频监控之间的协议是GB/T 28181。
网页和视频网关之间的协议是HTTP/HTTPS和WebRTC。
步骤2网页开启视频监控拉流,流程如图3所示。
此处的网页可以理解为运行在浏览器的应用,例如前文所述业务应用。
用户查看监控列表中的某一摄像头视频,这一行为,在逻辑上分为两个步骤,一是开启二是拉取,即步骤2网页开启视频监控拉流和步骤3网页拉取视频监控流。
在一种可能的实现方式中,获取到视频监控列表后,会在页面上给用户展示;用户点击某一摄像头,即开始执行以上开启和拉取操作。
步骤2.1网页向视频网关请求开启某一摄像头的拉流。
步骤2.2视频网关收到网页的开启请求后,向视频监控发送呼叫该摄像头的请求。
步骤2.3视频网关呼通摄像头后,回复网页开启成功。
步骤2.4视频网关开始接收摄像头的音视频流。GB/T 28181的摄像头支持H.264视频编码和G711.A音频编码,这两种编码,最新的WebRTC实现都已经支持,不再需要转码,只是将GB2818的PS封装转为RTP封装。
步骤3网页拉取视频监控流,流程如图4所示。
开启摄像头成功后,网页就开始拉取视频监控流。
步骤3.1首先,网页和视频网关进行WebRTC信令协商。网页向视频网关发送WebRTCSDP Offer,视频网关回复WebRTC SDP Answer。
步骤3.2WebRTC信令协商完成后,网页就和视频网关开始建立WebRTC连接。
步骤3.3WebRTC连接建立成功后,视频网关就将视频监控的音视频流,转发给网页查看。
步骤3.4视频网关还会做连接的计数,以便对同一摄像头的流进行复用和做无人观看时的资源回收。
SDP(Session Description Protocol,即会话描述协议),Offer指提议,Answer指应答。
步骤4网页停止拉取视频监控流,流程如图5所示。
步骤4.1视频网关检测到和网页之间的WebRTC连接断开。网页停止拉取视频监控流,之所以没有任何信令,是因为有可能网页被用户直接关掉,无法发送信令。
步骤4.2视频网关将此摄像头的连接计数减1。
步骤4.3如果连接计数为0,视频网关会在一段时间过后,挂断此摄像头。如果连接计数不为0,表明还有其它用户在观看此摄像头。
本实施例中,视频监控系统是传统的C/S架构,前端是IPC摄像头,NVR/DVR等设备,后端有信令服务器和媒体服务器。
信令服务器用于查看客户端和前端设备之间建立会话。
媒体服务器用于将前端设备的流转发给查看客户端。
视频网关主要由三个模块组成,一个是信令转换模块,一个是媒体转换模块、一个是媒体管理模块。
信令转换模块的作用,是将网页端的HTTP协议(协议内容是自定义的)和视频监控系统的GB/T 28181中的SIP协议(国家标准协议),进行转换。
媒体转换模块的作用,是将网页端的WEBRTC协议和视频监控系统的GB/T 28181中的RTP协议,进行转换。
信令和媒体转换模块,都是一边是网页,一边是视频监控系统。数据都从一端来,经过转换后,再转到另外一端。
媒体管理模块,主要是用来对从视频监控系统拉取过来的监视视频流,进行复用和回收。复用是指“多个网页同时查看某一监控视频,视频网关和视频监控系统之间就该摄像头也只有一个呼叫和流,视频网关做了复用”,回收是指“如果网页端没有人查看某一监控视频,视频网关会断开和视频监控系统的该摄像头的呼叫和流”。
以上所述仅为本申请的实施例而已,并不用于限制本申请。本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。对于本领域技术人员而言,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。