• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    Linux和Android手機(jī)終端的WiFi視頻監(jiān)控系統(tǒng)

    2014-07-03 03:33:30沈顯慶張煒瑋常佳龍
    關(guān)鍵詞:網(wǎng)卡嵌入式攝像頭

    沈顯慶,張煒瑋,常佳龍

    (黑龍江科技大學(xué) 電氣與信息工程學(xué)院,哈爾濱150027)

    引 言

    近年來(lái),隨著嵌入式技術(shù)、無(wú)線通信技術(shù)和多媒體技術(shù)的快速發(fā)展,視頻監(jiān)控正在向著數(shù)字化、網(wǎng)絡(luò)化、無(wú)線化方向發(fā)展[1]。由于嵌入式系統(tǒng)具有集成度高、功耗低、體積小等優(yōu)點(diǎn),再結(jié)合無(wú)線網(wǎng)絡(luò)組網(wǎng)靈活、可擴(kuò)展性好的優(yōu)勢(shì),無(wú)線視頻監(jiān)控與有線視頻監(jiān)控系統(tǒng)相比,體現(xiàn)出了無(wú)法比擬的優(yōu)越性[2]。本系統(tǒng)利用USB攝像頭采集數(shù)據(jù)。由于S3C6410處理器內(nèi)置了(高性能多媒體處理器)硬件編解碼模塊 MFC(Multi-Format Codec),其將采集到的圖像數(shù)據(jù)壓縮為高效的H.264編碼格式,在S3C6410處理器的控制下通過(guò)WiFi發(fā)送至無(wú)線網(wǎng)絡(luò),這樣用戶可隨時(shí)隨地通過(guò)Android手機(jī)客戶端實(shí)現(xiàn)實(shí)時(shí)的視頻監(jiān)控。

    1 系統(tǒng)總體設(shè)計(jì)

    本設(shè)計(jì)采用服務(wù)器/客戶端的架構(gòu),服務(wù)器以S3C6410開(kāi)發(fā)板為控制板,以Android手機(jī)為客戶端,服務(wù)器和客戶端通過(guò)WiFi進(jìn)行通信。服務(wù)器由嵌入式硬件平臺(tái)、嵌入式操作系統(tǒng)和應(yīng)用程序組成。硬件部分由S3C6410主控制板、USB攝像頭、WiFi組成;操作系統(tǒng)由s3c-Linux-2.6.23內(nèi)核、YAFFS文件系統(tǒng)、攝像頭驅(qū)動(dòng)程序、MFC驅(qū)動(dòng)程序、網(wǎng)卡驅(qū)動(dòng)程序組成;應(yīng)用程序由視頻采集、視頻壓縮編碼和數(shù)據(jù)發(fā)送程序等組成。采用WiFi無(wú)線網(wǎng)絡(luò)作為傳輸媒介,通過(guò)無(wú)線網(wǎng)卡接入到接入點(diǎn)AP??蛻舳藶锳ndroid手機(jī),利用Android提供的各種API函數(shù)來(lái)實(shí)現(xiàn)功能要求[3]。USB攝像頭采集視頻數(shù)據(jù),經(jīng)過(guò)內(nèi)置的DSP芯片處理將其轉(zhuǎn)化為YUV格式的圖像,再通過(guò)USB接口傳送到主控制板上。主控制板通過(guò)內(nèi)置的MFC模塊將YUV格式圖像壓縮為H.264編碼格式,并對(duì)視頻數(shù)據(jù)進(jìn)行處理、存儲(chǔ),然后利用WiFi將其發(fā)送至無(wú)線網(wǎng)絡(luò)。Android手機(jī)客戶端,通過(guò)客戶端軟件可以實(shí)時(shí)讀取視頻流。服務(wù)器和客戶端都采用宿主機(jī)和目標(biāo)機(jī)的交叉開(kāi)發(fā)模式[4]。

    本文的研究分以下幾步進(jìn)行:

    ①系統(tǒng)環(huán)境的搭建,包括Bootloader、內(nèi)核、根文件系統(tǒng)的移植;

    ②USB攝像頭驅(qū)動(dòng)程序、MFC驅(qū)動(dòng)程序、網(wǎng)卡驅(qū)動(dòng)程序的移植;

    ③V4L2的視頻采集和H.264的視頻壓縮編碼;

    ④RPT協(xié)議的數(shù)據(jù)傳送;

    ⑤Android手機(jī)客戶端的數(shù)據(jù)接收和界面顯示。

    2 系統(tǒng)基本網(wǎng)絡(luò)拓?fù)?/h2>

    WiFi是一種成本低、傳輸速率較高、可靠性高、組網(wǎng)靈活、擴(kuò)展性強(qiáng)的短距離無(wú)線通信技術(shù)。WiFi有兩種基本工作模式,Ad hoc自組網(wǎng)絡(luò)模式和Infrastrcucture組網(wǎng)模式。本系統(tǒng)采用有線和無(wú)線相結(jié)合的開(kāi)發(fā)模式,WiFi采用Infrastrcucture模式組網(wǎng),以無(wú)線路由作為接入點(diǎn)AP。服務(wù)器通過(guò)無(wú)線網(wǎng)卡與接入點(diǎn)AP相連,接入點(diǎn)AP通過(guò)有線鏈路與IP網(wǎng)絡(luò)連接,接入到互聯(lián)網(wǎng)。AP將無(wú)線鏈路和有線鏈路連接起來(lái),組網(wǎng)方案如圖1所示。視頻流通過(guò)無(wú)線鏈路發(fā)送到接入點(diǎn)AP,這樣Android手機(jī)端可以通過(guò)3G或WiFi網(wǎng)絡(luò)實(shí)現(xiàn)遠(yuǎn)程的實(shí)時(shí)視頻監(jiān)控。

    圖1 組網(wǎng)方案

    3 系統(tǒng)硬件設(shè)計(jì)

    硬件系統(tǒng)主要由S3C6410微控制器及其外圍電路、USB攝像頭、USB無(wú)線網(wǎng)卡、Android手機(jī)等組成。考慮到視頻數(shù)據(jù)的存儲(chǔ)選用1 TB的移動(dòng)硬盤(pán)作為存儲(chǔ)介質(zhì),硬件組成框圖如圖2所示。

    圖2 硬件組成框圖

    3.1 S3C6410微控制器及其外圍電路

    S3C6410是一款以ARM1176為處理器核,低功耗、高性價(jià)比的RSIC微處理器,提供了存儲(chǔ)控制器、USB控制接口以及豐富的外設(shè)接口,內(nèi)置了多格式編解碼器MFC。NAND Flash用于存儲(chǔ)系統(tǒng)程序,SDRAM則用于存儲(chǔ)系統(tǒng)運(yùn)行時(shí)的程序,JATG接口用于燒寫(xiě)程序,RS232接口用于與PC機(jī)進(jìn)行交互[5]。

    3.2 攝像頭

    由于MFC只能從YUV數(shù)據(jù)轉(zhuǎn)化為H.264格式,所以攝像頭采用輸出格式為YUV的USB攝像頭。此類(lèi)USB攝像頭由圖像傳感器芯片和DSP芯片兩部分組成。景物的光學(xué)圖像照射在圖像傳感器上,產(chǎn)生電信號(hào),經(jīng)A/D轉(zhuǎn)換器轉(zhuǎn)化為數(shù)字信號(hào),經(jīng)DSP芯片處理加工生成YUV格式的圖像,通過(guò)USB傳送至主控制板。

    3.3 無(wú)線網(wǎng)卡

    本系統(tǒng)采用USB接口的TP-Link TL-WN322G WiFi無(wú)線網(wǎng)卡,傳輸速率為54 Mbps。較高的傳輸速率足以滿足視頻信息的傳輸要求,覆蓋范圍室內(nèi)最遠(yuǎn)100 m,室外最遠(yuǎn)300 m。在微控制器的控制下,將其連接到無(wú)線路由,無(wú)線路由與互聯(lián)網(wǎng)連接。

    3.4 Android手機(jī)客戶端

    Android是以Linux為內(nèi)核的手機(jī)操作系統(tǒng),由于其源代碼的開(kāi)放性和豐富的硬件選擇,促進(jìn)了Android應(yīng)用的快速發(fā)展[6]?;贚inux的Android手機(jī)可以與各種嵌入式Linux系統(tǒng)進(jìn)行通信,手機(jī)Android成為視頻監(jiān)控系統(tǒng)的主流[7]。

    4 系統(tǒng)軟件設(shè)計(jì)

    服務(wù)器端視頻采集與編碼分為硬件部分和軟件部分。硬件部分負(fù)責(zé)視頻數(shù)據(jù)的采集、編碼;軟件部分負(fù)責(zé)基本系統(tǒng)環(huán)境的建立、視頻流的獲取及發(fā)送??蛻舳塑浖糠重?fù)責(zé)視頻數(shù)據(jù)的獲取、解碼及顯示。

    4.1 系統(tǒng)環(huán)境和驅(qū)動(dòng)程序的移植

    本系統(tǒng)采用Bootloader引導(dǎo)系統(tǒng)、s3c-Linux-2.6.23內(nèi)核、YAFFS文件系統(tǒng)來(lái)構(gòu)建嵌入式系統(tǒng)環(huán)境。Linux操作系統(tǒng)可根據(jù)硬件需求進(jìn)行軟件裁減,構(gòu)建合適的軟件環(huán)境。

    首先,執(zhí)行 make menuconfig,選擇 Multimedia support下的選項(xiàng)支持UVC攝像頭,在USB support、HID Devices、SCSI device support中添加對(duì)USB總線驅(qū)動(dòng)的支持,選擇 USB support、HID Devices、SCSI device support下的選項(xiàng)支持MFC驅(qū)動(dòng)。然后,執(zhí)行make uImage,編譯生成內(nèi)核。

    4.2 V4L2視頻采集程序的設(shè)計(jì)

    視頻采集程序采用V4L2視頻驅(qū)動(dòng)標(biāo)準(zhǔn),基本流程是:打開(kāi)視頻設(shè)備→設(shè)置格式→處理數(shù)據(jù)→關(guān)閉設(shè)備。通過(guò)Linux系統(tǒng)提供的open、ioctl函數(shù)來(lái)訪問(wèn)視頻設(shè)備。Linux設(shè)備用文件表示,視頻設(shè)備在/dev/video目錄下,可以像普通文件一樣去讀寫(xiě)。采集到的圖像信息是YUV420格式的,MFC可以直接對(duì)其進(jìn)行壓縮。具體步驟如下:

    ①調(diào)用函數(shù)open(“/dev/video0”,O_RDWR|O_NOBLOCK,0),以可讀可寫(xiě)、非阻塞的方式打開(kāi)視頻設(shè)備。

    ②設(shè)定視頻設(shè)備屬性,調(diào)用ioctl(fd,VIDIOC_S_FMT,&fmt)設(shè) 置 視 頻 格 式,ioctl(fd,VIDIOC_REQBUFS,&req)分配 內(nèi)存空間,mmap(NULL,buf.length,PROT_READ|PROT_WRITE,MAP_SHARED,fd,buf.m.offset)將物理地址轉(zhuǎn)化為內(nèi)核地址。

    ③程序采用雙緩存的機(jī)制來(lái)采集數(shù)據(jù),ioctl(fd,VIDIOC_DQBUF,&buf)將緩沖中的數(shù)據(jù)發(fā)送出去。與此同時(shí),ioctl(fd,VIDIOC_DQBUF,&buf)采集一段數(shù)據(jù)放到另一個(gè)緩存中。此方法可以提高程序執(zhí)行的效率。

    ④調(diào)用close(fd)來(lái)關(guān)閉視頻設(shè)備。

    4.3 H.264視頻壓縮程序的設(shè)計(jì)

    USB采集的視頻流數(shù)據(jù)量非常大,若直接傳輸會(huì)增加系統(tǒng)負(fù)擔(dān),難以滿足實(shí)時(shí)性要求。在嵌入式系統(tǒng)中大多采用H.264編碼,與其他壓縮標(biāo)準(zhǔn)相比,其壓縮比高、誤碼率低、視頻質(zhì)量高、容錯(cuò)能力強(qiáng),特別適合于網(wǎng)絡(luò)傳輸[8]。本設(shè)計(jì)利用 MFC硬件模塊將YUV數(shù)據(jù)轉(zhuǎn)化為H.264視頻流,降低了數(shù)據(jù)流量和網(wǎng)絡(luò)帶寬的占用,最大限度地提高了壓縮比和傳輸速度[9]。H.264視頻壓縮具體步驟如下:

    ①調(diào)用open(MFC_DEV_NAME,O_RDWRW|O_NDELAY)打開(kāi)MFC設(shè)備;

    ②映射空間 mmap(0,BUF_SIZE,PROT_RERD|PROT_WRITE,MAP_SHARED,mfc_fd,0);

    ③配置編碼格式ioctl(mfc_fd,LOCTL_M(jìn)FC_H264_ENC_INIT,&enc_init);

    ④獲取輸入輸出緩沖區(qū)ioctl(mfc_fd,LOCTL_M(jìn)FC_H264_ENC_INIT,&get_buf_addr);

    ⑤進(jìn)行 H.264編碼ioctl(mfc_fd,LOCTL_M(jìn)FC_H264_ENC_EXE,&enc_exe)。

    4.4 視頻傳輸程序的設(shè)計(jì)

    由于TCP的三次握手連接和錯(cuò)誤重傳機(jī)制,系統(tǒng)開(kāi)銷(xiāo)較大,不能滿足視頻數(shù)據(jù)的實(shí)時(shí)傳輸。本設(shè)計(jì)采用無(wú)連接的UDP協(xié)議進(jìn)行視頻數(shù)據(jù)的傳輸,但是無(wú)法保證數(shù)據(jù)的完整性。為了保證視頻流的實(shí)時(shí)性和同步性,針對(duì)UDP的不足,采用RTP通信方式,RTP建立在UDP之上,將數(shù)據(jù)封裝后使用UDP協(xié)議進(jìn)行數(shù)據(jù)傳輸。由于本設(shè)計(jì)基于Linux系統(tǒng),所以RTP程序采用現(xiàn)成的C語(yǔ)言oRTP庫(kù)進(jìn)行開(kāi)發(fā)。RTP的關(guān)鍵步驟如下:

    ①調(diào)用orpt_inin()、ortp_scheduler_init()完成oRTP庫(kù)的基本初始化;

    ②rtp_session_new()創(chuàng)建rtp對(duì)象,接著設(shè)置rpt對(duì)象的客戶端IP和監(jiān)聽(tīng)端口;

    ③發(fā)送數(shù)據(jù)時(shí)調(diào)用 rtp_session_send_with_ts()庫(kù)函數(shù);

    ④發(fā)送完畢后調(diào)用rtp_session_destroy();銷(xiāo)毀RPT對(duì)象,ortp_exit()關(guān)閉oRTP庫(kù)資源。

    4.5 Android手機(jī)客戶端

    Android客戶端采用分層的設(shè)計(jì)思想,各模塊之間相互獨(dú)立工作,降低了系統(tǒng)的復(fù)雜程度。整體結(jié)構(gòu)從下到上分別為視頻數(shù)據(jù)獲取、視頻數(shù)據(jù)的解碼、視頻數(shù)據(jù)的顯示以及用戶界面4個(gè)功能。首先,客戶端通過(guò)3G或WiFi網(wǎng)絡(luò)從服務(wù)器端進(jìn)行驗(yàn)證請(qǐng)求,請(qǐng)求信息包括用戶名、密碼、IP地址和端口號(hào);驗(yàn)證通過(guò)后,接收服務(wù)器端發(fā)送的視頻數(shù)據(jù),并將其放到視頻緩沖區(qū)中。然后將經(jīng)過(guò)H.264和RTP編碼過(guò)的視頻數(shù)據(jù)去除包頭信息,對(duì)無(wú)序的數(shù)據(jù)進(jìn)行組幀,再對(duì)其進(jìn)行解碼。最后,將視頻數(shù)據(jù)在用戶界面上播放。結(jié)構(gòu)模塊圖如圖3所示。

    圖3 結(jié)構(gòu)模塊圖

    5 系統(tǒng)運(yùn)行效果測(cè)試

    測(cè)試分兩種方式進(jìn)行,一種在小米2S手機(jī)上,另一種在Nexus 7平板電腦上。在登錄界面上輸入設(shè)備名稱、地址、端口號(hào)、用戶名和密碼,分別用3G網(wǎng)絡(luò)和 WiFi網(wǎng)絡(luò)來(lái)訪問(wèn)服務(wù)器。選取3個(gè)不同的地點(diǎn)進(jìn)行了12次測(cè)試,每次測(cè)試1 min,統(tǒng)計(jì)客戶端接收到的幀數(shù)。測(cè)試結(jié)果表明,客戶端不受地點(diǎn)的限制,每秒能接收約12幀,視頻數(shù)據(jù)流暢,沒(méi)有出現(xiàn)失幀現(xiàn)象。

    測(cè)試結(jié)果如表1所列。測(cè)試效果如圖4所示。

    表1 測(cè)試結(jié)果

    圖4 測(cè)試效果

    結(jié) 語(yǔ)

    本系統(tǒng)實(shí)現(xiàn)了一種基于嵌入式Linux操作系統(tǒng)和Android手機(jī)終端的遠(yuǎn)程視頻監(jiān)控系統(tǒng)。利用3G或WiFi進(jìn)行數(shù)據(jù)通信,用戶能夠隨時(shí)隨地地監(jiān)控。與傳統(tǒng)的監(jiān)控系統(tǒng)相比,增強(qiáng)了整個(gè)系統(tǒng)的靈活性。由于Linux的可移植性強(qiáng),客戶端還可移植到Android系統(tǒng)的平板電腦上,用戶通過(guò)WiFi接入到互聯(lián)網(wǎng),即可實(shí)現(xiàn)視頻監(jiān)控。在后續(xù)的研究中,可在此基礎(chǔ)上,服務(wù)器端增加了多攝像頭監(jiān)控、視頻數(shù)據(jù)的存儲(chǔ),客戶端增加圖像處理、云臺(tái)控制、視屏回放等功能。隨著嵌入式技術(shù)和3G/4G移動(dòng)通信技術(shù)的不斷成熟,基于Android手機(jī)的視頻監(jiān)控系統(tǒng)將具有良好的應(yīng)用前景。

    [1]許雪梅,周文,徐蔚欽.基于ARM9+Linux的無(wú)線視頻監(jiān)控系統(tǒng)的設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2010,18(11):2475-2477.

    [2]馬資道,張正炳.基于ARM-Linux的無(wú)線視頻監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].長(zhǎng)江大學(xué)學(xué)報(bào),2010,13(12):605-607.

    [3]謝慧芝,劉曄,彭煜,等.基于Android的嵌入式加密視頻監(jiān)控系統(tǒng)研究應(yīng)用[J].電視技術(shù),2014,38(3).70-72.

    [4]張雅楠,楊璐,鄭麗敏,等.基于Android手機(jī)的遠(yuǎn)程視頻監(jiān)控系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)[J].計(jì)算機(jī)應(yīng)用,2013,33(1):283-286.

    [5]Samsung Electronics.S3C6410x 32-bit RISC microprocessor user's manual(revision1.2)[EB/OL],2007[2014-04-15].http://www.samstmg.com.

    [6]楊明極,畢晶.基于Android客戶端的設(shè)計(jì)[J].電視技術(shù),2012,36(3):43-47.

    [7]魏崇毓,張菲菲.基于Android平臺(tái)的視頻監(jiān)控系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)工程,2012,38(14):214-26.

    [8]Kostas Pentikousis,Jarno Pinola,Esa Piri,et al.A Measurement Study of Speex VoIP and H.264/AVC Video over IEEE 802.16d and IEEE 802.11g[J].Computers and Communications,2008,6(9):19-24.

    [9]Atul Puri,Chen Xueming,Ajay Luthra.Video coding using the H.264/MPEG-4 AVC compression standard[J].Signal Processing Image Communication,2004,19:793-849.

    猜你喜歡
    網(wǎng)卡嵌入式攝像頭
    在DDS 中間件上實(shí)現(xiàn)雙冗余網(wǎng)卡切換的方法
    浙江首試公路非現(xiàn)場(chǎng)執(zhí)法新型攝像頭
    攝像頭連接器可提供360°視角圖像
    Server 2016網(wǎng)卡組合模式
    搭建基于Qt的嵌入式開(kāi)發(fā)平臺(tái)
    嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
    挑戰(zhàn)Killer網(wǎng)卡Realtek網(wǎng)游專(zhuān)用Dragon網(wǎng)卡
    奔馳360°攝像頭系統(tǒng)介紹
    Altera加入嵌入式視覺(jué)聯(lián)盟
    倍福 CX8091嵌入式控制器
    阳信县| 堆龙德庆县| 墨竹工卡县| 天峻县| 涟水县| 横山县| 衡东县| 迁西县| 博白县| 绥江县| 上虞市| 合作市| 宿松县| 昂仁县| 克什克腾旗| 道孚县| 福安市| 疏附县| 定远县| 绩溪县| 丽江市| 景东| 杭州市| 柘城县| 东源县| 桂林市| 固始县| 清苑县| 多伦县| 灯塔市| 灵寿县| 玉环县| 桂林市| 陇川县| 潼关县| 靖边县| 朔州市| 邢台县| 思茅市| 开江县| 巩义市|