孫旭楊 劉濱 滕健
摘要:為提高遠程視頻監控系統的可移動性和靈活性,提出了一種基于嵌入式Linux的4G網絡遠程視頻監控系統。基于Atheros AR9331嵌入式微處理器擴展了4G網絡傳輸設備、視頻采集設備等,搭建了系統前端嵌入式平臺的硬件電路。通過移植OpenWrt操作系統到嵌入式平臺實現了任務調度和資源管理,在OpenWrt系統中安裝和配置了4G網卡驅動,并編寫了應用程序實現了視頻數據的采集、傳輸和遠程監控。與傳統的視頻監控系統相比,該系統擺脫了線纜的束縛和網絡覆蓋面積的限制,增加了系統的可移動性和靈活性。
關鍵詞:視頻監控;嵌入式系統;網絡傳輸設備;遠程監控;移動性
中圖分類號:TP277 文獻標識碼: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
視頻監控系統以其直觀方便、信息全面、內容豐富的特點廣泛應用于安防領域,作為協助公共安全部門維護社會和諧穩定、打擊違法行為的重要手段,是安防系統的重要組成部分[1,2]。近年來,隨著計算機在處理能力和處理速度方面的迅速提高,多種視頻圖像處理技術的出現與發展,網絡的全面普及和網絡傳輸速度的顯著提升,使得視頻監控技術也有了長足的進步和發展,視頻監控系統全面邁進了全數字化、網絡化、智能化的時代,日益受到各方面的關注和重視[3]。隨著第四代移動通信系統的出現和廣泛應用,憑借其高速的傳輸速度和良好的綜合業務支持平臺,使得視頻監控系統基于4G網絡傳輸視頻圖像數據變為現實,移動視頻監控系統逐漸成為新的發展趨勢[4]。本文在原有視頻監控系統“數字化”“高清化”和“網絡化”特點的基礎上,提出了一種基于嵌入式Linux的4G網絡視頻監控系統,實現視頻監控系統的“移動化”,該系統具有使用靈活、機動性強以及實時性高的特點。
1 系統總體方案設計
移動視頻監控系統包括前端采集裝置的嵌入式平臺和遠程終端。前端采集裝置使用Atheros AR9331微處理器作為主控CPU,擴展高清攝像頭采集視頻信息,使用4G網絡傳輸數據,通過串口模塊進行軟件的下載和調試。在軟件上通過移植OpenWrt操作系統實現嵌入式平臺的設備管理和任務調度,安裝EC20 4G網卡驅動并且配置DDNS服務實現動態域名訪問,建立網絡間數據傳輸的通道。最后根據UVC協議標準,通過V4L2接口訪問視頻采集設備,獲取視頻圖像數據,經過格式轉換后以數據流的形式輸出到視頻流服務器實現遠程視頻監控。系統方案總體結構如圖1所示。
本系統硬件部分以Atheros AR9331嵌入式微處理器為核心,采用模塊化設計,主要包含電源模塊、USB模塊、串口模塊、GPIO模塊、4G模塊、USB攝像頭以及存儲模塊,由各模塊搭建的硬件如圖2所示。
2 系統軟件設計
2.1 搭建嵌入式系統開發環境
為了開發和實現視頻監控系統,首先需要準備開發所需的各種工具,并且搭建適合系統開發的環境平臺。嵌入式開發一般都需要經過創建交叉編譯環境、建立BootLoader、移植Linux內核、建立根文件系統、安裝驅動程序和安裝軟件程序等六個步驟,整個開發過程比較煩瑣[5]。而使用OpenWrt操作系統可快速完成應用平臺的搭建,OpenWrt系統將交叉編譯器、Linux內核、文件系統以及BootLoader全部整合到一起。當OpenWrt成功在嵌入式平臺上運行時,可通過串口調試的方式,在PC機上實現對嵌入式平臺功能的配置,并且它的文件系統是可寫的,每次修改后并不需要重新進行編譯。所以對于本系統,開發環境的搭建就可分為兩步,首先編譯生成基于AR9331的系統固件包并燒寫到嵌入式設備中,然后安裝交叉編譯器用于交叉編譯生成可在嵌入式平臺運行的程序。
在PC機上安裝VMware 10.0.1 + Ubuntu 12.04,下載OpenWrt源碼包和基于AR9331的文件補丁,編譯安裝后,會生成OpenWrt固件,將其燒寫到嵌入式平臺中,就可以在嵌入式平臺上運行OpenWrt系統,可以通過串口對系統進行調試。
交叉編譯是指在主機平臺(如PC機)上編譯出能在另一個平臺上執行的代碼。在嵌入式系統開發的過程中,負責執行程序的嵌入式平臺存儲空間和運算能力不足,不能夠通過本機編譯生成可執行程序。需要使用能力強的PC機,使用交叉編譯工具編譯出能夠運行于嵌入式平臺的應用程序,過程如圖3所示[6]。本系統的交叉編譯器通過下載OpenWrt源碼并且在Ubuntu中編譯得到。
2.2 網絡的連接和訪問
2.2.1 掛載4G網卡接入網絡
接入網絡方式的改變是移動視頻監控系統“移動化”最直接的體現。隨著4G網絡的逐步覆蓋,使用4G網卡接入網絡將不再受線纜的束縛和網絡覆蓋面積的限制。在本系統設計中,通過在嵌入式平臺中掛載4G網卡實現上網功能,完成數據的傳輸工作。通過串口進行網卡的掛載,命令如下:
#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
執行完上面操作后,添加一個新的網絡接口“wwan0”,修改目錄“/etc/config/”下的配置文件“network”,如圖4所示,添加一個新的接口用于4G網絡的數據通信。
經過上述操作后,嵌入式平臺成為一個4G網絡設備。
2.2.2 動態域名訪問
嵌入式平臺每次啟動運行并連接到網絡的時候,總會隨機獲得一個IP地址用于網絡間的數據通信,但是動態的IP地址使遠程訪問、管理嵌入式平臺造成了極大的不便,連接前總需要首先得到嵌入式平臺當前分配的IP地址。動態域名服務DDNS允許為目標平臺配置一個固定的可訪問域名,并且對應的IP地址可以是動態的。DDNS(Dynamic Domain Name Server)是把動態的IP地址映射到了一個固定的域名解析服務上,當進行網絡連接的時候,嵌入式平臺中的客戶端程序就會把本機的動態IP地址傳遞到服務商主機上,服務器程序則提供DNS服務進行動態域名解析。DDNS捕獲目標平臺隨機的、動態的IP地址與域名相對應,這樣用戶就可以使用固定域名進行訪問[7]。
在本系統中,將使用“花生殼”軟件來完成動態域名解析的工作,解析嵌入式平臺獲得的動態IP地址,實現在任何地點和時間的情況下,無論任何的網絡運營商,都能夠對嵌入式平臺上搭建的服務器進行連接和訪問。
通過串口調試,對嵌入式平臺進行以下操作:
1) 安裝并啟動DDNS服務
# opkg install luci-app-ddns
2) 修改“/etc/config”目錄下DDNS
的配置文件“ddns”。
如圖5所示,其中“service_name”表示動態域名解析服務提供商,設置為“花生殼(oray.net)”,“username”和“password”輸入在花生殼注冊的用戶名和密碼,“domain”是在花生殼申請的固定訪問域名,當前分配的動態IP地址通過“ip_url”連接“http://ddns.oray.com/checkip”獲得。
3) 更改防火墻的配置
修改“/etc/config”目錄下的文件“uhttpd”,把選項“rfc1918_filter”設置為“0”。
通過以上對DDNS服務的安裝和配置,就能夠實現使用固定域名訪問嵌入式平臺。
2.3 視頻圖像的采集
視頻采集是視頻監控的重要環節,本系統通過在嵌入式平臺中接入高清攝像頭獲取視頻圖像數據,這個視頻采集設備屬于“UVC”設備。UVC(USB video class)是應用于USB視頻捕獲設備的協議標準,符合此標準的硬件設備使用一個通用的驅動程序就可以插入并使用。UVC設備的管理是通過V4L2提供的接口函數來實現的。
V4L2(Video4Linux2)是Linux內核中應用于視頻設備的內核驅動框架,為UVC免驅USB設備而設計,對應用程序訪問音視頻采集設備提供了統一的接口,能夠獲取圖片、視頻和音頻等數據[8]。在“videodev2.h”文件中定義了一些V4L2重要的數據結構,圖像處理的過程就是對此文件中的這些數據進行操作。V4L2支持兩種采集圖像的方式:用于連續視頻讀取的內存映射方式(mmap)和用于靜態圖片讀取的直接讀取方式(read)[9]。
在本系統中采用內存映射的方式,通過V4L2框架提供的接口函數完成視頻采集,具體過程如下:
(1) 打開視頻設備文件,獲得設備具有的能力,對視頻的制式、窗口大小、幀格式、幀率和旋轉方式等參數進行設置;
(2) 向驅動請求三個視頻流數據的幀緩沖區,通過內存映射的方式將申請得到的幀緩沖區的地址從內核空間映射到用戶空間,并加入視頻采集的輸出隊列中,等待視頻采集的開始;
(3) 啟動采集后,驅動程序把獲取的數據放入輸入隊列中的幀緩沖區,等待一幀數據采集完成后,將這個幀緩沖區移動到輸出隊列中,并繼續采集下一幀數據;
(4) 應用程序從輸出隊列中取出幀緩沖區,存儲或壓縮幀緩沖區中的數據,處理完成后,將這一幀緩沖區重新放入到輸入隊列中,實現循環采集,整個數據采集的流程如圖6所示。
2.4 視頻流服務器的實現
經過移植操作系統、安裝4G網絡驅動、配置高清攝像頭等幾個步驟后,嵌入式平臺具備了視頻采集和4G網絡傳輸數據的能力。通過搭建視頻流服務器就可以實現將嵌入式平臺作為視頻采集前端,可以通過遠程終端訪問搭建的視頻流服務器實時監控攝像頭采集到的視頻數據。
本系統選擇在嵌入式平臺中安裝MJPG-Streamer視頻流服務器,移植安裝完成后,修改服務器配置文件就可以實現移動視頻監控系統中圖像的采集、處理、網絡傳輸的工作,通過串口進行安裝,具體命令如下:
# 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
視頻流服務器安裝成功后,打開服務器配置文件,對視頻采集參數進行以下設置,如圖7所示。
選項“enabled”用于設置攝像頭的工作狀態,“1”為開啟視頻采集;“/dev/video0”是攝像頭的驅動“port”為服務器遠程訪問的端口;其他參數可以配置其他屬性,在此不再贅述。啟動“mjpg-streamer”服務,將嵌入式平臺的內網IP地址和MJPG-Streamer
搭建TCP服務器所使用的端口號“8080”與在“花生殼”申請的固定域名“h1461l2965.51mypc.cn”進行綁定,得到一個映射的端口號“16325”,就可以通過任意終端的瀏覽器觀看視頻圖像,如圖8所示。
3 結語
本文結合嵌入式Linux平臺和4G網絡數據傳輸技術,通過硬件電路設計和軟件編程實現了遠程無線視頻監控系統。相比于傳統的基于Wifi技術的無線視頻監控系統,通過4G網絡傳輸視頻數據,擺脫了網絡覆蓋面積的限制,實現了移動視頻監控系統,增加了視頻監控系統的可移動性,使視頻監控系統應用更加靈活,具有更好的應用前景。
參考文獻:
[1] 魏笑笑.網絡視頻監控的關鍵技術及業務發展策略研究[J].科學技術與工程,2009,9(17):4965-4968.
[2] 盧秋波.視頻監控技術簡介與發展趨勢[J].電信網技術,2007,1:9-12.
[3] 梅飛.嵌入式Linux網絡視頻監控系統設計[J].現代電子技術,2007,30(14):66-68.
[4] 林鑫顯. 基于4G無線傳輸的視頻應用體系的研究與分析[J].電信工程技術與標準化,2015,6:49-54.
[5] 楊聰錕,楊雪芹,楊雪輝.基于嵌入式平臺的視頻采集軟件實現[J].工業儀表與自動化裝置,2016,4:30-33.
[6] 張歡慶,高麗,宋承祥.基于ARM的嵌入式Linux交叉編譯環境的研究與實現[J].計算機與數字工程,2012,40(2):151-153.
[7] 曾憲章,李瀟,王峰,等.動態域名解析服務系統及相關問題討論[J].微電子學與計算機,2005,22(12):81-84.
[8] 徐家,陳奇.基于V4L2的視頻設備驅動開發[J].計算機工程與設計,2010,31(16):3569-3572.
[9] 邱娜靈.基于嵌入式系統圖像采集的軟硬件設計與實現[D].西安:西南交通大學,2009.
【通聯編輯:梁書】