嵌入式Linux系統(tǒng)下的視頻服務(wù)器解析方案
MJPG-streamer是一款免費基于IP地址的視頻流服務(wù)器,它的輸入插件從攝像頭讀取視頻數(shù)據(jù),這個輸入插件產(chǎn)生視頻數(shù)據(jù)并將視頻數(shù)據(jù)復(fù)制到內(nèi)存中,它有多個輸出插件將這些視頻數(shù)據(jù)經(jīng)過處理,其中最重要的輸出插件是網(wǎng)站服務(wù)器插件,它將視頻數(shù)據(jù)傳送到用戶瀏覽器中,MJPG-streamer的工作就是將其中的一個輸入插件和多個輸出插件綁定在一起,所有的工作都是通過它的各個插件完成的。MJPG-stream er源碼包可從SourceForge網(wǎng)站下載使用。各個文件如下:
(1)input_testpicture.so。這是一個圖像測試插件,它將預(yù)設(shè)好的圖像編譯成一個頭文件,可以在沒有攝像頭的情況下傳輸圖像,從而方便調(diào)試程序。
(2)input_uvc.so。此文件調(diào)用USB攝像頭驅(qū)動程序V4L2,從攝像頭讀取視頻數(shù)據(jù)。
(3)input_control.so。這個文件實現(xiàn)對攝像頭轉(zhuǎn)動的控制接口。
(4)output_http.so。這是一個功能齊全的網(wǎng)站服務(wù)器,它不僅可以從單一文件夾中處理文件,還可以執(zhí)行一定的命令,它可以從輸入插件中處理一幅圖像,也可以將輸入插件的視頻文件根據(jù)現(xiàn)有M-JPEG標(biāo)準(zhǔn)以HTTP視頻數(shù)據(jù)服務(wù)流形式輸出。
(5)output_file.so。這個插件的功能是將輸入插件的JPEG圖像存儲到特定的文件夾下,它可以用來抓取圖像。
將MJPG-streamer視頻流服務(wù)器移植到目標(biāo)板上運行,從而可以實現(xiàn)網(wǎng)絡(luò)視頻數(shù)據(jù)的采集,具體移植過程:
(1)首先移植MJPG-streamer依賴的jpeg庫。在/usr/local目錄下解壓源碼包tar xvzf jpegsrc.v8b.tar.gz。
(2)修改配置文件./configure--prefix=/usr/video/jpeg--host=arm-linux-gnueabi,編譯:make,安裝:make install,最后將/usr/local/video/jpeg/lib目錄下的libjpeg.so.8文件拷貝到文件系統(tǒng)中的lib目錄下。
(3)解壓源碼包:tar zxvf mjpg-streamer.tar.gz;
(4)修改源碼:修改頂層Makefile及plugins目錄中的各級Makefile將所有CC=gcc修改為CC=arm-linux-gcc。修改/usr/local/mjpg-streamer-r63/plugins/input_uvc目錄下的Makfile文件,在CFLAGS+=-O2-DLINUX-D_GNU_SOURCE-Wall-shared-fPIC后加上I//usr/loc al/video/jpeg//include,把$(CC)$(CFLAGS)-ljpeg-o$@input_uvc.c v412uvc.lo jpeg_utils.lodynctrl.lo代碼修改為$(CC)$(CFLAGS)-ljpeg-L/usr/local/video/jpeg/lib-o$@input_uvc.c v412uvc.lojpeg_utils.lo dynctrl.lo,從而加載前面編譯安裝的jpeg庫文件,使得MJPG-streamer能夠調(diào)用到j(luò)peg庫。
(5)交叉編譯:make CC=arm-linux-gcc,交叉編譯器為arm-linux-gcc4.3.2,生成ARM板可執(zhí)行的二進(jìn)制文件。
網(wǎng)絡(luò)視頻采集系統(tǒng)軟件流程圖如圖4所示。
4 系統(tǒng)測試
將應(yīng)用程序通過超級終端工具傳輸?shù)紸RM板上,設(shè)置視頻服務(wù)器應(yīng)用程序start_uvc.sh開機啟動,將交換機引出的雙絞線通過RJ-45接口連接到ARM板,在超級終端下進(jìn)入ARM板,用ifconfig命令配置服務(wù)器相應(yīng)網(wǎng)段的IP地址,將板子上電之后即可執(zhí)行視頻采集程序。從客戶端瀏覽器輸入ARM板IP地址發(fā)出訪問請求,服務(wù)器接收到請求后與客戶端建立連接,將視頻數(shù)據(jù)發(fā)送到客戶端監(jiān)聽端口,客戶端就可以得到連續(xù)的現(xiàn)場現(xiàn)場畫面,從而實現(xiàn)網(wǎng)絡(luò)視頻采集功能??蛻舳藴y試畫面如圖5所示。
tcp/ip相關(guān)文章:tcp/ip是什么
評論