码迷,mamicode.com
首页 > 其他好文 > 详细

2440+zc301摄像头 无线网络视频监控系统

时间:2015-05-10 20:49:02      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:mjpg-stream远程监控

一、环境

        交叉工具链 :arm-linux-gcc-4.1.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源码包工具链:4.1.2
1)解压
#cp /mnt/hgfs/share/geclab/jpegsrc.v6b.tar.gz /root/build_rootfs
#tar jxvz jpegsrc.v6b.tar.gz
#cd jpeg-6b
2)配置
#./configure -enable-shared -enable-static -prefix=/usr/local/arm/4.1.2/arm-linux
-build=i386 -host=arm
3)修改Makefile
CC=gcc 改为CC=arm-linux-gcc
AR=arrc 改为AR=arm-linux-arrc
AR2=randlib 改为AR2=arm-linux-randlib
4)编译与安装
#make
#makeinstall-lib              

cp /usr/local/arm/4.1.2/arm-linux-build=i386/lib/libjpeg* /source/rootfs/lib


(2)mjpg-stream的移植

        1)mjpg-stream源码包            

                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)可以实现一些其他相关功能。

如果出现以下问题:

 

 

技术分享

 

说明缺少libjpeg.so.62 去/usr/local/arm/4.1.2/arm-linux-build=i386/lib/拷贝库文件到文件系统的lib下

本文出自 “小战神博客” 博客,请务必保留此出处http://510909959.blog.51cto.com/9448632/1649936

2440+zc301摄像头 无线网络视频监控系统

标签:mjpg-stream远程监控

原文地址:http://510909959.blog.51cto.com/9448632/1649936

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!