基于mjpg-streamer远程视频WEB监控 项目笔记二

来源:互联网 发布:nginx根据url参数跳转 编辑:程序博客网 时间:2024/06/08 06:36

        mjpg-streamer是基于jpeg库来处理摄像头数据的,因此在移植mjpg-streamer之前必须先移植jpeg库,否则在编译mjpg-streamer时会报告错误。

        现在这里下载jpeg库的源代码和mjpg-streamer源代码:

        jpeg库下载地址:http://download.csdn.net/detail/laoylhuli/5029006

        mjpg-streamer源代码下载地址:http://download.csdn.net/detail/laoylhuli/5029022


1、jpeg库的移植:

1)、解压源码包

#tar zxvf jpegsrc.v8b.tar.gz
2)、配置源码

#./configure --prefix=/home/laoyl/jpeg --host=arm-none-linux-gnueabi
3)、编译

#make
4)、安装

#make install
5)、将jpeg库移至开发板

安装完毕在指定的安装路径下/home/laoyl/jpeg出现了bin include lib share 4个文件夹,将lib目录下的所有库文件移植到开发板根目录下的lib下就可以了


2、mjpg-streamer源代码移植:

1)、解压源码包

 #tar zxvf mjpg-streamer-r63.tar.gz
2)、在源码文件夹下,修改顶层的Makefile和plugins中各级目录的Makefile
        CC=gcc
    修改为
        CC=arm-none-linux-gnueabi-gcc        #编译器替换成交叉编译器

3)、定位jpeg库

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

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

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

4)、编译

#make
当编译完毕之后,会在顶层目录中出现mjpg-streamer和一些input和output的插件库。将这些插件库xx.so全部放到开发板的lib目录下(这样就不用修改开发板lib的环境变量了),并且把mjpg-streamer可执行文件放到开发板的bin目录下,把www文件夹也放到开发板的目录下。

5)、运行

在开发板上执行

mjpg_streamer -i "input_uvc.so" -o "output_http.so -w /www"
如果一切正常则开始了视频传输。

具体的指令请看start.sh脚本,这个脚本里面包含了一些基本指令,例如打开的视频设备号,和图像是否保存等。

在火狐浏览器下http://192.168.1.230:8080/?action=stream   (192.168.1.230是自己的开发板ip,不同的开发板ip会不同)。

在火狐浏览器下http://192.168.1.230:8080/?action=snapshot    (静态图片)

未完待续,下一讲将介绍如果建立WEB服务器和配置花生壳,利用花生壳剥壳技术实现外网的视频监控。