网页监控----Mjpg‐streamer移植

更新于2018年04月16日

参考文章:https://blog.csdn.net/xiongmaojiayou/article/details/7604746

Mjpeg‐stream介绍

Mjpeg‐stream 是一个开源软件,用于把mjpeg格式的文件变成流媒体输出。

1.  环境平台

PC机:vmware 虚拟机中安装的red hat 6 (已经配好交叉编译环境)

目标板:S3C2440

开发板上运行的系统: 内核 Linux‐2.6.32.2

2 . 在2440 上安装 mjpeg‐stream

Step1:移植jpeg库

mjpg-stream的移植需要基于jpeg的库,所以我们先移植jpeg的库 。

1) 下载源码包

感谢源码提供网站:http://www.ijg.org/files/

jpeg源码包可以通过下面这个网址下载 (2018年01月14日发布)

http://www.ijg.org/files/jpegsrc.v9c.tar.gz

2) 解压源码包 

#tar xzvf jpegsrc.v9c.tar.gz 

#cd jpeg-9c

3) 配置源码 ,下面的配置很重要(具体配置项可以运行命令./configure --help看看是什么意思,根据实际情况修改)

#./configure CC=arm-linux-gcc --host=arm-unknown-linux --prefix=/home/jpeg-9c/jpeg --enable-shared --enable-static

其中/home/jpeg-9c/jpeg是编译后安装的目录,根据实际情况修改

4) 编译      #make
5) 安装      #make install      ; 此时,在/home/jpeg-9c/jpeg 文件夹中便出现了一些文件夹,包括bin、include、lib、share。
6)拷贝上面的lib文件夹下的全部文件,即jpeg库, 到开发板中  ( 使用优盘 、nfs、tftp等工具 )
此处,假设拷贝到了开发板的/usr/local/mjpg-streamer目录下(目录要提前建好)。

Step2:移植mjpg-streamer

1) 下载mjpg-streamer源码

感谢源码提供网站:https://sourceforge.net/p/mjpg-streamer/code/HEAD/tree/

下载地址:(点击即可下载)

https://sourceforge.net/code-snapshots/svn/m/mj/mjpg-streamer/code/mjpg-streamer-code-182.zip

2) 解压下载好的压缩文件,将其中的mjpg-streamer文件夹(如图所示),复制到虚拟机linux中。

网页监控----Mjpg‐streamer移植_第1张图片

在此假定复制到了/home 目录下

3) 修改源码

#cd /home/mjpg‐streamer    ;进入该目录

#gedit plugins/input_uvc/Makefile   ;修改plugins/input_uvc/目录下的Makfile文件,

修改    CFLAGS += -O1 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC

为    CFLAGS += -O1 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC -I/home/jpeg-9c/jpeg/include

修改    $(CC) $(CFLAGS) -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo $(LFLAGS)

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

注:/home/jpeg-9c/jpeg就是上面移植jpeg库后安装的目录

4、编译:make CC=arm-linux-gcc

注意:若出现     make: Nothing to be done for `all'.  则需先执行 make clean 命令。

5、在开发板建立mjpg-streamer安装目录

mkdir /usr/local/mjpg-streamer   

将编译生成的 *.so文件,复制到开发板 /usr/local/mjpg-streamer目录;

将编译生成的可执行文件mjpg-stream,复制到开发板 /usr/local/mjpg-streamer目录

将源码目录中的start.sh和目录www拷贝到开发板 /usr/local/mjpg-streamer目录下,然后就可以测试啦

6、测试:

按照自己的需求修改开发板中的start.sh文件(start.sh文件里自带修改教程),然后运行start.sh;

(限同一局域网内)在PC机打开一个网页,输入http://192.168.12.21:8088/?action=stream就可以看到图像。

注:ip地址为开发板IP,端口为start.sh中配置的端口

7、获得帮助

获得帮助的方法在start.sh里有说明,以下举一个例子,运行./mjpg_streamer --help它会打印出以下帮助,可根据需要设置参数
The following parameters can be passed to this plugin:
 [-d | --device ].......: video device to open (your camera)
 [-r | --resolution ]...: the resolution of the video device,
                          can be one of the following strings

                         QSIF QCIF CGA QVGA CIF VGA
                          SVGA XGA SXGA
                          or a custom value like the following
                          example: 640x480
 [-f | --fps ]..........: frames per second
 [-y | --yuv ]..........: enable YUYV format and disable MJPEG mode
 [-q | --quality ]......: JPEG compression quality in percent
                          (activates YUYV format, disables MJPEG)
 [-m | --minimum_size ].: drop frames smaller then this limit, useful
                          if the webcam produces small-sized garbage frames
                          may happen under low light conditions
 [-n | --no_dynctrl ]...: do not initalize dynctrls of Linux-UVC driver
 [-l | --led ]..........: switch the LED "on", "off", let it "blink" or leave
                          it up to the driver using the value "auto"


以上是mjpg-streamer的移植全过程。

你可能感兴趣的:(Embedded,Development)