摘 要:针对网络摄像机不具备远程监控能力的问题,基于MT7620A设计了一种支持远程监控的智慧网关。网关使用MT7620A作为主控芯片,搭载OpenWrt系统。通过创建ONVIF客户端与同一局域网中支持ONVIF协议的监控设备进行通信,实现设备发现、信息获取、云台控制和视频流读取等功能;网关与云平台通过MQTT协议实现信令交互,云平台可以向网关发送设备管理、云台控制和视频流读取等命令;网关通过数据处理模块对命令进行解析和协议转换,实现对设备的管理,以及对监控设备云台的控制和视频流读取。网关在使用FFMPEG接口获取视频流之后,通过Socket TCP与云平台建立连接并发送视频流,保证视频流远程传输的稳定可靠。网关配有4G通信模块,避免了接入互联网受到有线网络通信的限制,双重通信方式更加有效地保障了网络传输。测试结果表明,所设计的网关能够支持云平台实现对设备的远程监控和控制。
关键词:智慧监控网关;MT7620A;OpenWrt;ONVIF;FFMPEG;MQTT;Socket TCP;4G模块
中图分类号:TP393 文献标识码:A 文章编号:2095-1302(2024)05-00-05
0 引 言
随着视频技术的不断发展和人民对于和谐安全社会的追求,监控行业在近几年得到了飞速发展,监控设备几乎随处可见。目前大多数监控设备只支持本地局域网接入,通过搭配录像机和显示器,实现本地播放和录像保存,用户只能在录像机所在区域实现实时播放。随着技术的进步,也出现了支持远程监控的设备,但这类设备的价格都较为昂贵。
ONVIF协议[1]的出现为实现远程监控提供了可能,ONVIF(开放网络视频接口论坛)是一个开放式的网络视频接口论坛,旨在促进不同厂商的网络视频设备之间的互操作性和集成性,定义了一组标准化的网络接口和协议,支持设备发现、云台控制、视频流传输和安全认证等功能。文献[2]设计了一种基于ONVIF协议的嵌入式视频服务器,监控终端可以通过服务器的Web接口获取在线设备的信息,并获取视频流进行播放。文献[3]设计了一款基于ONVIF协议的网关,云平台通过使用WebSocket协议与网关进行通信,定时从监控设备获取图片。文献[4]设计了一种基于ONVIF的高速公路网络视频监控系统,用于实时监控高速公路的行车状况。文献[5]设计了一种基于ONVIF协议的云台控制网络监控系统,实现了远程控制摄像机的功能。文献[6]基于ONVIF协议设计了一款支持视频流转发的服务器,监控终端通过HTTP协议与服务器实现信令交互,并使用UDP传输获取服务器转发的视频流。可以看出目前对于监控设备的远程接入有了多种方案,但是这些设备一般都需要接入有线网络才能运行,有线网络的安装、故障都会给设备的正常运行带来影响。MT7620A是一款高度集成的无线路由器芯片[7],能够很轻地实现有线网络和4G网络的双重接入。因此本文基于MT7620A芯片使用ONVIF协议设计了一种支持远程监控的智慧网关。
1 需求分析和网关总体方案设计
1.1 需求分析
目前人们对于远程监控的需求日益增加,而大多数监控设备都不具备远程监控的功能,虽然研发出了一些能够实现远程监控的中间设备,但是一般都需要通过有线网络才能接入互联网。为此,本文基于MT7620A设计了一款支持有线和4G双重接入且能够实现远程监控的智慧网关,该网关具有如下功能:
(1)支持多设备接入。网关内部配有交换机,将LAN口扩充至6个,允许6路设备接入。
(2)支持设备信息获取、云台控制和视频流读取。网关通过ONVIF协议与监控设备进行通信,鉴权通过之后能够获取设备信息、对云台进行控制,并通过FFMPEG接口[8]读取视频流。
(3)支持与云平台的MQTT信令交互。网关与云平台通过MQTT协议进行通信,主要功能包含设备管理、云台控制和视频流远程传输等命令的交互。
(4)支持视频流的远程传输。网关将从设备读取的视频流通过Socket TCP接口远程发送至云平台,云平台获取码流之后进行解码并播放。
(5)支持有线和4G双重通信。网关配有4G通信模块,优先使用有线网络。在有线网络不通的情况下,网关会自动切换为4G通信,从而保障网关与云平台之间的通信。
1.2 网关总体设计方案
智慧网关主要由三部分组成:第一部分,创建ONVIF客户端与设备进行通信;第二部分,创建MQTT客户端与云端实现信令交互,创建Socket TCP客户端远程传输视频流;第三部分,数据处理模块主要负责网关对于通信数据的处理、协议的转换以及接口的调用。网关系统架构如图1所示。
2 网关硬件设计
智慧网关硬件结构如图2所示,内部主要由主控制器、防雷抗浪涌电路、百兆交换机、硬件看门狗和4G模块组成。外部主要由AC输入接口、4G天线、调试串口、复位按键和网口组成。
主控制器使用MT7620A作为主控芯片。MT7620A是一款高度集成的无线路由器芯片,集成了CPU、Baseband、Radio等功能,搭配128 MB的DDR和32 MB的SPI FLASH组成了主控制器。
4G模块选用的是移远全网通EC20模块,它支持LTE Cat-4网络,下行速率可达到150 Mb/s,上行速率可达到50 Mb/s,主控制器使用USB接口实现对模块的控制和数据的传输。
交换机使用IP178G作为交换机控制器,IP178G具有高抗干扰性和鲁棒性。IP178G工作在存储转发模式,支持流量控制、自动MDI/MDI-X、COS、端口基地VLAN、带宽控制、区分服务、SMARTMAC和发光二极管的功能。每个端口都可以配置为自动协商或强制百兆、全/半双工模式。
3 系统软件设计
本文所设计的网关使用OpenWrt作为主控系统,文献[9]和文献[10]说明了OpenWrt系统具有快速启动以及数据传输速度快、稳定性和安全性高等优点,能够实现有线网络和无线网络的自动切换,适用于各种不同的嵌入式设备,特别是路由器和网关。整个系统需要实现三个模块,分别是基于MT7620A的ONVIF协议模块、网关与云平台信息交互模块和数据处理模块。
3.1 基于MT7620A的ONVIF协议模块
网关需要对网络摄像机进行一系列的读取命令操作,所以网络摄像机为监控服务器,网关为监控服务客户端。对于监控服务端和客户端的交互,ONVIF协议中规定了众多交互指令[11],在本次开发中只用到了7条:设备发现、设备鉴权、设备信息查询、设备能力查询、设备视频架构查询、设备视频流地址查询和设备云台控制指令。
为了实现上述功能,需要为OpenWrt系统配置ONVIF协议。目前使用gsoap工具[12]可以很方便地生成ONVIF客户端功能代码,如图3所示。
首先配置gsoap安装环境,系统需先安装Bison、Flex和Openssl等必要的配置库;然后下载安装gsoap工具包;之后使用wsdl2h工具根据配置的WSDL文件生成onvif.h头文件;最后使用soapcpp2工具,根据配置的onvif.h头文件生成客户端功能代码,并使用交叉编译工具将代码编译为动态链接库放入OpenWrt系统。
网关通过这部分代码提供的接口创建ONVIF客户端,客户端主要实现4个功能:设备发现、设备信息获取、视频流读取和云台控制。大部分网络摄像机在被访问时都需要通过用户名和密码进行鉴权。除了设备发现功能,客户端在实现其他功能之前都需要调用soap_wsse_add_UsernameTokenDigest接口进行鉴权。
(1)设备发现
客户端能够搜索同一局域网中所有支持ONVIF协议的网络摄像机,搜索原理是客户端在UDP协议下,向网段内的组播地址239.255.255.250、端口3702,不断地发送Probe消息探针。网段内的服务器在接收到Probe这个探测消息后,通过回复ProbeMatch消息让客户端接收,从而让客户端识别到服务器,获取设备服务地址。
(2)设备信息获取
设备信息包括设备基础信息、设备能力信息、设备媒体结构信息和视频流地址。
设备基础信息包含服务器的品牌、型号、序列号等信息,客户端根据设备服务地址调用soap_call_tds_GetDeviceInformation接口便能获取设备基础信息。
设备能力信息包含了服务器所具备的功能信息和功能地址,客户端根据设备服务地址调用gsoap工具生成的soap_call_tds_GetCapabilities接口便能获取所需要的媒体服务地址和PTZ控制地址。
根据设备媒体结构信息能够知道服务器提供了多少路媒体信息(包含视频和音频),大部分网络摄像机都提供至少两路视频流:一路高分辨视频图像,即主码流;一路低分辨图像,即辅码流。客户端根据设备服务地址调用gsoap工具生成的soap_call_trt_GetProfiles接口便能获取设备媒体结构信息,从而得到主码流和辅码流的配置信息。
视频流地址是服务器中相应码流的获取地址,客户端根据媒体服务地址和通过媒体结构信息获取的主码流或辅码流的标志符,通过调用gsoap工具生成的soap_call_trt_GetStreamUri接口获取相应码流的视频流地址。
(3)视频流读取
网关通过FFMPEG接口来读取服务器的视频流。FFMPEG是一款被广泛使用的多媒体解决方案,既是一款音视频编解码工具,同时也是一组音视频编解码开发套件。作为编解码开发套件,它为开发者提供了丰富的音视频处理的调用接口。在OpenWrt系统中移植FFMPEG开发库,通过调用视频流获取接口从相应视频流地址读取编码为H264的码流。
(4)云台控制
云台一般有三种控制模式,分别是连续运动、相对运动和绝对运动。综合考虑选择相对运动作为控制方式。根据PTZ控制地址调用soap_call_tptz_RelativeMove接口实现云台全方位(上下、左右)移动及镜头的变焦。
3.2 网关与云平台信息交互模块
网关与云平台的通信分为两部分。
第一部分是基于MQTT协议的数据通信部分,MQTT具有低协议开销、断线重连、低功耗、支持大量平台并发连接和良好的跨平台兼容性等优点,网关与云平台采用JSON数据格式[13]进行通信,通过订阅相应主题实现信令交互。
第二部分是网关使用Socket TCP将视频流发送至云平台,Socket TCP提供了可靠的数据传输,通过握手、确认机制等来保证数据传输的完整性和可靠性;Socket TCP的传输顺序性保证了数据传输的顺序,即数据包将按照发送的顺序被接收。这对于视频流传输也是非常重要的,因为视频帧需要按照正确的顺序解码和播放。另外Socket TCP具有拥塞控制机制,可以根据网络状况调整数据传输速率,以避免网络拥塞,这有助于确保视频流在各种网络条件下的稳定传输。虽然相对于Socket UDP,Socket TCP的传输速度可能稍慢一些,但在大多数情况下,这种差异并不会对视频传输产生明显的影响。
3.3 数据处理模块
数据处理模块是网关功能实现的核心部分。平台下发的指令如图4所示。按照协议进行解析,调用相应的接口实现具体功能,并将执行结果返回至云平台。主要实现设备管理和设备控制两个功能。
(1)设备管理
设备添加和设备更新的命令格式相同,区别在于设备功能分别是“setdev”和“update”。网关根据接收到的设备IP地址、设备用户名和设备密码,调用ONVIF客户端接口获取设备信息、设备能力、PTZ控制地址和视频流地址,并保存相应的设备信息。
对于设备删除命令,只需配置设备类型为“Camera”、设备功能为“delete”和相应的设备ID。网关接收到命令之后,将存储器中对应的设备信息清空,并返回命令执行结果。
对于设备查询命令,只需配置设备类型为“Camera”,设备功能为“search”。网关根据命令,将已添加至存储器的设备信息(设备ID、设备品牌、设备串行序列号、设备IP地址、用户名和密码)返回至云平台。
(2)设备控制
对于云台控制命令,只需配置设备类型为“Camera”以及相应的设备ID,设备功能分为云台的上转、下转、左转、右转、焦距缩小和焦距放大,功能码分别为“ptz_up”“ptz_down”“ptz_left”“ptz_right”“ptz_zoomin”和“ptz_zoomout”。网关接收到命令之后,调用ONVIF客户端云台控制接口,对云台实现相应的控制,并将执行结果返回至云平台。
对于视频流读取命令,只需配置设备类型为“Camera”以及相应的设备ID,设备功能分为视频流的打开和关闭,功能码分别为“rtsp_open”和“rtsp_close”。网关接收到视频流打开命令之后,根据设备ID调用FFMPEG接口读取相应设备的视频流,并创建Socket TCP客户端,将视频流发送至云平台。
4 网关测试
对网关进行测试,测试内容包括网络测试、设备管理和设备控制测试。
4.1 网络测试
有线网络测试:有线网接入网关WAN口,测试设备网络,并用电脑依次连接测试各个LAN口,均能正常联网。
4G网络测试:将有线网断开,此时网关会自动切换为4G通信,通过ping命令测试网络延迟如图5所示,并用电脑依次连接测试各个LAN口,均能正常联网。
4.2 设备管理测试
测试添加两台设备分别为海康威视和大华的摄像机,通过查询命令获得添加设备的信息如图6所示。
发送删除大华摄像机命令之后重新查询,设备只保留了海康摄像机的信息。
4.3 设备控制测试
云台控制:对海康的球机进行云台控制测试,进行上转、下转、左转、右转控制以及焦距缩小和放大测试。图7是网关发送给设备的PTZ控制数据包,其中PanTilt是对云台转向的控制,x代表左右方向的调节,y代表上下方向的调节,图中y=-0.1表示控制云台向上转动0.1的步长。Zoom代表对焦距的调节。测试证明,云平台下发的设备控制指令能够通过网关得到实现。
视频流的获取测试:云平台下发视频获取命令,获取码流之后使用网页进行播放,监控界面如图8所示。云平台在播放视频的同时对码流进行保存,持续监测大约1 h,几乎没有出现花屏和卡顿的情况。
5 结 语
本文基于MT7620A设计并实现了一种支持远程监控的智慧网关。通过ONVIF协议、MQTT通信和Socket TCP通信,实现监控设备、网关和云平台之间信令的交互以及视频流的传输。测试结果表明,网关能实现监控设备的接入与控制,有线和4G双重通信方式使得网关与平台之间的通信更为稳定,实现了网络摄像机与云平台之间的远程交互,满足设计要求。
参考文献
[1]黄方靖. ONVIF协议在IPCam系统中的设计与实现[J].电子测量技术,2015,38(5):139-142.
[2]周伟. 基于ONVIF协议的嵌入式视频服务器的研究与设计[D].长沙:湖南大学,2017.
[3]杨辉,张杨旭,陈文艺.基于ONVIF协议的物联网网关设计与实现[J].信息技术与信息化,2022,47(9):135-140.
[4]周旋. 基于ONVIF的高速公路网络视频监控系统设计[D].西安:长安大学,2017.
[5]樊佩. 基于ONVIF协议的云台控制网络监控系统[D]. 西安:西安工程大学,2016.
[6]刘浩. 基于ONVIF协议的视频服务器的设计与实现[D]. 杭州:浙江工业大学,2019.
[7]汤永锋,龚云生. MT7620A平台与OpenWRT的WiFi通信系统设计[J].单片机与嵌入式系统应用,2017,17(4):32-36.
[8]明瑞,张金奎,胡杰.基于FFMPEG实时视频传输系统设计[J].电脑知识与技术,2021,17(15):25-27.
[9]安立源,葛红舞,赵振非,等.基于OpenWRT的5G融合通信网关设计[J].单片机与嵌入式系统应用,2022,22(4):20-23.
[10]陶伟,潘丰,崔恩隆,等. MT7628与OpenWrt的MQTT异构协议设计[J].单片机与嵌入式系统应用,2021,21(9):14-17.
[11]江勇,杜程远.基于Hi3531的ONVIF高清网络摄像机视频数据接入设计[J].单片机与嵌入式系统应用,2016,16(8):50-53.
[12]严竞雄. Linux环境下基于gSOAP的WebService应用设计与实现[J].电脑编程技巧与维护,2023,30(7):56-58.
[13] LEI Z,KE P,XU J T,et al. JSON-based control model for SQL and NoSQL data conversion in hybrid cloud database [J]. Journal of cloud computing,2022,11(1):20-25.
作者简介:黄赟(1993—),男,江苏南通人,硕士研究生,研究方向为物联网与人工智能。
朱金荣(1968—),男,江苏扬州人,硕士研究生,教授,研究方向为物联网与人工智能。
武忠鑫(1992—),女,满族,吉林四平人,硕士研究生,研究方向为物联网与人工智能。
金廷宇(1998—),男,土家族,贵州铜仁人,硕士研究生,研究方向为物联网与人工智能。
李佳颖(2000—),男,湖南衡阳人,硕士研究生,研究方向为物联网与人工智能。
收稿日期:2023-09-15 修回日期:2023-10-13
基金项目:国家自然科学基金(61802336);江苏省研究生实践创新计划(SJCX22_1706)