移植mjpg-streamer

Mjpg‐streamer是一个开源软件,用于从webcam摄像头采集图像,把它们以流的形式通过基于ip的网络传输到浏览器如Firefox,Cambozola,VLC播放器,Windows的移动设备或者其他拥有浏览器的移动设备

移植Mjpg-streamer需要libjpeg库,因此要先移植libjpeg

1.移植jpeg

a. 从http:<//www.ijg.org/files/>下载jpeg源码包;

b. 解压,进入其目录

    tar zxvf jpegsrc.v9a.tar.gz
    cd  /work/embedded/video/jpeg-9a

c. 配置源码,(具体配置项可以运行命令./configure –help看看是什么意思,根据实际情况修改)

    #./configure CC=arm-linux-gcc --host=arm-unknown-linux --prefix=/work/embedded/video/jpeg --enable-shared --enable-static

其中/work/embedded/video/jpeg是编译后安装的目录,根据实际情况修改

d. 编译:

    #make

e. 安装:

    #make install

f. 拷贝库文件到开发板文件系统

将/work/embedded/video/jpeg-9a/jpeg
目录下全部文件拷贝到开发板文件系统/work/embedded/rootfs/usr/local/mjpg-streamer下(此目录为mjpg-streamer在开发板的安装目录,当然你也可以把它放在开发板的/lib/目录下)

    cp lib/* /work/embedded/rootfs/lib/

2. 移植mjpg-streamer

a. 下载源码,在https://sourceforge.net/projects/mjpg-streamer/下载的源码

    #tar zxvf mjpg-streamer-r63.tar.gz

b. 修改plugins/input_uvc/Makfile

    CFLAGS = -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC

为(即添加头文件-I)

    CFLAGS += -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC -I/work/embedded/v    ideo/jpeg-9a/jpeg/include

修改

    $(CC) $(CFLAGS) -ljpeg -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo

为(即添加库文件-L)

     $(CC) $(CFLAGS) -ljpeg -L/work/embedded/video/jpeg-9a/jpeg/lib  -o $@     input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo

c. 编译

    #make CC=arm-linux-gcc

d. 建立mjpg-streamer安装目录

    mkdir /work/embedded/rootfs/usr/local/mjpg-streamer
    cp *.so /work/embedded/rootfs/usr/local/mjpg-streamer
    cp mjpg-stream /work/embedded/rootfs/usr/local/mjpg-streamer

将源码目录中的start.sh到/work/embedded/rootfs/mjpg-streamer目录下,www目录下的所有文件拷贝到/work/embedded/rootfs/www下,然后就可以测试啦

e. 在开发板中运行./start.sh

修改start.sh脚本文件

    ./mjpg_streamer -o "output_http.so -w ./www"

具体的修改方法可以根据start.sh文件中的注释或查看mjpg-streamer的帮助

    ./mjpg_streamer --help

参考文章:

http://www.linuxidc.com/Linux/2012-02/54797p4.htm
http://blog.chinaunix.net/uid-27070031-id-3458957.html