查看: 83|回复: 0

[资料] 爱玩板卡+基于BPI-M64的MJPG-streamer视频监控

[复制链接]

24

主题

0

好友

641

积分

举人

Rank: 4

  • TA的每日心情

    7 天前
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2017-6-29 22:16:07 |显示全部楼层
    一、编译环境
    主机环境 :BPI-M64
    交叉工具链 arm-linux-gcc
    摄像头 UVC免驱摄像头

    二、移植过程
    1、配置内核使其支持芯片中微星的ZC3XXusb摄像头
    • #Make menuconfig
    •      Device Drivers --->
    •             <*> Multimedia support --->
    •                   <*> Video For Linux
    •                   
    • Enable Video For Linux API 1 (DEPRECATED)
    •                   
    • Video capture adapters --->

    [color=rgb(51, 102, 153) !important]复制代码


    进入Video capture adapters 选项
    • V4L USB devices (NEW) --->
    •        <*> USB Video Class (UVC)
    •       
    • UVC input events device support
    •        <*>   GSPCA based webcams  --->
    • <*>   ZC3XX USB Camera Driver

    [color=rgb(51, 102, 153) !important]复制代码


    2、重新编译内核
    • #make zImage

    [color=rgb(51, 102, 153) !important]复制代码


    3烧写内核开发板

    4MJPG-streamer的移植
    MJPG-streamer的移植需要jpeg的库,所以我们先移植jpeg的库
    (1)jpeg库的移植
            1)jpeg源码包
            2)解压源码包
    • #tar xvf  jpegsrc.v8c.tar.gz

    [color=rgb(51, 102, 153) !important]复制代码

            3)配置源码
    • #cd  jpeg-8c
    •         #./configure --prefix=/home/edu/share/video/jpeg  --host=arm-linux

    [color=rgb(51, 102, 153) !important]复制代码

            4)编译安装
    • #make
    • #make install

    [color=rgb(51, 102, 153) !important]复制代码


            5)拷贝库到开发板根文件系统中
    • #cp  /home/edu/share/video/jpeg/lib/libjpeg.so.*   <开发板>/lib  -rfa

    [color=rgb(51, 102, 153) !important]复制代码


    注:假如运行程序出现打不开libjpeg.so.62,进入开发板lib目录
    ln -s libjpeg.so.8.0  libjpeg.so.62
    (2)MJPG-streamer的移植
    1)MJPG-streamer源码包
            2)解压源码
    • #tar  xvf  mjpg-streamer-r63.tar.gz

    [color=rgb(51, 102, 153) !important]复制代码


            3)修改源码
    • #cd  mjpg-streamer-r63

    [color=rgb(51, 102, 153) !important]复制代码


            修改plugins/input_uvc/Makfile
            修改
            CFLAGS += -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC
            
            CFLAGS += -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC -I/home/edu/share/video/jpeg/include
            修改
            $(CC) $(CFLAGS) -ljpeg -o $@ input_ uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo
            
            $(CC) $(CFLAGS) -ljpeg -L/home/edu/share/jpeg/lib -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo
            4)编译
    #make CC=arm-linux-gcc
    (3)复制应用程序和库到开发板根文件系统中
    #mkdir  <开发板>/usr/mjpg-streamer
    #cp  *.so  <开发板>/usr/mjpg-streamer/  -rfa
    #cp  mjpg-streamer  <开发板>/usr/mjpg-streamer/
    #cp  www        <开发板>/usr/mjpg-streamer/  -rf
    (4)进入MJPG-streamer目录在开发板运行
    注:必须先插入usb摄像头
    #./mjpg_streamer  -i  "./input_uvc.so -y -r 320*480"  -o  "./output_http.so  -w  ./www"
    默认端口8080,默认设备/dev/video0,必须设置输出分辨率
    Input_screen.so
    (5)在源码目录下有start.sh,这个脚本里有一些MJPG-streamer的使用方法及说明
    可以执行start.sh脚本运行视频服务器,首先注释掉所有行,然后添加以下几行:
    export LD_LIBRARY_PATH="$(pwd)"
    WEBSERVER=.
    $WEBSERVER/mjpg_streamer -o  "$WEBSERVER/output_http.so -p 8000 -w $WEBSERVER/www" -i "$WEBSERVER/input_uvc.so -y -r 320*480 -d /dev/video0"
    (6)测试
    打开浏览器输入http://172.20.224.20开发板的IP8080(端口号)
    例如:http://172.20.224.20:8080
    MJPG-streamer源码下有一个www的目录,结合web服务器(boa)可以实现一些其他相关功能。
    (7)参数说明
    -o输出选项
    -i输入选项
    -d指定摄像头在/dev目录下的设备文件
    -r指定输出分辨率
    -w指定网页存放的路径
    -p指定端
    最终实现效果如下


    转载自网络,版权归原作所有。


    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

    站长推荐上一条 /4 下一条

    手机版|爱板网 |网站地图  

    GMT+8, 2017-7-26 06:38 , Processed in 0.163991 second(s), 9 queries , Memcache On.

    苏公网安备 32059002001056号

    Powered by Discuz!

    回顶部