比派科技banana pi专区
直播中

windworld

11年用户 1613经验值
擅长:电源/新能源 嵌入式技术 模拟技术 处理器/DSP
私信 关注
[经验]

【BPI-M64试用体验】MJPG-streamer移植实现简单监控

一、编译环境
主机环境 :BPI-M64
交叉工具链 ARM-linux-gcc
摄像头 UVC免驱摄像头

二、移植过程
1、配置内核使其支持芯片为中微星的ZC3XXu***摄像头
  1. #Make menuconfig
  2.      Device Drivers --->
  3.             <*> Multimedia support --->
  4.                   <*> Video For Linux
  5.                   [*] Enable Video For Linux API 1 (DEPRECATED)
  6.                   [*] Video capture adapters --->

进入Video capture adapters 选项
  1. [*] V4L USB devices (NEW) --->
  2.        <*> USB Video Class (UVC)
  3.        [*] UVC input events device support
  4.        <*>   GSPCA based webcams  --->
  5. <*>   ZC3XX USB Camera Driver   

2、重新编译内核
  1. #make zImage

3烧写内核开发板

4MJPG-streamer的移植
MJPG-streamer的移植需要jpeg的库,所以我们先移植jpeg的库
(1)jpeg库的移植
        1)jpeg源码包
        2)解压源码包
  1. #tar xvf  jpegsrc.v8c.tar.gz
        3)配置源码
  1. #cd  jpeg-8c
  2.         #./configure --prefix=/home/edu/share/video/jpeg  --host=arm-linux
        4)编译安装
  1. #make
  2. #make install

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

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

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

        修改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目录在开发板运行
注:必须先插入u***摄像头
#./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指定端
最终实现效果如下
QQ截图20170101223532.jpg

QQ截图20170102092252.png

回帖(1)

王兵

2017-6-23 21:32:09
linux source在哪里下载啊
举报

更多回帖

发帖
×
20
完善资料,
赚取积分