zedboard--嵌入式網絡攝像機(mjpg-streamer)的移植和搭建(二十二)

在zedboard上移植和搭建嵌入式網絡攝像機mjpg-streamer。具體步驟如下:

來自:http://blog.csdn.net/xzyiverson/article/details/13741451

1.安裝libtool工具

1.1 下載libtool工具libtool-2.2.10.tar.gzhttp://mirrors.ustc.edu.cn/gnu/libtool/

1.2  tar -xvzf libtool-2.2.10.tar.gz -C /home/xzy/sdb1/JPEG/

1.3  進入解壓後的目錄,執行./configure

1.4  make

1.5  make install


2.JPEG編碼庫移植

2.1 下載JPEG源碼包,選擇jpegsrc.v6b.tar.gz    http://www.ijg.org/files/

2.2  解壓  tar jpegsrc.v6b.tar.gz  -C /home/xzy/sdb1/JPEG/

2.3  進入解壓後的目錄,將剛剛libtool-2.2.10目錄下的libltdl/config/config.sub和config.guess拷貝至此目錄中。

2.4  配置./configure CC=arm-xilinx-linux-gnueabi-gcc  --host=arm-unknown-linux 

 –prefix=/home/xzy/sdb1/JPEG/jpeg-6b  --enable-shared   --enable-static

2.5  make

2.6  進入安裝路徑,創建如下目錄   mkdir bin lib include man man/man1,我的安裝目錄就在這個目錄,注意必須要創建這些目錄,不然是不然make install的(試過了。)

2.7  make install,然後就ok了。


3.mjpg-streamer移植

3.1 下載源碼http://sourceforge.net/projects/mjpg-streamer/files/mjpg-streamer/Sourcecode/

3.2     解壓tar -xvzf mjpg-streamer-r63.tar.gz  -C  /home/xzy/sdb1/JPEG/


3.3 進入解壓後的目錄,修改./plugins/input_uvc目錄下的Makefile文件

修改1:將CFLAGS += -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC改爲
CFLAGS += -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC -I/home/xzy/sdb1/JPEG/jpeg-6b/include

修改2:
將$(CC) $(CFLAGS) -ljpeg -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo改爲
$(CC) $(CFLAGS) -ljpeg –L/home/xzy/sdb1/JPEG/jpeg-6b/lib -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo

3.4 編譯make CC=arm-xilinx-linux-gnueabi-gcc,出錯


提示找不到linux/videodev.h,原因是在2.6.38內核以後移除了對v411的支持,新的頭文件是linux/videodev2.h

修改mjpg-streamer-r63/plugins/input_uvc/v4l2uvc.h

修改mjpg-streamer-r63/plugins/input_uvc/uvcvideo.h

修改mjpg-streamer-r63/plugins/input_uvc/input_uvc.c

修改mjpg-streamer-r63/mjpg_streamer.c

修改mjpg-streamer-r63/plugins/output_file/output_file.c

修改mjpg-streamer-r63/plugins/output_http/output_http.c

修改mjpg-streamer-r63/plugins/input_testpicture/input_testpicture.c

修改mjpg-streamer-r63/plugins/output_autofocus/output_autofocus.c

修改mjpg-streamer-r63/plugins/input_gspcav1/spcav4l.h

修改mjpg-streamer-r63目錄下的Makefile文件,將$(CC) $(CFLAGS) $(LFLAGS) $(OBJECTS) -o $(APP_BINARY)改爲$(CC) $(CFLAGS) $(OBJECTS) $(LFLAGS) -o $(APP_BINARY)

mjpg-streamer-r63/目錄下執行make CC=arm-xilinx-linux-gnueabi-gcc

編譯還是出錯,如下圖,但是已經生成了一些lib文件,具體錯誤的原因有待查明。


ls 看一下:


拷貝出我們需要的mjpg_streamer,output_http.so,input_uvc.so,已經libjpg的一些庫,有如下



4測試

啓動demo系統,拷貝那些lib到/usr/lib下面去,mkdir /www/camwww這個目錄,插好網線和usb攝像頭。

運行./mjpg_streamer -i "/usr/lib/input_uvc.so -yuv" -o  "/usr/lib/output_http.so -p 8080 -w /www/camwww"

我的攝像頭那裏必須要有-yuv,不然報錯

_http.so -p 8080 -w /www/camwww"
MJPG-streamer [726]: starting application
MJPG Streamer Version.: 2.0
MJPG-streamer [726]: MJPG Streamer Version.: 2.0


 i: Using V4L2 device.: /dev/video0
MJPG-streamer [726]: Using V4L2 device.: /dev/video0


 i: Desired Resolution: 640 x 480
MJPG-streamer [726]: Desired Resolution: 640 x 480


 i: Frames Per Second.: 5
MJPG-streamer [726]: Frames Per Second.: 5


 i: Format............: MJPEG
MJPG-streamer [726]: Format............: MJPEG


Unable to set format: Invalid argument
 Init v4L2 failed !! exit fatal 
 i: init_VideoIn failed
MJPG-streamer [726]: init_VideoIn failed


還有需要注意的是:最好直接把攝像頭插在usb-otg上,我插在沒有外接電源的HUB不能成功 ,不然報錯

Unable to start capture: No space left on device(設備空間不足)
i: Error grabbing frames

如果出現下面的就成功了,


用Mozilla Firefox來打開 202.38.214.211:8080/?action=stream就可以了看到下面的情景。


 有點慢,可能是一秒傳送的幀數比較少,5幀。

用360瀏覽器和ie打開就是顯示和boa服務器那樣的圖片。另外還有一些問題沒有解決,也沒有喝Boa服務器結合使用。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章