基于S3C6410的無線視頻監(jiān)控系統(tǒng)設(shè)計(jì)
Mjpg—streamer是一個(gè)視頻流應(yīng)用軟件,使用V4L2(Video4 Linux 2)的接口,通過文件或HTTP方式訪問linux—UVC兼容攝像頭。視頻采集功能通過調(diào)用mmap()函數(shù)將視頻采集設(shè)備映射到系統(tǒng)內(nèi)存中來實(shí)現(xiàn),取代了傳統(tǒng)的直接讀取用戶空間設(shè)備的方式,繞過了內(nèi)核緩沖區(qū),加快了視頻數(shù)據(jù)的處理速度,提高了實(shí)時(shí)性。
Mjpg—streamer支持使用攝像頭內(nèi)的DSP硬件壓縮功能付出少量硬件壓縮時(shí)的電源開銷,減少了CPU的負(fù)荷,減少帶寬的占用,特別適用于嵌入式設(shè)備。
MJpg—streamer采用模塊化的設(shè)計(jì)方法,以功能塊,即plug—in(組件)為單位進(jìn)行描述。Mjpg—streamer的工作就是將其中的一個(gè)輸入組件和多個(gè)輸出組件綁定在一起,所有的功能都是通過它的各個(gè)組件完成的。用戶可以選擇需要的模塊,并進(jìn)行必要修改,以完成所需功能。體系結(jié)構(gòu)如圖2所示。
插件最主要且最常用的組件是input—uvc輸入組件和output—http輸出組件。其他組件包括input—control、input_file、input_test picture、input_gspcavl、output_autofocus、output_file、out_viewer,如圖3所示。
2.2. 1 input_uvc輸入組件
Input_uvc組件的主要功能是獲取攝像頭拍攝的圖像并將其壓縮編碼,共包括5個(gè)組件接口函數(shù),這些組件接口函數(shù)是各個(gè)組件提供給外部使用的接口。相關(guān)函數(shù)的定義可查看input_uvc.c文件。
Output_http輸出插件是功能齊全的HTTP 1.0的web服務(wù)器,通過輸入插件獲取的USB攝像頭圖像數(shù)據(jù)處理之后以流媒體的形式輸出,并可為設(shè)置用戶名和密碼,最終在其客戶端瀏覽器顯示。
2.2.2 mjpg—streamer視頻服務(wù)器的移植
Mjpg—streamer的移植需要JPEG庫(kù)的支持,所以首先需要移植JPEG庫(kù)到開發(fā)板。從http://www.ijg.org/files/下載jpeg源碼包,解壓縮后進(jìn)入其目錄,在源碼包目錄執(zhí)行./configureCC=arm-linux-gec-host=arm-unknown-linux-prefix=/opt/linux/jpeg-enable-shared-enable-static命令配置其交叉編譯器和編譯后安裝的目錄,然后執(zhí)行make命令編譯和makeinstall命令安裝,最后將jpeg目錄下生成的庫(kù)文件libjpeg.so.9拷貝到開發(fā)板根目錄下的lib文件夾中,即完成jpeg庫(kù)的移植。
通過sourceforge網(wǎng)站下載mjpg-streamer源碼包。修改input_uvc目錄下的Makefile文件,以其滿足編譯要求。然后執(zhí)行make CC=arm-linux-gcc命令進(jìn)行編譯。在開發(fā)板建立mjpg安裝目錄,將其源碼目錄中的.so為后綴的共享庫(kù)文件和start.sh文件及文件夾WWW拷貝到其中,同時(shí)復(fù)制編譯后目標(biāo)文件路徑下的可執(zhí)行文件mjpg_streamer到開發(fā)板根目錄的bin文件夾中,至此整個(gè)移植過程完畢。最后執(zhí)行./ mjpg_streamer-i“mjpg/input_uvc.so-y-d/dev/video2”-o“/mjpg/output_http.so-w/mjpg/www”命令以開啟視頻服務(wù)器。
3 系統(tǒng)測(cè)試及性能分析
本文采用飛凌公司的ARM11開發(fā)板進(jìn)行實(shí)驗(yàn),通過燒寫并運(yùn)行應(yīng)用程序,可在遠(yuǎn)程PC機(jī)上看到視頻監(jiān)控效果。在瀏覽器端輸入服務(wù)器端的IP地址訪問目標(biāo)服務(wù)器,即輸入http://10.17.133.88:8080/?action=stream,視頻監(jiān)控效果如圖4所示。從監(jiān)控畫面可以看出,接收到的監(jiān)控畫面比較清晰,反映出通過Mjpg-streamer服務(wù)器進(jìn)行無線傳輸的圖像畫面質(zhì)量較好,達(dá)到了無線傳輸的功能。
通過表1中兩種方法進(jìn)行穩(wěn)定性測(cè)試,從測(cè)試效果可以看出,在瀏覽器端顯示的圖像信息良好,系統(tǒng)不管在何種情況下,均沒有出現(xiàn)死機(jī)或卡頓的現(xiàn)象,說明設(shè)計(jì)的監(jiān)控系統(tǒng)性能穩(wěn)定。
4 結(jié)束語
本文設(shè)計(jì)了一種基于ARM11、USB攝像頭、WIFI以及Mjpg-streamer軟件的嵌入式視頻監(jiān)控系統(tǒng),進(jìn)行了linux系統(tǒng)及視頻服務(wù)器軟件的編譯與移植,實(shí)現(xiàn)了視頻流在基于802.11g的遠(yuǎn)程視頻的實(shí)時(shí)穩(wěn)定傳輸。該系統(tǒng)體積小,功耗低,經(jīng)測(cè)試,系統(tǒng)穩(wěn)定可行,實(shí)時(shí)性好,可被多用戶同時(shí)訪問,遠(yuǎn)端計(jì)算機(jī)可以清晰地觀測(cè)到室內(nèi)監(jiān)控畫面。該系統(tǒng)滿足室內(nèi)視頻監(jiān)控的需求,為進(jìn)一步提高視頻圖像傳輸質(zhì)量和傳輸效率,可以考慮加入最新H.264編解碼算法進(jìn)行視頻圖像的編解碼。
評(píng)論