999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

嵌入式無線視頻監控系統的設計與實現

2015-11-08 02:06:06王越龐振營王帥范先星
關鍵詞:嵌入式系統

王越,龐振營,王帥,范先星

(重慶理工大學a.計算機科學與技術學院;b.電子信息與自動化學院,重慶400054)

嵌入式無線視頻監控系統的設計與實現

王越a,龐振營a,王帥b,范先星a

(重慶理工大學a.計算機科學與技術學院;b.電子信息與自動化學院,重慶400054)

以搭載S3C2440微處理器的ARM9開發板為硬件平臺,使用USB免驅攝像頭作為視頻圖像采集設備,通過Linux內核提供的統一接口V4L2實現視頻圖像的采集。系統使用MJPEG算法壓縮技術實現視頻數據的編解碼,使用無線WiFi技術將視頻數據傳輸給客戶端。嵌入式設備終端采集視頻數據軟件是基于Linux開源的MJPG-streamer軟件,針對本系統的需要進行了重新編寫,并使用多線程技術。PC機端的監控管理平臺是基于Qt和OpenCV開發的一款具有友好圖形用戶界面的客戶端軟件。同時,在手機移動端基于Android開發了一款易安裝、易操作的APP客戶端。實驗結果表明:該系統運行穩定,在視頻監控客戶端能獲得清晰流暢的視頻流數據。

嵌入式;Linux;視頻監控;V4L2

視頻監控是對人們無法直接、即時觀察的場所提供實時、形象、真實的被監控對象的畫面作為即時處理或事后分析的一種手段[1]。隨著經濟建設的發展,無論是在銀行金融行業,還是在公司樓宇、倉儲管理等行業,視頻監控技術都發揮著不可替代的作用[2]。傳統有線視頻監控系統需要復雜的網絡布線,并且無法在手機移動端隨時隨地查看監控效果。本文克服了傳統有線視頻監控系統中存在的不足,設計并實現了在PC客戶端和手機APP客戶端均能通過無線WiFi實時監控的嵌入式無線視頻監控系統,并獲得了較好的監控效果。

1 系統總體設計

系統主要包括基于ARM硬件平臺的無線視頻監控終端[3-4]、PC機Windows系統下的Qt客戶端和手機移動端的APP客戶端。無線視頻監控終端使用以S3C2440微處理器芯片為核心的ARM9開發板為硬件平臺,并搭載所需的Linux操作系統。首先,使用開發板上連接的USB免驅攝像頭采集視頻數據,然后將采集到的數據傳輸到ARM開發板,由開發板上服務器端的圖像采集處理軟件對數據進行處理,最后通過開發板上連接的USB無線網卡發出的無線WiFi信號將視頻數據傳輸給客戶端。PC機Windows下的監控管理平臺是基于Qt和OpenCV開發的一款具有友好圖形用戶界面的客戶端,能實現實時監控、實時視頻錄像等功能;手機移動端是基于Android開發的一款易操作的APP客戶端,能實現實時監控、實時錄像、拍照等功能。二者通過特定客戶端連接無線視頻監控終端的無線WiFi后,均能獲得清晰流暢的視頻流數據,系統穩定性較好。無線視頻監控系統框圖見圖1。

2 無線視頻監控硬件及底層系統實現

本系統選用jz2440開發板作為無線視頻監控系統設計的硬件平臺。jz2440開發板是以S3C2440微處理器為核心的開發平臺。S3C2440處理器是具有ARM920T內核的一款16/32-bit RISC處理器,指令執行效率最高可達300 MIPS。該處理器內帶16 Kb指令緩存和16 Kb數據緩存,并采用12 MHz的系統外部時鐘源。系統存儲擴展了512 MB的NAND Flash(K9F1208U0M芯片)和64 MB的SDRAM(K4S561632E芯片)[5],其快速的數據處理能力和豐富的存儲空間為系統高效穩定地運行提供了硬件保障[6-7]。

運行在硬件平臺之上的Linux系統主要包括4個層次[8]:引導加載程序(Bootloader)、Linux內核、根文件系統、應用程序。

圖1 無線視頻監控系統框圖

2.1U-boot移植

在嵌入式操作系統中,Bootloader是連接操作系統和硬件平臺的橋梁,它在系統上電時開始運行,初始化硬件設備,準備軟件環境,最后調用操作系統內核。U-boot(universal boot loader)是遵循GPL條款的開放源代碼項目,為Bootloader中較為流行、功能強大的引導加載程序[9]。U-boot移植需要修改與開發板相關的配置文件和底層接口文件,然后才可以在目標開發板上運行。限于篇幅,移植過程本文省略。

2.2Linux內核移植

開發板使用linux-3.4.2內核版本,需要修改內核中的時鐘頻率使其支持系統外部時鐘源,修改網卡驅動使其支持網絡功能,以及修改MTD設備分區使其可以掛接文件系統等。

2.3NFS啟動根文件系統

新內核具備了網絡功能后,可通過設置開發板U-boot控制界面命令行參數自動從NFS啟動系統或者從NAND Flash啟動系統后手動掛接NFS文件系統。本文考慮方便性,選擇前者。

啟動開發板至U-boot控制界面,設置U-boot的環境變量,使開發板從網絡文件系統(NFS)啟動。本文使用的開發板IP為192.168.2.17,PC端虛擬機VMware中Linux有線網卡IP為192.168.2.30,NFS目錄為/work/nfs_root/fs_mini _mdev_new,在U-boot控制界面進行如下設置:

set ipaddr 192.168.2.17

set bootcmd'nfs 32000000 192.168.2.30:/ work/nfs_root/uImage_new_wifi;bootm 32000000'

set bootargs console=ttySAC0,115200 root=/ dev/nfs nfsroot=192.168.2.30:/work/nfs_root/fs_ mini_mdev_new ip=192.168.2.17

3 無線視頻監控服務器端實現

在完成視頻監控系統所需的設備硬件平臺的搭建和底層Linux系統的設計后,接下來繼續在嵌入式設備上構建一個視頻監控服務器,以實現視頻數據的采集和傳輸功能。

3.1服務器端視頻數據采集

視頻服務器軟件從USB免驅攝像頭獲取視頻數據,并將采集到的視頻數據使用MJPEG算法壓縮技術進行數據處理,然后通過無線方式發送給客戶端。服務器端采集視頻軟件是基于Linux開源的MJPG-streamer軟件,針對本系統的需要進行了重新編寫。該軟件使用多線程技術,輸入線程實現采集視頻數據功能,輸出線程用來響應來自客戶端用戶的請求,并向用戶發送視頻數據。重新編寫后的服務器軟件使用Linux內核向應用程序提供訪問音頻、視頻的統一接口V4L2,以實現視頻圖像的采集。V4L2接口采集視頻數據的工作流程見圖2。

3.2服務器端視頻數據傳輸

傳統有線視頻監控系統中的數據傳輸需要復雜的網絡布線,并且無法隨時隨地地保證移動端視頻監控的效果[10]。本系統克服了傳統有線視頻監控系統的不足,使用無線方式實現數據的傳輸。

為了實現無線數據傳輸,將開發板外接的USB無線網卡設置為AP(access point)工作模式,產生供客戶端連接的WiFi無線信號,并設置DHCP等服務使開發板每次連接上USB無線網卡后都能自動分配無線IP和自動設置網關。同時,為連接到開發板服務器端的客戶端分配一個識別IP,用于區分不同的客戶端。當攝像頭采集到視頻數據后,服務器端將通過無線網絡通信的方式將攝像頭采集到的視頻數據傳輸給連接至服務器的客戶端。

圖2V4L2接口采集視頻數據的工作流程

在Linux中,網絡通信是基于Socket編程實現的。服務器端通過Socket建立一個通信連接端口,客戶端通過此端口與服務器建立連接,并進行通信。服務器與客戶端之間的通信傳輸過程描述如下[11]:服務器端先調用Socket()函數創建一個套接字,接著調用bind()函數給套接字綁定一個端口號,然后再調用listen()函數監聽客戶端用戶請求;如果客戶端有connect()請求,服務器端則調用accept()函數與之建立TCP可靠連接,二者通過send()函數和recv()函數進行網絡數據通信。具體的TCP網絡通信流程見圖3。

4 無線視頻監控客戶端實現

完成開發板上視頻監控服務器端的搭建后,即可實現視頻數據的采集和TCP協議無線網絡傳輸。由于在客戶端通過網頁顯示視頻流延遲明顯,實時傳輸效果差,故在PC機的Windows系統下基于Qt和OpenCV開發了一款可移植性好、可操作性強的客戶端,實現實時監控、實時視頻錄像等功能。在手機移動端基于Android系統開發了一款易安裝、易操作的手機APP客戶端,實現實時監控、拍照、實時視頻錄像等功能。

圖3 服務器與客戶端TCP網絡通信流程

4.1PC客戶端實現

OpenCV是開源的計算機視覺庫[12],包含一系列C函數和少量C++類庫,可實現圖像處理和計算機視覺方面的很多通用算法。本文主要采用OpenCV中廣泛使用的圖形交互和媒體接口High-GUI庫對圖像和視頻進行讀寫處理。

Qt是用C++編寫,支持多操作系統平臺的應用程序開發框架[13]。Qt與其他GUI開發工具最大的不同在于它自行定義了信號與槽這種通信機制,該通信機制獨立于標準的C/C++語言。在傳統的GUI工具包中,窗口部件一般通過指向某個函數指針的回調函數來響應它們所觸發的每個動作。但是,在Qt中信號與槽取代了這些復雜的函數指針,使得編寫的這些通信程序更為明了。信號可以與槽進行單個連接,也可以將多個信號與單個槽進行連接,還可以將單個信號與多個槽進行連接。系統調用connect()函數將信號與槽連接起來。當信號被某一對象發射后,與其相關聯的槽將被立刻執行,類似普通的函數調用。當槽函數執行結束后,系統將調用disconnect()函數斷開發射者中的信號與接收者中的槽函數之間的關聯。

4.1.1PC端客戶端界面設計

Qt Creator是用Qt開發的輕量級跨平臺集成開發環境。它包含了一套用于創建和測試基于Qt應用程序的高效工具,包括高級的C++編輯器、上下文感知幫助系統、可視化調試器、源代碼管理工具、項目和構件管理工具[13]。本文使用Qt Creator設計用于接收視頻數據的客戶端。

在Windows操作系統下,打開Qt Creator創建一個工程,在Qt Creator的Design模式下編輯客戶端界面。在主編輯界面放置2個Line Edit:一個用于輸入服務端IP,另一個用于輸入服務端Port;5個Push Button分別用于連接、斷開服務器,開始、停止錄制視頻和關閉客戶端;2個Label分別用于顯示視頻數據和當前狀態。

4.1.2視頻圖像顯示過程分析

在服務器端使用TCP協議傳輸視頻數據,故在客戶端也應使用TCP協議來建立網絡連接和實現視頻數據傳輸。Qt中自帶的QTcpSocket類提供TCP套接字并實現TCP連接。在QTcpSocket類下創建1個tcpSocket對象,調用tcpSocket->connectToHost()連接至服務器。服務器端接受客戶端連接請求后,與客戶端建立TCP連接,并調用send()函數將攝像頭采集到的視頻數據通過無線網絡以幀為單位傳輸給客戶端。在客戶端用connect()函數將readyRead()信號與read()槽函數進行連接。當緩沖區有數據要讀的時候,會觸發readyRead()信號,從而自動調用read()槽函數讀取視頻數據。PC客戶端視頻圖像顯示流程如圖4所示。

4.2手機APP客戶端實現

Android是以Linux為基礎的開源的移動設備操作系統,目前廣泛應用于智能手機和平板電腦[14]。本研究基于Android[15]開發了一款手機APP客戶端,用來實現實時監控、實時錄像、拍照、瀏覽圖片等功能。

1個Android應用通常會包含多個Activity,但只有1個Activity會作為程序的入口。在Android中,通常使用Intent作為連接不同組件的通信載體。

圖4 PC客戶端視頻圖像顯示流程

在本系統中,當打開App客戶端時會首先執行FlashActivity作為程序的入口。在FlashActivity的界面布局文件flash.xml中放置2個EditText,一個用于填寫服務器的IP,另一個用于填寫服務器Port。1個Button按鈕用于與服務器建立連接。連接成功后,執行startActivity(new Intent(FlashActivity.this,MainActivity.class)),啟動MainActivity進入視頻監控主界面。在MainActivity的界面布局文件main.xml中使用相對布局RelativeLayout進行UI布局。在Palette的Custom Views文件夾下創建一個本系統中使用名為MjpegView的View,并將MjpegView放置在main.xml中,同時放置與RadioGroup一起使用的一組RadioButton。RadioGroup有OnCheckedChangeListener事件,而對于該事件的處理則使用onCheckedChanged()方法。在該方法中,根據RadioButton所分配的值來判斷是執行拍照、錄像還是瀏覽等操作。手機APP客戶端視頻監控流程如圖5所示。

5 系統測試

測試在整個產品開發過程中占有非常重要的地位,通過測試能檢測出系統及其穩定性是否符合要求。本系統的ARM開發板有線網卡IP設置為192.168.2.17,PC機Windows系統有線網卡IP設置為192.168.2.10。因為開發板設置為網絡文件系統(NFS)啟動,所以VMWare虛擬機中Linux系統的有線網卡IP設置為192.168.2.30,三者在同一網段。

圖5 手機APP客戶端視頻監控流程

5.1啟動視頻監控系統的服務器端

根據系統需求,對MJPG-streamer軟件進行重新編寫。將編寫后的文件通過CuteFTP軟件上傳到VMWare虛擬機中Ubuntu系統下的任一文件夾里,然后執行make命令,生成可執行文件mjpg_ streamer。使用命令sudo cp mjpg_streamer/work/ nfs_root/fs_mini_mdev_new/bin/將該可執行文件拷貝到開發板所使用的網絡文件系統中。

啟動開發板,使用SecureCRT終端仿真軟件登陸到開發板,連接USB攝像頭和USB無線網卡。經過之前的設置,USB無線網卡已工作在AP模式下。只要連接上USB無線網卡,開發板就會自動發出WiFi無線信號“CQUT_B204”,如圖6所示。

在終端使用命令#cd bin進入到bin目錄。在bin目錄下,使用#ls命令可以查看拷貝過來的可執行文件mjpg_streamer。輸入“#./mjpg_streamer”命令并回車,可以看到串口終端顯示出的視頻設備、視頻像素大小、幀格式、端口號等信息,并等待客戶端的連接。

5.2啟動視頻監控系統的客戶端

在PC機windows下,通過無線網卡連接“CQUT_B204”。打開Qt Creator軟件,點擊菜單欄Build下的Run,程序自動編譯后開始運行,并彈出連接服務器界面。輸入服務器IP和服務器Port,點擊“連接”按鈕連接到服務器。

圖6 AP模式下的WiFi信號

在手機移動端,打開WiFi,連接“CQUT_ B204”。打開預先安裝好的APP客戶端軟件,輸入服務器IP和服務器Port,點擊“連接”按鈕連接到服務器。

成功連接服務器后,服務器與客戶端建立TCP連接,并將攝像頭采集到的數據通過無線網絡傳輸給客戶端??蛻舳丝蓪崟r、穩定地顯示視頻流數據,并根據需要進行視頻拍照、視頻錄像、瀏覽圖片等操作。PC客戶端、手機客戶端與服務器視頻數據的傳輸效果見圖7、8。

圖7 PC客戶端與服務器的視頻數據傳輸效果

圖8 手機客戶端與服務器的視頻數據傳輸效果

6 結束語

本系統使用V4L2接口技術完成USB攝像頭視頻圖像的采集,利用MJPEG算法壓縮技術實現視頻數據的編解碼,通過TCP網絡實時無線傳輸視頻數據,并設計了分別適用于PC機和手機移動端的客戶端。測試結果表明,系統能實時、穩定地傳輸視頻流數據,對現場視頻圖像具有較好的監控效果。存在的不足之處:系統還不能實現對監控現場音頻的支持,也無法遠程操控攝像頭進行任意角度的視頻監控,還需要在本系統的基礎上做進一步研究開發。

[1]牛溫佳,劉銀龍.移動網絡視頻監控系統[M].北京:電子工業出版社,2013.

[2]陳峰,趙欣.基于QT和嵌入式的視頻監控系統[J].通信技術,2011(10):109-111.

[3]唐人財,劉連浩.基于嵌入式Linux遠程圖像監控系統的設計[J].計算機與現代化,2010(11):31-34.

[4]汪洋,鄭連清.基于網絡的校區視頻監控設計與實現[J].重慶理工大學學報:自然科學版,2011(10):82 -85.

[5]韋東山.嵌入式Linux應用開發完全手冊[M].北京:人民郵電出版社,2012.

[6]王溢琴.基于嵌入式的智能家居之視頻監控系統設計[J].計算機測量與控制,2014,22(11):3623-3626.

[7]毛劍飛.基于改進的H.264的視頻監控系統[J].計算機系統應用,2014,23(4):84-90.

[8]張愛芹.基于ARM的嵌入式視頻交通系統平臺研究[D].重慶:重慶理工大學,2009.

[9]李軍,張華春.U-Boot及Linux2.6在S3C2440A平臺上的移植方法[J].電子器件,2008(10):1667-1670.

[10]劉艷嬌.基于嵌入式Linux的無線視頻監控系統設計與實現[D].黑龍江:哈爾濱工程大學,2012.

[11]趙克佳.UNIX程序設計教程[M].北京:清華大學出版社,2002.

[12]于仕琪,劉瑞幀.學習Open CV[M].北京:清華大學出版社,2012.

[13]陳爽.Linux與Qt程序設計[M].北京:清華大學出版社,2011.

[14]鄭海洲.基于Android平臺的嵌入式視頻監控系統設計[J].自動化儀表,2013,34(9):30-33.

[15]楊飛,黃國宏.基于Android智能終端的移動視頻監控系統研究[J].計算機技術與發展,2013,23(2):195-198.

(責任編輯楊黎麗)

Design and Implementation of Embedded Wireless Video Monitoring System

WANG Yuea,PANG Zhen-yinga,WANG Shuaib,FAN Xian-xinga
(a.College of Computer Science and Engineering;b.College of Electronic Engineering and Automation,Chongqing University of Technology,Chongqing 400054,China)

This system was equipped with S3C2440 ARM9 microprocessor development board for the hardware platform and the Linux system was built on the platform.Using the USB camera-free drive as a video capture device,using the Linux kernel to provide a uniform interface for V4L2 video image capture and the algorithm of MJPEG to compress and decode the video data,and transmit these to client through WiFi technology.Server-side MJPG-streamer video data acquisition software was based on Linux open source software and this system needed to be overhauled and used multithreading technology.The client that based on Qt and OpenCV has a friendly graphical user interface and is easily installed and operated APP client based on Android for mobile phone.The experimental results show that the system runs stably and both clients can get a clear and smooth video streaming data.

embedded;Linux;video monitoring;V4L2

TP393

A

1674-8425(2015)04-0067-06

10.3969/j.issn.1674-8425(z).2015.04.013

2015-01-02

重慶市科技攻關計劃項目(cstc2009AC2068)

王越(1961—),男,重慶人,博士,教授,主要從事嵌入式技術、數據挖掘、數據庫技術研究;龐振營(1987—),男,河南商丘人,碩士研究生,主要從事嵌入式技術研究。

王越,龐振營,王帥,等.嵌入式無線視頻監控系統的設計與實現[J].重慶理工大學學報:自然科學版,2015(4):67-72.

format:WANG Yue,PANG Zhen-ying,WANG Shuai,et al.Design and Implementation of Embedded Wireless Video Monitoring System[J].Journal of Chongqing University of Technology:Natural Science,2015(4):67 -72.

猜你喜歡
嵌入式系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
TS系列紅外傳感器在嵌入式控制系統中的應用
電子制作(2019年7期)2019-04-25 13:17:14
嵌入式系統通信技術的應用
電子制作(2018年18期)2018-11-14 01:48:16
搭建基于Qt的嵌入式開發平臺
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
主站蜘蛛池模板: 欧美 亚洲 日韩 国产| 无码人中文字幕| 欧美一级片在线| 中文一级毛片| 无码国产伊人| 91啦中文字幕| 欧美成人午夜在线全部免费| 亚洲一级毛片在线观| 欧美成人精品在线| 亚洲欧美日韩成人在线| 色综合婷婷| 狠狠亚洲五月天| 国产成人久久777777| 国产一级在线播放| 精品在线免费播放| 国产福利在线观看精品| 91麻豆国产精品91久久久| 91区国产福利在线观看午夜 | 国产第八页| a国产精品| 国产地址二永久伊甸园| 99久久精品免费看国产电影| 九九免费观看全部免费视频| 视频在线观看一区二区| 亚洲三级成人| 国产精品成人一区二区不卡| 视频国产精品丝袜第一页| 免费xxxxx在线观看网站| 伊人久久大香线蕉aⅴ色| 狠狠色噜噜狠狠狠狠色综合久| 中国国产高清免费AV片| 超清无码熟妇人妻AV在线绿巨人 | av性天堂网| 午夜激情婷婷| 欧美亚洲综合免费精品高清在线观看| 日韩无码视频网站| 91在线国内在线播放老师| 另类欧美日韩| 国产无码高清视频不卡| 久久这里只有精品8| 2021天堂在线亚洲精品专区| 欧美综合区自拍亚洲综合绿色| 国产精品一线天| 2021国产乱人伦在线播放| 九九热精品视频在线| 国产一级毛片在线| 午夜日b视频| 色噜噜久久| 国产精品尹人在线观看| 亚洲国产成人久久精品软件| 五月天福利视频| 国产性精品| 99热这里只有精品在线观看| 欧美伦理一区| 亚洲欧美日韩中文字幕一区二区三区| 欧洲高清无码在线| 亚洲熟女中文字幕男人总站| 婷婷色中文| 亚洲国产日韩在线成人蜜芽| a级毛片一区二区免费视频| 午夜福利在线观看成人| 亚洲色图另类| 亚洲国产成熟视频在线多多 | 亚洲美女操| 成人在线观看一区| 国产网站一区二区三区| 国产麻豆aⅴ精品无码| 国产精鲁鲁网在线视频| 99国产精品国产高清一区二区| 欧美怡红院视频一区二区三区| 欧美一级夜夜爽| 国产91熟女高潮一区二区| www.亚洲国产| 成人免费网站在线观看| 青草免费在线观看| 日韩无码视频网站| 精品国产一区91在线| 久热99这里只有精品视频6| 久无码久无码av无码| 国产超碰在线观看| 97免费在线观看视频| 色精品视频|