• zedboard--嵌入式网络摄像机(mjpg-streamer)的移植和搭建(二十二)


    在zedboard上移植和搭建嵌入式网络摄像机mjpg-streamer。具体步骤如下:

    来自:http://write.blog.csdn.net/postedit/13741451

    1.安装libtool工具

    1.1 下载libtool工具libtool-2.2.10.tar.gzhttp://mirrors.ustc.edu.cn/gnu/libtool/

    1.2  tar -xvzf libtool-2.2.10.tar.gz -C /home/xzy/sdb1/JPEG/

    1.3  进入解压后的目录,执行./configure

    1.4  make

    1.5  make install


    2.JPEG编码库移植

    2.1 下载JPEG源码包,选择jpegsrc.v6b.tar.gz    http://www.ijg.org/files/

    2.2  解压  tar jpegsrc.v6b.tar.gz  -C /home/xzy/sdb1/JPEG/

    2.3  进入解压后的目录,将刚刚libtool-2.2.10目录下的libltdl/config/config.sub和config.guess拷贝至此目录中。

    2.4  配置./configure CC=arm-xilinx-linux-gnueabi-gcc  --host=arm-unknown-linux 

     –prefix=/home/xzy/sdb1/JPEG/jpeg-6b  --enable-shared   --enable-static

    2.5  make

    2.6  进入安装路径,创建如下目录   mkdir bin lib include man man/man1,我的安装目录就在这个目录,注意必须要创建这些目录,不然是不然make install的(试过了。)

    2.7  make install,然后就ok了。


    3.mjpg-streamer移植

    3.1 下载源码http://sourceforge.net/projects/mjpg-streamer/files/mjpg-streamer/Sourcecode/

    3.2     解压tar -xvzf mjpg-streamer-r63.tar.gz  -C  /home/xzy/sdb1/JPEG/


    3.3 进入解压后的目录,修改./plugins/input_uvc目录下的Makefile文件

    修改1:将CFLAGS += -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC改为
    CFLAGS += -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC -I /home/xzy/sdb1/JPEG/jpeg-6b/include

    修改2:
    将$(CC) $(CFLAGS) -ljpeg -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo改为
    $(CC) $(CFLAGS) -ljpeg –L /home/xzy/sdb1/JPEG/jpeg-6b/lib -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo

    3.4  编译make CC=arm-xilinx-linux-gnueabi-gcc,出错


    提示找不到linux/videodev.h,原因是在2.6.38内核以后移除了对v411的支持,新的头文件是linux/videodev2.h

    修改mjpg-streamer-r63/plugins/input_uvc/v4l2uvc.h

    修改mjpg-streamer-r63/plugins/input_uvc/uvcvideo.h

    修改mjpg-streamer-r63/plugins/input_uvc/input_uvc.c

    修改mjpg-streamer-r63/mjpg_streamer.c

    修改mjpg-streamer-r63/plugins/output_file/output_file.c

    修改mjpg-streamer-r63/plugins/output_http/output_http.c

    修改mjpg-streamer-r63/plugins/input_testpicture/input_testpicture.c

    修改mjpg-streamer-r63/plugins/output_autofocus/output_autofocus.c

    修改mjpg-streamer-r63/plugins/input_gspcav1/spcav4l.h

    修改mjpg-streamer-r63目录下的Makefile文件,将$(CC) $(CFLAGS) $(LFLAGS) $(OBJECTS) -o $(APP_BINARY)改为$(CC) $(CFLAGS) $(OBJECTS) $(LFLAGS) -o $(APP_BINARY)

    mjpg-streamer-r63/目录下执行make CC=arm-xilinx-linux-gnueabi-gcc

    编译还是出错,如下图,但是已经生成了一些lib文件,具体错误的原因有待查明。


    ls 看一下:


    拷贝出我们需要的mjpg_streamer,output_http.so,input_uvc.so,已经libjpg的一些库,有如下



    4测试

    启动demo系统,拷贝那些lib到/usr/lib下面去,mkdir /www/camwww这个目录,插好网线和usb摄像头。

    运行./mjpg_streamer -i "/usr/lib/input_uvc.so -yuv" -o  "/usr/lib/output_http.so -p 8080 -w /www/camwww"

    我的摄像头那里必须要有-yuv,不然报错

    _http.so -p 8080 -w /www/camwww"
    MJPG-streamer [726]: starting application
    MJPG Streamer Version.: 2.0
    MJPG-streamer [726]: MJPG Streamer Version.: 2.0


     i: Using V4L2 device.: /dev/video0
    MJPG-streamer [726]: Using V4L2 device.: /dev/video0


     i: Desired Resolution: 640 x 480
    MJPG-streamer [726]: Desired Resolution: 640 x 480


     i: Frames Per Second.: 5
    MJPG-streamer [726]: Frames Per Second.: 5


     i: Format............: MJPEG
    MJPG-streamer [726]: Format............: MJPEG


    Unable to set format: Invalid argument
     Init v4L2 failed !! exit fatal 
     i: init_VideoIn failed
    MJPG-streamer [726]: init_VideoIn failed


    还有需要注意的是:最好直接把摄像头插在路由器上我插在没有外接电源的HUB不能成功 ,不然报错

    Unable to start capture: No space left on device(设备空间不足)
    i: Error grabbing frames

    如果出现下面的就成功了,


    用Mozilla Firefox来打开 202.38.214.211/?action=stream就可以了看到下面的情景。


     有点慢,可能是一秒传送的帧数比较少,5帧。

    用360浏览器和ie打开就是显示和boa服务器那样的图片。另外还有一些问题没有解决,也没有喝Boa服务器结合使用。



  • 相关阅读:
    在 ubuntu20 上安装 docker
    在 ubuntu20 上替换原有的源,解决下载软件慢的问题
    thymeleaf 模板语法
    对 spring 中默认的 DataSource 创建进行覆盖
    Spring Security OAuth2 笔记(一)
    对 ThreadLocal 的了解(一)
    解决 docker.io 上拉取 images Get https://registry-1.docker.io/v2/: net/http: TLS handshake timeout
    Spring Security Oauth2 使用 token 访问资源服务器出现异常:Invalid token does not contain resource id (oauth2)
    windows 查看被占用的端口信息
    不写注释的程序员-Models
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3400217.html
Copyright © 2020-2023  润新知