孫旭楊 劉濱 滕健
摘要:為提高遠(yuǎn)程視頻監(jiān)控系統(tǒng)的可移動性和靈活性,提出了一種基于嵌入式Linux的4G網(wǎng)絡(luò)遠(yuǎn)程視頻監(jiān)控系統(tǒng)?;贏theros AR9331嵌入式微處理器擴展了4G網(wǎng)絡(luò)傳輸設(shè)備、視頻采集設(shè)備等,搭建了系統(tǒng)前端嵌入式平臺的硬件電路。通過移植OpenWrt操作系統(tǒng)到嵌入式平臺實現(xiàn)了任務(wù)調(diào)度和資源管理,在OpenWrt系統(tǒng)中安裝和配置了4G網(wǎng)卡驅(qū)動,并編寫了應(yīng)用程序?qū)崿F(xiàn)了視頻數(shù)據(jù)的采集、傳輸和遠(yuǎn)程監(jiān)控。與傳統(tǒng)的視頻監(jiān)控系統(tǒng)相比,該系統(tǒng)擺脫了線纜的束縛和網(wǎng)絡(luò)覆蓋面積的限制,增加了系統(tǒng)的可移動性和靈活性。
關(guān)鍵詞:視頻監(jiān)控;嵌入式系統(tǒng);網(wǎng)絡(luò)傳輸設(shè)備;遠(yuǎn)程監(jiān)控;移動性
中圖分類號:TP277 文獻標(biāo)識碼:A 文章編號:1009-3044(2019)04-0051-03
Abstract: To improve the mobility and flexibility of remote video surveillance system, put forward a kind of remote video surveillance system based on embedded Linux and 4G network. Based on AR9331 embedded microprocessor, the 4G network transmission equipment and video acquisition equipment are extended, and the hardware circuit of the system front-end embedded platform is built. The OpenWrt system is transplanted to this embedded platform to manage the resources and schedule the tasks in the system. In the OpenWrt system, the 4G network card driver is installed and configured, and the acquisition ,transmission and remote monitoring of video data are realized by programming. Compared with the traditional video surveillance system, the system free the constraints of cable and network coverage, and increases the mobility of the system.
Key words: video surveillance; embedded system; network transmission equipment; remote monitoring; mobility
視頻監(jiān)控系統(tǒng)以其直觀方便、信息全面、內(nèi)容豐富的特點廣泛應(yīng)用于安防領(lǐng)域,作為協(xié)助公共安全部門維護社會和諧穩(wěn)定、打擊違法行為的重要手段,是安防系統(tǒng)的重要組成部分[1,2]。近年來,隨著計算機在處理能力和處理速度方面的迅速提高,多種視頻圖像處理技術(shù)的出現(xiàn)與發(fā)展,網(wǎng)絡(luò)的全面普及和網(wǎng)絡(luò)傳輸速度的顯著提升,使得視頻監(jiān)控技術(shù)也有了長足的進步和發(fā)展,視頻監(jiān)控系統(tǒng)全面邁進了全數(shù)字化、網(wǎng)絡(luò)化、智能化的時代,日益受到各方面的關(guān)注和重視[3]。隨著第四代移動通信系統(tǒng)的出現(xiàn)和廣泛應(yīng)用,憑借其高速的傳輸速度和良好的綜合業(yè)務(wù)支持平臺,使得視頻監(jiān)控系統(tǒng)基于4G網(wǎng)絡(luò)傳輸視頻圖像數(shù)據(jù)變?yōu)楝F(xiàn)實,移動視頻監(jiān)控系統(tǒng)逐漸成為新的發(fā)展趨勢[4]。本文在原有視頻監(jiān)控系統(tǒng)“數(shù)字化”“高清化”和“網(wǎng)絡(luò)化”特點的基礎(chǔ)上,提出了一種基于嵌入式Linux的4G網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng),實現(xiàn)視頻監(jiān)控系統(tǒng)的“移動化”,該系統(tǒng)具有使用靈活、機動性強以及實時性高的特點。
1 系統(tǒng)總體方案設(shè)計
移動視頻監(jiān)控系統(tǒng)包括前端采集裝置的嵌入式平臺和遠(yuǎn)程終端。前端采集裝置使用Atheros AR9331微處理器作為主控CPU,擴展高清攝像頭采集視頻信息,使用4G網(wǎng)絡(luò)傳輸數(shù)據(jù),通過串口模塊進行軟件的下載和調(diào)試。在軟件上通過移植OpenWrt操作系統(tǒng)實現(xiàn)嵌入式平臺的設(shè)備管理和任務(wù)調(diào)度,安裝EC20 4G網(wǎng)卡驅(qū)動并且配置DDNS服務(wù)實現(xiàn)動態(tài)域名訪問,建立網(wǎng)絡(luò)間數(shù)據(jù)傳輸?shù)耐ǖ?。最后根?jù)UVC協(xié)議標(biāo)準(zhǔn),通過V4L2接口訪問視頻采集設(shè)備,獲取視頻圖像數(shù)據(jù),經(jīng)過格式轉(zhuǎn)換后以數(shù)據(jù)流的形式輸出到視頻流服務(wù)器實現(xiàn)遠(yuǎn)程視頻監(jiān)控。系統(tǒng)方案總體結(jié)構(gòu)如圖1所示。
本系統(tǒng)硬件部分以Atheros AR9331嵌入式微處理器為核心,采用模塊化設(shè)計,主要包含電源模塊、USB模塊、串口模塊、GPIO模塊、4G模塊、USB攝像頭以及存儲模塊,由各模塊搭建的硬件如圖2所示。
2 系統(tǒng)軟件設(shè)計
2.1 搭建嵌入式系統(tǒng)開發(fā)環(huán)境
為了開發(fā)和實現(xiàn)視頻監(jiān)控系統(tǒng),首先需要準(zhǔn)備開發(fā)所需的各種工具,并且搭建適合系統(tǒng)開發(fā)的環(huán)境平臺。嵌入式開發(fā)一般都需要經(jīng)過創(chuàng)建交叉編譯環(huán)境、建立BootLoader、移植Linux內(nèi)核、建立根文件系統(tǒng)、安裝驅(qū)動程序和安裝軟件程序等六個步驟,整個開發(fā)過程比較煩瑣[5]。而使用OpenWrt操作系統(tǒng)可快速完成應(yīng)用平臺的搭建,OpenWrt系統(tǒng)將交叉編譯器、Linux內(nèi)核、文件系統(tǒng)以及BootLoader全部整合到一起。當(dāng)OpenWrt成功在嵌入式平臺上運行時,可通過串口調(diào)試的方式,在PC機上實現(xiàn)對嵌入式平臺功能的配置,并且它的文件系統(tǒng)是可寫的,每次修改后并不需要重新進行編譯。所以對于本系統(tǒng),開發(fā)環(huán)境的搭建就可分為兩步,首先編譯生成基于AR9331的系統(tǒng)固件包并燒寫到嵌入式設(shè)備中,然后安裝交叉編譯器用于交叉編譯生成可在嵌入式平臺運行的程序。
在PC機上安裝VMware 10.0.1 + Ubuntu 12.04,下載OpenWrt源碼包和基于AR9331的文件補丁,編譯安裝后,會生成OpenWrt固件,將其燒寫到嵌入式平臺中,就可以在嵌入式平臺上運行OpenWrt系統(tǒng),可以通過串口對系統(tǒng)進行調(diào)試。
交叉編譯是指在主機平臺(如PC機)上編譯出能在另一個平臺上執(zhí)行的代碼。在嵌入式系統(tǒng)開發(fā)的過程中,負(fù)責(zé)執(zhí)行程序的嵌入式平臺存儲空間和運算能力不足,不能夠通過本機編譯生成可執(zhí)行程序。需要使用能力強的PC機,使用交叉編譯工具編譯出能夠運行于嵌入式平臺的應(yīng)用程序,過程如圖3所示[6]。本系統(tǒng)的交叉編譯器通過下載OpenWrt源碼并且在Ubuntu中編譯得到。
2.2 網(wǎng)絡(luò)的連接和訪問
2.2.1 掛載4G網(wǎng)卡接入網(wǎng)絡(luò)
接入網(wǎng)絡(luò)方式的改變是移動視頻監(jiān)控系統(tǒng)“移動化”最直接的體現(xiàn)。隨著4G網(wǎng)絡(luò)的逐步覆蓋,使用4G網(wǎng)卡接入網(wǎng)絡(luò)將不再受線纜的束縛和網(wǎng)絡(luò)覆蓋面積的限制。在本系統(tǒng)設(shè)計中,通過在嵌入式平臺中掛載4G網(wǎng)卡實現(xiàn)上網(wǎng)功能,完成數(shù)據(jù)的傳輸工作。通過串口進行網(wǎng)卡的掛載,命令如下:
#opkg install
kmod-mii_3.10.49-1_ar71xx.ipk
#opkg install kmod-usb-net_3.10.49-1_ar71xx.ipk
#opkg install kmod-usb-wdm_3.10.49-1_ar71xx.ipk
#opkg install kmod-usb-net-qmi-wwan_3.10.49-1_ar71xx.ipk
#opkg install uqmi_2014-05-27-d7a56……78fa_ar71xx.ipk
# uqmi -d /dev/cdc-wdm0 --start-network internet –autoconnect
執(zhí)行完上面操作后,添加一個新的網(wǎng)絡(luò)接口“wwan0”,修改目錄“/etc/config/”下的配置文件“network”,如圖4所示,添加一個新的接口用于4G網(wǎng)絡(luò)的數(shù)據(jù)通信。
經(jīng)過上述操作后,嵌入式平臺成為一個4G網(wǎng)絡(luò)設(shè)備。
2.2.2 動態(tài)域名訪問
嵌入式平臺每次啟動運行并連接到網(wǎng)絡(luò)的時候,總會隨機獲得一個IP地址用于網(wǎng)絡(luò)間的數(shù)據(jù)通信,但是動態(tài)的IP地址使遠(yuǎn)程訪問、管理嵌入式平臺造成了極大的不便,連接前總需要首先得到嵌入式平臺當(dāng)前分配的IP地址。動態(tài)域名服務(wù)DDNS允許為目標(biāo)平臺配置一個固定的可訪問域名,并且對應(yīng)的IP地址可以是動態(tài)的。DDNS(Dynamic Domain Name Server)是把動態(tài)的IP地址映射到了一個固定的域名解析服務(wù)上,當(dāng)進行網(wǎng)絡(luò)連接的時候,嵌入式平臺中的客戶端程序就會把本機的動態(tài)IP地址傳遞到服務(wù)商主機上,服務(wù)器程序則提供DNS服務(wù)進行動態(tài)域名解析。DDNS捕獲目標(biāo)平臺隨機的、動態(tài)的IP地址與域名相對應(yīng),這樣用戶就可以使用固定域名進行訪問[7]。
在本系統(tǒng)中,將使用“花生殼”軟件來完成動態(tài)域名解析的工作,解析嵌入式平臺獲得的動態(tài)IP地址,實現(xiàn)在任何地點和時間的情況下,無論任何的網(wǎng)絡(luò)運營商,都能夠?qū)η度胧狡脚_上搭建的服務(wù)器進行連接和訪問。
通過串口調(diào)試,對嵌入式平臺進行以下操作:
1) 安裝并啟動DDNS服務(wù)
# opkg install luci-app-ddns
2) 修改“/etc/config”目錄下DDNS
的配置文件“ddns”。
如圖5所示,其中“service_name”表示動態(tài)域名解析服務(wù)提供商,設(shè)置為“花生殼(oray.net)”,“username”和“password”輸入在花生殼注冊的用戶名和密碼,“domain”是在花生殼申請的固定訪問域名,當(dāng)前分配的動態(tài)IP地址通過“ip_url”連接“http://ddns.oray.com/checkip”獲得。
3) 更改防火墻的配置
修改“/etc/config”目錄下的文件“uhttpd”,把選項“rfc1918_filter”設(shè)置為“0”。
通過以上對DDNS服務(wù)的安裝和配置,就能夠?qū)崿F(xiàn)使用固定域名訪問嵌入式平臺。
2.3 視頻圖像的采集
視頻采集是視頻監(jiān)控的重要環(huán)節(jié),本系統(tǒng)通過在嵌入式平臺中接入高清攝像頭獲取視頻圖像數(shù)據(jù),這個視頻采集設(shè)備屬于“UVC”設(shè)備。UVC(USB video class)是應(yīng)用于USB視頻捕獲設(shè)備的協(xié)議標(biāo)準(zhǔn),符合此標(biāo)準(zhǔn)的硬件設(shè)備使用一個通用的驅(qū)動程序就可以插入并使用。UVC設(shè)備的管理是通過V4L2提供的接口函數(shù)來實現(xiàn)的。
V4L2(Video4Linux2)是Linux內(nèi)核中應(yīng)用于視頻設(shè)備的內(nèi)核驅(qū)動框架,為UVC免驅(qū)USB設(shè)備而設(shè)計,對應(yīng)用程序訪問音視頻采集設(shè)備提供了統(tǒng)一的接口,能夠獲取圖片、視頻和音頻等數(shù)據(jù)[8]。在“videodev2.h”文件中定義了一些V4L2重要的數(shù)據(jù)結(jié)構(gòu),圖像處理的過程就是對此文件中的這些數(shù)據(jù)進行操作。V4L2支持兩種采集圖像的方式:用于連續(xù)視頻讀取的內(nèi)存映射方式(mmap)和用于靜態(tài)圖片讀取的直接讀取方式(read)[9]。
在本系統(tǒng)中采用內(nèi)存映射的方式,通過V4L2框架提供的接口函數(shù)完成視頻采集,具體過程如下:
(1) 打開視頻設(shè)備文件,獲得設(shè)備具有的能力,對視頻的制式、窗口大小、幀格式、幀率和旋轉(zhuǎn)方式等參數(shù)進行設(shè)置;
(2) 向驅(qū)動請求三個視頻流數(shù)據(jù)的幀緩沖區(qū),通過內(nèi)存映射的方式將申請得到的幀緩沖區(qū)的地址從內(nèi)核空間映射到用戶空間,并加入視頻采集的輸出隊列中,等待視頻采集的開始;
(3) 啟動采集后,驅(qū)動程序把獲取的數(shù)據(jù)放入輸入隊列中的幀緩沖區(qū),等待一幀數(shù)據(jù)采集完成后,將這個幀緩沖區(qū)移動到輸出隊列中,并繼續(xù)采集下一幀數(shù)據(jù);
(4) 應(yīng)用程序從輸出隊列中取出幀緩沖區(qū),存儲或壓縮幀緩沖區(qū)中的數(shù)據(jù),處理完成后,將這一幀緩沖區(qū)重新放入到輸入隊列中,實現(xiàn)循環(huán)采集,整個數(shù)據(jù)采集的流程如圖6所示。
2.4 視頻流服務(wù)器的實現(xiàn)
經(jīng)過移植操作系統(tǒng)、安裝4G網(wǎng)絡(luò)驅(qū)動、配置高清攝像頭等幾個步驟后,嵌入式平臺具備了視頻采集和4G網(wǎng)絡(luò)傳輸數(shù)據(jù)的能力。通過搭建視頻流服務(wù)器就可以實現(xiàn)將嵌入式平臺作為視頻采集前端,可以通過遠(yuǎn)程終端訪問搭建的視頻流服務(wù)器實時監(jiān)控攝像頭采集到的視頻數(shù)據(jù)。
本系統(tǒng)選擇在嵌入式平臺中安裝MJPG-Streamer視頻流服務(wù)器,移植安裝完成后,修改服務(wù)器配置文件就可以實現(xiàn)移動視頻監(jiān)控系統(tǒng)中圖像的采集、處理、網(wǎng)絡(luò)傳輸?shù)墓ぷ?,通過串口進行安裝,具體命令如下:
# opkg install
libjpeg_6b-1_ar71xx.ipk
#opkg install kmod-video-core_3.10.49-1_ar71xx.ipk
#opkg install kmod-video-videobuf2_3.10.49-1_ar71xx.ipk
#opkg install kmod-video-uvc_3.10.49-1_ar71xx.ipk
#opkg install libpthread_0.9.33.2-1_ar71xx.ipk
#opkg install mjpg-streamer_r182-1_ar71xx.ipk
視頻流服務(wù)器安裝成功后,打開服務(wù)器配置文件,對視頻采集參數(shù)進行以下設(shè)置,如圖7所示。
選項“enabled”用于設(shè)置攝像頭的工作狀態(tài),“1”為開啟視頻采集;“/dev/video0”是攝像頭的驅(qū)動“port”為服務(wù)器遠(yuǎn)程訪問的端口;其他參數(shù)可以配置其他屬性,在此不再贅述。啟動“mjpg-streamer”服務(wù),將嵌入式平臺的內(nèi)網(wǎng)IP地址和MJPG-Streamer
搭建TCP服務(wù)器所使用的端口號“8080”與在“花生殼”申請的固定域名“h1461l2965.51mypc.cn”進行綁定,得到一個映射的端口號“16325”,就可以通過任意終端的瀏覽器觀看視頻圖像,如圖8所示。
3 結(jié)語
本文結(jié)合嵌入式Linux平臺和4G網(wǎng)絡(luò)數(shù)據(jù)傳輸技術(shù),通過硬件電路設(shè)計和軟件編程實現(xiàn)了遠(yuǎn)程無線視頻監(jiān)控系統(tǒng)。相比于傳統(tǒng)的基于Wifi技術(shù)的無線視頻監(jiān)控系統(tǒng),通過4G網(wǎng)絡(luò)傳輸視頻數(shù)據(jù),擺脫了網(wǎng)絡(luò)覆蓋面積的限制,實現(xiàn)了移動視頻監(jiān)控系統(tǒng),增加了視頻監(jiān)控系統(tǒng)的可移動性,使視頻監(jiān)控系統(tǒng)應(yīng)用更加靈活,具有更好的應(yīng)用前景。
參考文獻:
[1] 魏笑笑.網(wǎng)絡(luò)視頻監(jiān)控的關(guān)鍵技術(shù)及業(yè)務(wù)發(fā)展策略研究[J].科學(xué)技術(shù)與工程,2009,9(17):4965-4968.
[2] 盧秋波.視頻監(jiān)控技術(shù)簡介與發(fā)展趨勢[J].電信網(wǎng)技術(shù),2007,1:9-12.
[3] 梅飛.嵌入式Linux網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)設(shè)計[J].現(xiàn)代電子技術(shù),2007,30(14):66-68.
[4] 林鑫顯. 基于4G無線傳輸?shù)囊曨l應(yīng)用體系的研究與分析[J].電信工程技術(shù)與標(biāo)準(zhǔn)化,2015,6:49-54.
[5] 楊聰錕,楊雪芹,楊雪輝.基于嵌入式平臺的視頻采集軟件實現(xiàn)[J].工業(yè)儀表與自動化裝置,2016,4:30-33.
[6] 張歡慶,高麗,宋承祥.基于ARM的嵌入式Linux交叉編譯環(huán)境的研究與實現(xiàn)[J].計算機與數(shù)字工程,2012,40(2):151-153.
[7] 曾憲章,李瀟,王峰,等.動態(tài)域名解析服務(wù)系統(tǒng)及相關(guān)問題討論[J].微電子學(xué)與計算機,2005,22(12):81-84.
[8] 徐家,陳奇.基于V4L2的視頻設(shè)備驅(qū)動開發(fā)[J].計算機工程與設(shè)計,2010,31(16):3569-3572.
[9] 邱娜靈.基于嵌入式系統(tǒng)圖像采集的軟硬件設(shè)計與實現(xiàn)[D].西安:西南交通大學(xué),2009.
【通聯(lián)編輯:梁書】