索旭东,林 琳,李康华,李冀川,萧润明
(智能移动机器人(中山)研究院,广东 中山 528400)
随着智能移动机器人、摄像头、人工智能、无线通信等相关产业技术的发展[1],市面上许多监控室采用固定摄像头和有线网络,这种系统架构缺点被不断放大,视频监控技术由此开始向无线低延时、智能化、多功能、可拓展发展。传统的人工巡逻和固定摄像头监控容易出现监控死角、远程查看监控存在视频延时高的问题。
需要针对现有监控终端架构缺陷[2],给出可行性的解决方案。提出一种硬件功能拓展性高、监控可靠低延时、监测异常智能化的方案,基于WebRTC视频流传输技术的搭载可移动机器人摄像头的智能监控安防系统。采用WebRTC(Web Real-Time Communication)进行跨平台低延时通信,保证监控画面的实时性。用户可以直接通过浏览器Web 端看到监控室画面。本文主要介绍关于WebRTC 的技术特点以及低延时智能监控系统的设计与实现。
传统视频输出为rtsp 流,提供视频兼容性和视频传输稳定性。要打造适合的低延时监控系统,重点是要明确用户观看到的摄像头画面延时产生的组成。传统监控系统采用B/S 结构开发。用户观看监控视频产生的延时会由以下四个部分组成:
●摄像头压制编码的时间;
●视频网络传输服务器的时间;
●视频网络传输到浏览器的时间。
低延时监控系统可以优化除了第一点外的流程。总的来说,低延时的关键在于怎么提高视频传输速度和解码效率。
WebRTC 技术采用点对点的通信技术,把延时的组成再次改写为三部分:
●摄像头压制编码的时间;
●视频从网络传输到客户端的时间。
●视频渲染解码的时间。
1.2 腹膜反折悬吊装置的设计 自制腹膜反折悬吊装置由 Hem-o-lok 夹和与之连接的穿刺器、固定装置及施夹钳组成,施夹钳用于将悬吊装置置入体腔,并将 Hem-o-lok 夹夹闭固定于腹膜反折上;穿刺器及其附属连接线用于调整腹膜反折悬吊的牵引方向及高度;固定装置用于固定连接线,保持腹膜反折悬吊的高度和方向(图1)。
WebRTC(Web Real-Time Communications)是一项实时通讯技术,它允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点(Peerto-Peer)的连接,实现视频流、音频流或者其他任意数据的传输。
WebRTC 技术框架的接口层核心是RTCPeer-Connection,分为两部分:Web API和WebRTC C++API。Web API 是由W3C 维护的一组JavaScript 接口[6],提供了API 方便开发者直接使用,在浏览器中创建实时通信应用程序。
核心引擎层分为音频引擎模块、网络传输模块和视频引擎模块。音频引擎模块是WebRTC 最具有价值的技术之一,包含从视频采集卡到网络传输段的整个一系列的音频多媒体处理框架。
WebRTC的网络传输涉及多种协议用于同时支持音频、视频、自定义应用数据的传输。WebRTC传输的所有数据都是基于加密信道DTLS 进行传输的,DTLS让通信双方握手生成一对密钥[7],发送方负责通过UDP 传输对数据进行加密,再由接收方对加密数据做解密处理。简单来说就是在UDP 的基础上让通信双方协商密钥进行加密解密。音视频数据通过RTP/SRTP(Realtime Transport Protocol/Secure Realtime Transport Protocol)进行传输。综上所述,WebRTC 在底层使用UDP,在上层使用RTP。
视频引擎模块包括:摄像头采集视频通过视频信息网络实现视频显示的过程。
WebRTC 技术有三种架构:Mesh、MCU、SFU[8],本系统使用的是Mesh 架构,是基于端到端的直连设计。三种通讯架构如图1所示。
图1 WebRTC通讯架构图
Mesh 架构:客户端进行相互间音视频流数据传输采用P2P 连接。Mesh 架构的优点是不需要中心服务器进行转发,由于视频编码解码过程都在客户端,对于客户端的上行带宽消耗比较大。
MCU架构:该架构的视频信息流是在服务端进行编码,对于不同接收端不需要进行转码。但是抖动缓冲区较大,而且对服务器的CPU 消耗大,点与点之间需要通过服务器,造成两点之间的延时增加。每个客户端只需要向服务器上传一路信息流,从服务端接收一路音频视频流,对于客户端的带宽消耗较少,但是对于服务器性能要求较高CPU资源消耗较大。
SFU 架构:通过服务器对音频视频等信息流进行直接转发,不需进行编码操作。相比MCU 架构,SFU架构对数据传输更安全、服务器的压力较小。
对于客户端的下行带宽消耗较大,不适合用在网络条件较差的环境。
本系统监控看板主要是使用在远程监控室,属于端点和信息量较小的场景,为了增加数据的低延时和实时性,将Mesh架构做为最佳选型使用。
本论文的低延时方案是基于WebRTC 视频技术实现的。与传统视频rtsp 流。WebRTC 能建立点对点的连接,减少了视频传送服务器的时间,能有效降低视频的延时。
测试实验使用海康威视摄像头。分别使用海康威视Web 端,低延时智能系统,某商用视频中间件,开源FFMPEG+JSMPEG 技术四个方案进行测试对比。
海康威视Web 端,以JavaScript 接口形式提供用户集成,支持网页上实现预览、回放、云台控制等基本视频相关功能,用于BS 网页开发,适用于特定的网络环境。
某商用视频中间件,采用的是VLC 内嵌网页播放程序,通过底层去调用VLC 的ActiveX 控件实现在Web端内嵌播放RTSP实时视频流。
FFMPEG+JSMPEG 技术,是目前国际上较为流行的用于实现视频编码、解码、转码、封装、解封装、流、镜、播放等功能的多媒体框架,对rtsp 流进行解析,开启rtsp 流经视频音频解封装器,解析去除无关的报文信息,提取出真正的视音频数据流。
使用海康威视摄像头,与PC 网卡直连,同时打开海康威视Web 端与低延时智能系统,某商用视频中间件,与开源FFMPEG+JSMPEG 技术三个方案中的其中一个作为参照物进行北京时间对比分析。
第一个测试的是低延时监控系统与海康威视。两者进行多次延时对比采样,把测试结果记录下来求一个平均数。其实如图2为其中一次测试结果。左侧是本机与摄像头使用低延时系统的延时,右侧则是海康威视官方系统的延时,可以看到在相同的硬件配置与网络配置下,使用低延时远程监控系统与使用海康威视官方系统的延时只差110毫秒左右。
图2 测试结果对比
其他方案与按同等网络环境与摄像头进行。其延时对比结果如表1所示。海康威视摄像头的官方拉流平均延时在90ms,本系统采用的WebRTC方案平均延时在200ms,采用第三方中间件的平均延时在750ms,基于FFmpeg解码技术的拉流方案平均延时在1000ms。
表1 不同方案延时对比
通过实验对比,某商用中间件,FFmpeg和WebRTC三种方案的得出平均延时数据得出,WebRTC 方案相较于FFmpeg 和第三方中间件在低延时效果上更加突出。
低延时智能监控系统通过软件架构的设计提高传输速率,把后台信息管理系统、机器人通信网关系统、视频推送分离开来[9]。让视频和用户的业务数据独立处理的同时,又可以做到统一的数据管理。这样的架构设计,让本系统相较其他智能监控系统更灵活方便,适用范围更广。
基于WebRTC 实时通讯技术的低延时智能监控系统优点在于底层基于UDP 协议具有毫秒级的低延时具有更好的交互效果。在不需要额外的中间媒介就能直接通过Web 端访问,大大提高了用户使用的便捷度。随着技术的不断发展,WebRTC 的兼容性越来越强大,支持跨平台方便日后集成二次开发。相较于传统监控系统,WebRTC 使用的信令传输具有稳定性好、可扩展性强、带宽利用率高等特点。WebRTC存在的缺点是:架构方案多,对不同场景的选型难度高,相对复杂,开发难度高。
结合地图与远程视频监控,可以及时了解机器人附近的情况,根据利用远程监控及时反馈环境,利用系统的低延时,可以让相关负责人实现远程管理多台机器人的效果,如图3所示。
图3 远程监控页面图
结合数据反馈的异常数据与及时利用视频实时对机器人环境进行更好地监控,如图4所示。
图4 监控看板页面
本论文分析了基于WebRTC 开发的低延时智能监控系统的设计与实现。打造一个用户使用简便,远程低延时监控系统。对市场上机器人等远程实时性要求高的场景提供一个低延时的解决方案。为机器人远程监控系统,扩大应用范围提供一个很好的方向。可以配合对安保监控行业不同场景条件需求分析。也可配置上移动智能机器人相关产业进行需求,实现适用范围广、视频延时低、检测智能化的目标。提供标准无差低延时、多端可视的视频流服务。相信未来新一代的机器人,人工智能,无线通信等技术的发展能让系统得到更加有力的支持与发展[10]。