新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 嵌入式Linux系統(tǒng)下的視頻服務器解析方案

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

        作者: 時間:2012-05-07 來源:網絡 收藏


        本文引用地址:http://www.104case.com/article/171497.htm

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

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

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

        (3)input_control.so。這個文件實現(xiàn)對攝像頭轉動的控制接口。

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

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

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

        (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文件拷貝到文件中的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能夠調用到jpeg庫。

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

        網絡視頻采集軟件流程圖如圖4所示。

        4 測試

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


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

        tcp/ip相關文章:tcp/ip是什么




        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 贵港市| 镇平县| 饶平县| 富平县| 吕梁市| 密云县| 昆山市| 三台县| 永靖县| 桦甸市| 乌兰县| 呼和浩特市| 利辛县| 宜兰县| 巩留县| 古浪县| 西和县| 舟曲县| 巴中市| 淅川县| 漳平市| 内丘县| 辽宁省| 平安县| 惠水县| 抚州市| 哈巴河县| 萨迦县| 芜湖市| 澎湖县| 偃师市| 容城县| 武鸣县| 丰原市| 海盐县| 淮滨县| 榕江县| 玛纳斯县| 敖汉旗| 大田县| 滕州市|