摘 要:針對網絡攝像機不具備遠程監(jiān)控能力的問題,基于MT7620A設計了一種支持遠程監(jiān)控的智慧網關。網關使用MT7620A作為主控芯片,搭載OpenWrt系統(tǒng)。通過創(chuàng)建ONVIF客戶端與同一局域網中支持ONVIF協議的監(jiān)控設備進行通信,實現設備發(fā)現、信息獲取、云臺控制和視頻流讀取等功能;網關與云平臺通過MQTT協議實現信令交互,云平臺可以向網關發(fā)送設備管理、云臺控制和視頻流讀取等命令;網關通過數據處理模塊對命令進行解析和協議轉換,實現對設備的管理,以及對監(jiān)控設備云臺的控制和視頻流讀取。網關在使用FFMPEG接口獲取視頻流之后,通過Socket TCP與云平臺建立連接并發(fā)送視頻流,保證視頻流遠程傳輸的穩(wěn)定可靠。網關配有4G通信模塊,避免了接入互聯網受到有線網絡通信的限制,雙重通信方式更加有效地保障了網絡傳輸。測試結果表明,所設計的網關能夠支持云平臺實現對設備的遠程監(jiān)控和控制。
關鍵詞:智慧監(jiān)控網關;MT7620A;OpenWrt;ONVIF;FFMPEG;MQTT;Socket TCP;4G模塊
中圖分類號:TP393 文獻標識碼:A 文章編號:2095-1302(2024)05-00-05
0 引 言
隨著視頻技術的不斷發(fā)展和人民對于和諧安全社會的追求,監(jiān)控行業(yè)在近幾年得到了飛速發(fā)展,監(jiān)控設備幾乎隨處可見。目前大多數監(jiān)控設備只支持本地局域網接入,通過搭配錄像機和顯示器,實現本地播放和錄像保存,用戶只能在錄像機所在區(qū)域實現實時播放。隨著技術的進步,也出現了支持遠程監(jiān)控的設備,但這類設備的價格都較為昂貴。
ONVIF協議[1]的出現為實現遠程監(jiān)控提供了可能,ONVIF(開放網絡視頻接口論壇)是一個開放式的網絡視頻接口論壇,旨在促進不同廠商的網絡視頻設備之間的互操作性和集成性,定義了一組標準化的網絡接口和協議,支持設備發(fā)現、云臺控制、視頻流傳輸和安全認證等功能。文獻[2]設計了一種基于ONVIF協議的嵌入式視頻服務器,監(jiān)控終端可以通過服務器的Web接口獲取在線設備的信息,并獲取視頻流進行播放。文獻[3]設計了一款基于ONVIF協議的網關,云平臺通過使用WebSocket協議與網關進行通信,定時從監(jiān)控設備獲取圖片。文獻[4]設計了一種基于ONVIF的高速公路網絡視頻監(jiān)控系統(tǒng),用于實時監(jiān)控高速公路的行車狀況。文獻[5]設計了一種基于ONVIF協議的云臺控制網絡監(jiān)控系統(tǒng),實現了遠程控制攝像機的功能。文獻[6]基于ONVIF協議設計了一款支持視頻流轉發(fā)的服務器,監(jiān)控終端通過HTTP協議與服務器實現信令交互,并使用UDP傳輸獲取服務器轉發(fā)的視頻流。可以看出目前對于監(jiān)控設備的遠程接入有了多種方案,但是這些設備一般都需要接入有線網絡才能運行,有線網絡的安裝、故障都會給設備的正常運行帶來影響。MT7620A是一款高度集成的無線路由器芯片[7],能夠很輕地實現有線網絡和4G網絡的雙重接入。因此本文基于MT7620A芯片使用ONVIF協議設計了一種支持遠程監(jiān)控的智慧網關。
1 需求分析和網關總體方案設計
1.1 需求分析
目前人們對于遠程監(jiān)控的需求日益增加,而大多數監(jiān)控設備都不具備遠程監(jiān)控的功能,雖然研發(fā)出了一些能夠實現遠程監(jiān)控的中間設備,但是一般都需要通過有線網絡才能接入互聯網。為此,本文基于MT7620A設計了一款支持有線和4G雙重接入且能夠實現遠程監(jiān)控的智慧網關,該網關具有如下功能:
(1)支持多設備接入。網關內部配有交換機,將LAN口擴充至6個,允許6路設備接入。
(2)支持設備信息獲取、云臺控制和視頻流讀取。網關通過ONVIF協議與監(jiān)控設備進行通信,鑒權通過之后能夠獲取設備信息、對云臺進行控制,并通過FFMPEG接口[8]讀取視頻流。
(3)支持與云平臺的MQTT信令交互。網關與云平臺通過MQTT協議進行通信,主要功能包含設備管理、云臺控制和視頻流遠程傳輸等命令的交互。
(4)支持視頻流的遠程傳輸。網關將從設備讀取的視頻流通過Socket TCP接口遠程發(fā)送至云平臺,云平臺獲取碼流之后進行解碼并播放。
(5)支持有線和4G雙重通信。網關配有4G通信模塊,優(yōu)先使用有線網絡。在有線網絡不通的情況下,網關會自動切換為4G通信,從而保障網關與云平臺之間的通信。
1.2 網關總體設計方案
智慧網關主要由三部分組成:第一部分,創(chuàng)建ONVIF客戶端與設備進行通信;第二部分,創(chuàng)建MQTT客戶端與云端實現信令交互,創(chuàng)建Socket TCP客戶端遠程傳輸視頻流;第三部分,數據處理模塊主要負責網關對于通信數據的處理、協議的轉換以及接口的調用。網關系統(tǒng)架構如圖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工作在存儲轉發(fā)模式,支持流量控制、自動MDI/MDI-X、COS、端口基地VLAN、帶寬控制、區(qū)分服務、SMARTMAC和發(fā)光二極管的功能。每個端口都可以配置為自動協商或強制百兆、全/半雙工模式。
3 系統(tǒng)軟件設計
本文所設計的網關使用OpenWrt作為主控系統(tǒng),文獻[9]和文獻[10]說明了OpenWrt系統(tǒng)具有快速啟動以及數據傳輸速度快、穩(wěn)定性和安全性高等優(yōu)點,能夠實現有線網絡和無線網絡的自動切換,適用于各種不同的嵌入式設備,特別是路由器和網關。整個系統(tǒng)需要實現三個模塊,分別是基于MT7620A的ONVIF協議模塊、網關與云平臺信息交互模塊和數據處理模塊。
3.1 基于MT7620A的ONVIF協議模塊
網關需要對網絡攝像機進行一系列的讀取命令操作,所以網絡攝像機為監(jiān)控服務器,網關為監(jiān)控服務客戶端。對于監(jiān)控服務端和客戶端的交互,ONVIF協議中規(guī)定了眾多交互指令[11],在本次開發(fā)中只用到了7條:設備發(fā)現、設備鑒權、設備信息查詢、設備能力查詢、設備視頻架構查詢、設備視頻流地址查詢和設備云臺控制指令。
為了實現上述功能,需要為OpenWrt系統(tǒng)配置ONVIF協議。目前使用gsoap工具[12]可以很方便地生成ONVIF客戶端功能代碼,如圖3所示。
首先配置gsoap安裝環(huán)境,系統(tǒng)需先安裝Bison、Flex和Openssl等必要的配置庫;然后下載安裝gsoap工具包;之后使用wsdl2h工具根據配置的WSDL文件生成onvif.h頭文件;最后使用soapcpp2工具,根據配置的onvif.h頭文件生成客戶端功能代碼,并使用交叉編譯工具將代碼編譯為動態(tài)鏈接庫放入OpenWrt系統(tǒng)。
網關通過這部分代碼提供的接口創(chuàng)建ONVIF客戶端,客戶端主要實現4個功能:設備發(fā)現、設備信息獲取、視頻流讀取和云臺控制。大部分網絡攝像機在被訪問時都需要通過用戶名和密碼進行鑒權。除了設備發(fā)現功能,客戶端在實現其他功能之前都需要調用soap_wsse_add_UsernameTokenDigest接口進行鑒權。
(1)設備發(fā)現
客戶端能夠搜索同一局域網中所有支持ONVIF協議的網絡攝像機,搜索原理是客戶端在UDP協議下,向網段內的組播地址239.255.255.250、端口3702,不斷地發(fā)送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是一款被廣泛使用的多媒體解決方案,既是一款音視頻編解碼工具,同時也是一組音視頻編解碼開發(fā)套件。作為編解碼開發(fā)套件,它為開發(fā)者提供了豐富的音視頻處理的調用接口。在OpenWrt系統(tǒng)中移植FFMPEG開發(fā)庫,通過調用視頻流獲取接口從相應視頻流地址讀取編碼為H264的碼流。
(4)云臺控制
云臺一般有三種控制模式,分別是連續(xù)運動、相對運動和絕對運動。綜合考慮選擇相對運動作為控制方式。根據PTZ控制地址調用soap_call_tptz_RelativeMove接口實現云臺全方位(上下、左右)移動及鏡頭的變焦。
3.2 網關與云平臺信息交互模塊
網關與云平臺的通信分為兩部分。
第一部分是基于MQTT協議的數據通信部分,MQTT具有低協議開銷、斷線重連、低功耗、支持大量平臺并發(fā)連接和良好的跨平臺兼容性等優(yōu)點,網關與云平臺采用JSON數據格式[13]進行通信,通過訂閱相應主題實現信令交互。
第二部分是網關使用Socket TCP將視頻流發(fā)送至云平臺,Socket TCP提供了可靠的數據傳輸,通過握手、確認機制等來保證數據傳輸的完整性和可靠性;Socket TCP的傳輸順序性保證了數據傳輸的順序,即數據包將按照發(fā)送的順序被接收。這對于視頻流傳輸也是非常重要的,因為視頻幀需要按照正確的順序解碼和播放。另外Socket TCP具有擁塞控制機制,可以根據網絡狀況調整數據傳輸速率,以避免網絡擁塞,這有助于確保視頻流在各種網絡條件下的穩(wěn)定傳輸。雖然相對于Socket UDP,Socket TCP的傳輸速度可能稍慢一些,但在大多數情況下,這種差異并不會對視頻傳輸產生明顯的影響。
3.3 數據處理模塊
數據處理模塊是網關功能實現的核心部分。平臺下發(fā)的指令如圖4所示。按照協議進行解析,調用相應的接口實現具體功能,并將執(zhí)行結果返回至云平臺。主要實現設備管理和設備控制兩個功能。
(1)設備管理
設備添加和設備更新的命令格式相同,區(qū)別在于設備功能分別是“setdev”和“update”。網關根據接收到的設備IP地址、設備用戶名和設備密碼,調用ONVIF客戶端接口獲取設備信息、設備能力、PTZ控制地址和視頻流地址,并保存相應的設備信息。
對于設備刪除命令,只需配置設備類型為“Camera”、設備功能為“delete”和相應的設備ID。網關接收到命令之后,將存儲器中對應的設備信息清空,并返回命令執(zhí)行結果。
對于設備查詢命令,只需配置設備類型為“Camera”,設備功能為“search”。網關根據命令,將已添加至存儲器的設備信息(設備ID、設備品牌、設備串行序列號、設備IP地址、用戶名和密碼)返回至云平臺。
(2)設備控制
對于云臺控制命令,只需配置設備類型為“Camera”以及相應的設備ID,設備功能分為云臺的上轉、下轉、左轉、右轉、焦距縮小和焦距放大,功能碼分別為“ptz_up”“ptz_down”“ptz_left”“ptz_right”“ptz_zoomin”和“ptz_zoomout”。網關接收到命令之后,調用ONVIF客戶端云臺控制接口,對云臺實現相應的控制,并將執(zhí)行結果返回至云平臺。
對于視頻流讀取命令,只需配置設備類型為“Camera”以及相應的設備ID,設備功能分為視頻流的打開和關閉,功能碼分別為“rtsp_open”和“rtsp_close”。網關接收到視頻流打開命令之后,根據設備ID調用FFMPEG接口讀取相應設備的視頻流,并創(chuàng)建Socket TCP客戶端,將視頻流發(fā)送至云平臺。
4 網關測試
對網關進行測試,測試內容包括網絡測試、設備管理和設備控制測試。
4.1 網絡測試
有線網絡測試:有線網接入網關WAN口,測試設備網絡,并用電腦依次連接測試各個LAN口,均能正常聯網。
4G網絡測試:將有線網斷開,此時網關會自動切換為4G通信,通過ping命令測試網絡延遲如圖5所示,并用電腦依次連接測試各個LAN口,均能正常聯網。
4.2 設備管理測試
測試添加兩臺設備分別為??低暫痛笕A的攝像機,通過查詢命令獲得添加設備的信息如圖6所示。
發(fā)送刪除大華攝像機命令之后重新查詢,設備只保留了??禂z像機的信息。
4.3 設備控制測試
云臺控制:對??档那驒C進行云臺控制測試,進行上轉、下轉、左轉、右轉控制以及焦距縮小和放大測試。圖7是網關發(fā)送給設備的PTZ控制數據包,其中PanTilt是對云臺轉向的控制,x代表左右方向的調節(jié),y代表上下方向的調節(jié),圖中y=-0.1表示控制云臺向上轉動0.1的步長。Zoom代表對焦距的調節(jié)。測試證明,云平臺下發(fā)的設備控制指令能夠通過網關得到實現。
視頻流的獲取測試:云平臺下發(fā)視頻獲取命令,獲取碼流之后使用網頁進行播放,監(jiān)控界面如圖8所示。云平臺在播放視頻的同時對碼流進行保存,持續(xù)監(jiān)測大約1 h,幾乎沒有出現花屏和卡頓的情況。
5 結 語
本文基于MT7620A設計并實現了一種支持遠程監(jiān)控的智慧網關。通過ONVIF協議、MQTT通信和Socket TCP通信,實現監(jiān)控設備、網關和云平臺之間信令的交互以及視頻流的傳輸。測試結果表明,網關能實現監(jiān)控設備的接入與控制,有線和4G雙重通信方式使得網關與平臺之間的通信更為穩(wěn)定,實現了網絡攝像機與云平臺之間的遠程交互,滿足設計要求。
參考文獻
[1]黃方靖. ONVIF協議在IPCam系統(tǒng)中的設計與實現[J].電子測量技術,2015,38(5):139-142.
[2]周偉. 基于ONVIF協議的嵌入式視頻服務器的研究與設計[D].長沙:湖南大學,2017.
[3]楊輝,張楊旭,陳文藝.基于ONVIF協議的物聯網網關設計與實現[J].信息技術與信息化,2022,47(9):135-140.
[4]周旋. 基于ONVIF的高速公路網絡視頻監(jiān)控系統(tǒng)設計[D].西安:長安大學,2017.
[5]樊佩. 基于ONVIF協議的云臺控制網絡監(jiān)控系統(tǒng)[D]. 西安:西安工程大學,2016.
[6]劉浩. 基于ONVIF協議的視頻服務器的設計與實現[D]. 杭州:浙江工業(yè)大學,2019.
[7]湯永鋒,龔云生. MT7620A平臺與OpenWRT的WiFi通信系統(tǒng)設計[J].單片機與嵌入式系統(tǒng)應用,2017,17(4):32-36.
[8]明瑞,張金奎,胡杰.基于FFMPEG實時視頻傳輸系統(tǒng)設計[J].電腦知識與技術,2021,17(15):25-27.
[9]安立源,葛紅舞,趙振非,等.基于OpenWRT的5G融合通信網關設計[J].單片機與嵌入式系統(tǒng)應用,2022,22(4):20-23.
[10]陶偉,潘豐,崔恩隆,等. MT7628與OpenWrt的MQTT異構協議設計[J].單片機與嵌入式系統(tǒng)應用,2021,21(9):14-17.
[11]江勇,杜程遠.基于Hi3531的ONVIF高清網絡攝像機視頻數據接入設計[J].單片機與嵌入式系統(tǒng)應用,2016,16(8):50-53.
[12]嚴競雄. Linux環(huán)境下基于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);江蘇省研究生實踐創(chuàng)新計劃(SJCX22_1706)