RT5350无线视频监控

编译开发主机:archlinux

硬件开发平台:RT5350F开发套件

USB摄像头:中星微zc301


1、Gspcav1驱动移植(通用USB摄像头的驱动程序

1.1 下载gspcav1-20071224源码,并将其拷贝到linux2.6.21/drivers/media/video下。
1.2 修改video目录下的Kconfig和Makefile,引入gspcav1目录的Kconfig和Makefile,
1.3 在gspcav1目录下新建一个Kconfig,加入如下内容:

config USB_SPCA5XX

        tristate "USB SPCA5XX Sunplus/Vimicro/Sonix jpeg Cameras"
        depends on USB && VIDEO_DEV

1.4 在gspcav1目录下修改原来的Makefile为如下内容:

gspca-objs := gspca_core.o decoder/gspcadecoder.o
obj-$(CONFIG_USB_SPCA5XX) += gspca.o

1.5 linux内核选上一些配置

V4L USB devices

USB EHCI HCD

USB OHCI HCD

1.6 重新烧写内核后,插上USB摄像头



2、使用spcaview与Servfox

2.1  spcaview的编译

spcaview主要是视频监控的客户端,在本机编译,由于显示是基于SDL,所以确保已安装了SDL库。

编译可能会遇到如下问题:

2.1.1 头文件linux/videodev.h无法找到

解决:首先确保主机是否安装了libv4l-dev。然后将头文件linux/videodev.h修改为libv4l1-videodev.h

2.1.2 ‘BASE_VIDIOCPRIVATE’未定义

解决:在提示未定义的c文件的开头处加入#define BASE_VIDIOCPRIVATE 192


2.2、Servfox的移植

这部分问题不大,修改好Makefile,直接可以编译通过。

2.3、视频监控搭建

在板子上运行servfox:

[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. # ./servfox -d /dev/video0 -s 640x480 -w 7070  
  2.  servfox version: 1.1.3 date: 11:12:2005 (C) mxhaard@magic.fr   
  3. wrong spca5xx device  
  4. Waiting .... for connection. CTrl_c to stop !!!!   
  5. Got connection from 192.168.10.100  

在主机电脑上运行spcaview客户端:

[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. ./spcaview -g -s 640x480 -w 192.168.10.123:7070  

3、mjpeg-streamer

3.1 mjpeg-streamer目录结构

doc --文档

mjpeg-client --监控客户端,有windows和linux两个版本

mjpg-streamer --mjpeg流媒体服务器,以插件的形式支持不同的视频采集和流媒体协议输出

mjpg-streamer-experimental --同上,貌似是实验版本

udp-client --QT客户端

uvc-streamer --uvc服务器


3.2 mjpg-streamer编译

编译时需要注意交叉工具链的设置,默认是本地gcc编译。

除了指定交叉工具链mipsel-linux-gcc外,还有一些linux源码头文件涉及到v4l接口的操作。

通过PLUGINS的值来选择编译不同各类的输入输出插件。

这里我们的摄像头驱动是gspcav1,所以输入插件选择编译“input_gspcav1.so”

使用网页浏览使用http协议,所以输出插件选择“output_http.so”


3.3 搭建mjpeg视频监控

3.3.1 拷贝三个文件到板子:

mjpg_streamer  input_gspcav1.so  output_http.so

可通过网络文件系统NFS,挂载到mnt目录下,在 /mnt/mjpg-stream/下可以看到以上三个文件 


3.3.2 指定库搜索路径

mjpg_streamer运行时需要加载输入输出两个动态库插件,为了能正确的加载,

第1可以将input_gspcav1.so和output_http.so两个文件拷贝到/lib目录下,由于只读文件系统,在做固件的时候可以这样。

第2指定运行时搜索库环境变量LD_LIBRARY_PATH:

[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. # export LD_LIBRARY_PATH=/mnt/mjpg-stream:$LD_LIBRARY_PATH  

3.3.3 运行mjpg-streamer



3.3.4 传递一些参数

[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. ./mjpg_streamer -i "input_gspcav1.so -d /dev/video0 -r 640x480 -f 30" -o "output_http.so -w ./www"  

-i,--input 指定图像输入(视频采集)插件

-d 指定视频摄像头设备节点

-r 分辨率,根据摄像头所支持的分辨率来设置

-f 帧率,即一秒内采集与发送的图像帧数

-y 开启yuv图像格式,默认情况下是mjpeg


-o,--output 指定图像输出(视频网络传输)插件

-w 表示指定网页浏览所需要文件

-p 指定网络通信端口

3.3.5 视频监控端

打开网页浏览器,输入:

[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. http://192.168.10.123:8080/?action=stream  

就可以在网页里看到视频画面了:


客户端可以看视频画面:


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值