zoukankan      html  css  js  c++  java
  • 开源视频服务软件MJPGstreamer移植

    内容摘要:

    MJPG-streamer是一个轻量级的视频服务器软件,一个可以从单一输入组件获取图像并传输到多个输出组件的命令行应用程序,可应用在基于IP协议的网络中,从网络摄像头中获取并传输JPEG格式的图像到浏览器,甚至是一个运行了TCPMP播放器的Windows移动设备。该工具源码简洁,注释清晰,使用Linux C语言进行开发,可移植到不同的计算机平台。

    准备阶段:

          主机环境:   Ubuntu11.10

           目标机:    飞凌-Ok6410-A

           目标机系统:linux2.6.36

           编译环境:   arm-linux-gcc-4.3.2

           USB摄像头:中星微-zc301p

         

           MJPG-stream的移植需要jpeg库,所以必须先移植jpeg库

           源码下载:jpeg源码包:http://www.ijg.org/files/jpegsrc.v8b.tar.gz

                        MJPG-stream源码包: http://sourceforge.net/projects/mjpg-streamer/

    移植步骤:

           1.jpeg库移植

               (1)解压jpeg源码包

              $tar xvf jpegsrc.v8b.tar.gz

               (2)配置源码

              $ ./configure --prefix=/lxm/jpeg --host=arm-linux-gcc

                上面的/lxm/jpeg为自己建的目录,视自己情况而定,编译器也是。

               (3)编译

             $make

               (4)安装

            $make install

               (5)复制库文件到文件系统中

            $cp /lxm/jpeg/lib/libjpeg.so.8 /source/rootfs/lib

         2.MJPG-stream的移植

               (1)解压源码

            $tar xvf mjpg-streamer-r63.tar.gz

               (2)修改源码

            $cd mjpg-streamer-r63

                修改顶层makefile及plugins目录中的各级makefile将所有
                CC=gcc修改为CC=arm-linux-gcc

                修改plugins/input_uvc/Makfile
                修改
                CFLAGS += -O2 -DLINUX -D_GNU_SOURCE -Wall -shared –fPIC
                为
                CFLAGS += -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC -I/lxm/jpeg/include
       
                修改
                $(CC) $(CFLAGS) -ljpeg -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo
                为
                $(CC) $(CFLAGS) -ljpeg -L/lxm/jpeg/lib -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo

               (3)编译

            $make

               (4)复制相关库文件到开发板

            $mkdir /source/rootfs/mjpg
            $cp *.so /source/rootfs/mjpg
            $cp mjpg-stream /source/rootfs/bin

               (5)测试

                  打开开发板运行

                   mjpg_streamer -i "/mjpg/input_uvc.so -d /dev/video0" -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)可以实现一些其他相关功能。

                做这个移植主要是测试自己买的中新微的USB摄像头对于Linux2.6.36是否支持,现在成功显示,说明该Linux2.6.36支持中星微zc301p的摄像头。

        参考文章:

    http://www.linuxidc.com/Linux/2011-11/47455.htm

  • 相关阅读:
    CopyOnWriteArrayList设计思路与源码分析
    点击页面按钮以excel保存到本地
    上传图片
    关于重复点击的
    去首尾空格还有换行问题//把数字换位大写字母//向后台传输数据
    判断输入的时间与当前的时间(判断时间是今天还是以前的)
    前端的一些小技巧
    git 操作大全
    移动web开发常见问题解决方案
    响应式布局
  • 原文地址:https://www.cnblogs.com/lixiaoming90/p/2653406.html
Copyright © 2011-2022 走看看