歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> mjpg-stream移植

mjpg-stream移植

日期:2017/3/1 11:00:52   编辑:Linux編程

一、環境

主機環境 :Ubuntu 10.10
目標機 :FS2410(S3C2410)
主機工具鏈 :gcc-4.4.5
交叉工具鏈 :arm-none-linux-gnueabi-gcc-4.3.2
攝像頭 :ZC301

二、移植過程

1、配置內核是內核支持芯片為ZC301的攝像頭
Make menuconfig
Device Drivers --->
<*> Multimedia support --->
<*> Video For Linux
[*] Enable Video For Linux API 1 (DEPRECATED) (NEW)
[*] Video capture adapters (NEW) --->
[*] V4L USB devices (NEW) --->
<*> USB Video Class (UVC)
[*] UVC input events device support (NEW)
<*> USB ZC0301[P] webcam support (DEPRECATED)

2、重新編譯內核

make zImage

通過上面兩個步驟就可以驅動我們的攝像頭了。但是這個驅動是基於V4l2的。以前基於 V4L的一些上層應用就不能用了,或需要做大量的修改!這裡我們要實現網絡視頻的功能,以前都是用servfox這個網絡視頻服務器,但是這個服務器就是 基於V4L的,我們如果想用的話就得對servfox的源碼進行修改。這裡我們選用另外一種方案mjpg-stream。

3、mjpg-stream的移植

關於mjpg-stream的資料大家可以在下面這個網址查看:http://sourceforge.net/apps/mediawiki/mjpg-streamer/index.php?title=Main_Page
mjpg-stream的移植需要jpeg的庫,所以我們先移植jpeg的庫

(1)jpeg庫的移植

1)jpeg源碼包通過下面這個網址下載
http://www.ijg.org/files/jpegsrc.v8b.tar.gz
2)解壓源碼包
tar xvf jpegsrc.v8b.tar.gz
3)配置源碼
cd jpeg-8b
./configure --prefix=/home/linux/s3c2410-2.6.35/video/jpeg --host=arm-none-linux-gnueabi
4)編譯
make
5)安裝
make install
6)拷貝庫到文件系統中
cp //home/linux/s3c2410-2.6.35/video/jpeg /lib/libjpeg.so.8 /source/rootfs/lib

(2)mjpg-stream的移植

1)mjpg-stream源碼包通過下面這個網址下載
http://sourceforge.net/projects/mjpg-streamer/
2)解壓源碼
tar xvf mjpg-streamer-r63.tar.gz
3)修改源碼
cd mjpg-streamer-r63
修改頂層makefile及plugins目錄中的各級makefile將所有
CC=gcc
修改為
CC=arm-none-linux-gnueabi-gcc

修改plugins/input_uvc/Makfile
修改
CFLAGS += -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC

CFLAGS += -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC -I/home/linux/s3c2410-2.6.35/video/jpeg/include
修改
$(CC) $(CFLAGS) -ljpeg -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo

$(CC) $(CFLAGS) -ljpeg -L/home/linux/s3c2410-2.6.35/video/jpeg/lib -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo

jpeg_utils.c:27: fatal error: jpeglib.h: No such file or directory
4)編譯
make
5)測試
mkdir /source/rootfs/mjpg
cp *.so /source/rootfs/mjpg
cp mjpg-stream /source/rootfs/bin

打開開開發板運行
mjpg_streamer -i "/mjpg/input_uvc.so" -o "/mjpg/output_http.so -w /www"
在源碼目錄下有start.sh,這個腳本裡有一些mjpg-stream的使用方法及說明

打開一個網頁輸入下面地址就能夠看到一個視頻(開發板的IP為192.168.1.202):
http://192.168.1.202:8080/?action=stream
打開一個網頁輸入下面地址就能夠看到一個靜態圖片:
http://192.168.1.202:8080/?action=snapshot
6)在mjpg源碼下有一個www的目錄,這個一個網絡使用mjpg的實例,結合web服務器(boa)可以實現一些其他相關功能。
Copyright © Linux教程網 All Rights Reserved