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精品专区国产盗摄| 一区二区欧美日韩高清免费| 亚洲天堂久久新| 99久久成人国产精品免费| 久久综合伊人 六十路| 色精品视频| 97超碰精品成人国产| 精品午夜国产福利观看| 亚洲无线一二三四区男男| 国产成人在线无码免费视频| 亚洲欧美成人网| 91破解版在线亚洲| 久久精品国产亚洲麻豆| 国产精品成人AⅤ在线一二三四| 91小视频在线观看| 午夜国产精品视频| 国产极品美女在线观看| 毛片久久网站小视频| 夜夜操国产| 欧美精品一二三区| 亚洲精品无码在线播放网站| 国产好痛疼轻点好爽的视频| 亚洲网综合| 亚洲国产欧洲精品路线久久| 女人av社区男人的天堂| 免费激情网址| 97超碰精品成人国产| 国产91丝袜在线播放动漫| 国产幂在线无码精品| 国产久操视频| 欧美综合在线观看| 99福利视频导航| 亚洲一区二区三区中文字幕5566| 欧美日韩91| 亚洲男人的天堂网| 99久久国产综合精品女同| 99在线观看国产| 国产自在线播放| 国产伦精品一区二区三区视频优播| 国产99视频精品免费观看9e| 亚洲欧美综合另类图片小说区| 57pao国产成视频免费播放| 青青极品在线| 免费播放毛片| 91无码视频在线观看| 亚洲成人黄色在线| 91无码视频在线观看| 国产激情国语对白普通话| 国产一区二区三区夜色| 欧美性猛交xxxx乱大交极品| 免费国产高清视频| 国产欧美在线| 九色视频在线免费观看| 国产日韩精品一区在线不卡| 国产精品成人第一区| 亚洲综合网在线观看| 国产精品视频3p| 国产精品一区在线麻豆| 国产男女免费视频| 熟女成人国产精品视频| 国产精品女人呻吟在线观看| 亚洲欧洲日韩久久狠狠爱| 亚洲精品波多野结衣| 欧美第二区| 欧美日本激情| 色播五月婷婷| 国产精品久久久久无码网站| 欧美午夜小视频| 青青青国产免费线在| 亚洲日韩精品欧美中文字幕 | 国产丝袜啪啪| 国产美女一级毛片| 国产真实乱人视频| 四虎AV麻豆| 天天激情综合| 亚洲国产成人麻豆精品| 免费在线观看av| 又污又黄又无遮挡网站| 真人高潮娇喘嗯啊在线观看 |