回答

收藏

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

#线上活动 #线上活动 2242 人阅读 | 0 人回复 | 2017-06-29

一、编译环境
主机环境 :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指定端
最终实现效果如下


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


分享到:
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

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