<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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


          本文引用地址:http://www.ex-cimer.com/article/171497.htm

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

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

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

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

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

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

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

          (1)首先移植MJPG-streamer依賴的jpeg庫(kù)。在/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目錄中的各級(jí)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庫(kù)文件,使得MJPG-streamer能夠調(diào)用到j(luò)peg庫(kù)。

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

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

          4 測(cè)試

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


          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

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




          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();