<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 嵌入式Linux系統下的視頻服務(wù)器解析方案

嵌入式Linux系統下的視頻服務(wù)器解析方案

作者: 時(shí)間:2012-05-07 來(lái)源:網(wǎng)絡(luò ) 收藏


本文引用地址:http://dyxdggzs.com/article/171497.htm

MJPG-streamer是一款免費基于IP地址的視頻流服務(wù)器,它的輸入插件從攝像頭讀取視頻數據,這個(gè)輸入插件產(chǎn)生視頻數據并將視頻數據復制到內存中,它有多個(gè)輸出插件將這些視頻數據經(jīng)過(guò)處理,其中最重要的輸出插件是網(wǎng)站服務(wù)器插件,它將視頻數據傳送到用戶(hù)瀏覽器中,MJPG-streamer的工作就是將其中的一個(gè)輸入插件和多個(gè)輸出插件綁定在一起,所有的工作都是通過(guò)它的各個(gè)插件完成的。MJPG-stream er源碼包可從SourceForge網(wǎng)站下載使用。各個(gè)文件如下:

(1)input_testpicture.so。這是一個(gè)圖像測試插件,它將預設好的圖像編譯成一個(gè)頭文件,可以在沒(méi)有攝像頭的情況下傳輸圖像,從而方便調試程序。

(2)input_uvc.so。此文件調用USB攝像頭驅動(dòng)程序V4L2,從攝像頭讀取視頻數據。

(3)input_control.so。這個(gè)文件實(shí)現對攝像頭轉動(dòng)的控制接口。

(4)output_http.so。這是一個(gè)功能齊全的網(wǎng)站服務(wù)器,它不僅可以從單一文件夾中處理文件,還可以執行一定的命令,它可以從輸入插件中處理一幅圖像,也可以將輸入插件的視頻文件根據現有M-JPEG標準以HTTP視頻數據服務(wù)流形式輸出。

(5)output_file.so。這個(gè)插件的功能是將輸入插件的JPEG圖像存儲到特定的文件夾下,它可以用來(lái)抓取圖像。

將MJPG-streamer視頻流服務(wù)器移植到目標板上運行,從而可以實(shí)現網(wǎng)絡(luò )視頻數據的采集,具體移植過(guò)程:

(1)首先移植MJPG-streamer依賴(lài)的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文件拷貝到文件中的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能夠調用到j(luò )peg庫。

(5)交叉編譯:make CC=arm-linux-gcc,交叉編譯器為arm-linux-gcc4.3.2,生成ARM板可執行的二進(jìn)制文件。

網(wǎng)絡(luò )視頻采集軟件流程圖如圖4所示。

4 測試

將應用程序通過(guò)超級終端工具傳輸到ARM板上,設置器應用程序start_uvc.sh開(kāi)機啟動(dòng),將交換機引出的雙絞線(xiàn)通過(guò)RJ-45接口連接到ARM板,在超級終端下進(jìn)入ARM板,用ifconfig命令配置服務(wù)器相應網(wǎng)段的IP地址,將板子上電之后即可執行視頻采集程序。從客戶(hù)端瀏覽器輸入ARM板IP地址發(fā)出訪(fǎng)問(wèn)請求,服務(wù)器接收到請求后與客戶(hù)端建立連接,將視頻數據發(fā)送到客戶(hù)端監聽(tīng)端口,客戶(hù)端就可以得到連續的現場(chǎng)現場(chǎng)畫(huà)面,從而實(shí)現網(wǎng)絡(luò )視頻采集功能??蛻?hù)端測試畫(huà)面如圖5所示。


linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

tcp/ip相關(guān)文章:tcp/ip是什么




評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>