开源网络摄像系统/zh

来自Microduino Wikipedia
跳转至: 导航搜索

概述

  • 项目名称:MicroWrt开源网络摄像系统
  • 目的:利用MicroWrt实现无线视频采集功能
  • 难度:中
  • 耗时:2小时
  • 制作者:Jason Sheng
  • 简介:

无线的视频采集在实际生活中有着广泛的应用。比如远程视频监控,终端距离视频监控。目前流程的无人机系统也可以搭载摄像头,将拍摄的图像实时传送到控制终端。市面上常见的WIFI车辆一般也配备无线视频的传输。本项目将在microWRT上,使用一款iSight苹果摄像头,来完成视频的采集,用户可以通过PC或者手机终端连接到MicroWrt上实时查看视频。玩家也可以根据自己的需要使用其他UVC免驱摄像头。具体摄像头的型号,可以查看openwrt官网获得详细信息。完成这个项目后,玩家可以将改系统应用在自己的其他项目中来实现视频采集。

材料清单

  • MicroWrt设备
模块 数量 功能
MicroWRT 核心板/zh 1 核心板
MicroWRT HUB 扩展板/zh 1 USB扩展
  • 其他设备
模块 数量 功能
USB 摄像头 1 采集视频
Micro-USB线 1 下载程序、供电
充电宝 1 提供电源
物料.jpg

实验原理

openwrt软件自带对USB, Video的支持,通过添加这些模块,USB摄像头就能够被正确的检测识别。为了启动USB摄像头,还需要安装另外一个软件mjpeg-streamer,它可以通过文件或者HTTP的方式来访问摄像头。它本省只需要很少的CPU和内存资源就可以工作,大部分编码工作都是由摄像头来完成的。所以对于内容和性能都有限的路由器十分实用。当用户通过无线连接到MicroWrt后,就可以通过浏览器来查看实时视频了。

安装调试

我们的MicroWrt出厂固件已经支持了USB摄像头,当然玩家可以自己通过openwrt编译,然后烧写到MicroWrt上,具体的编译和烧写过程请参考其他wiki教程。需要注意的是,用户如果想烧写自己编译的固件最好通过uboot来烧写,不能用编程器。因为自己编译的固件是没有uboot的,直接用编程器烧写,会是MicroWrt变砖。本项目中使用的是isight摄像头,这个摄像头的特殊之处是需要有特定的驱动,好在openwrt已经包含了这个驱动,我们也配置到出厂固件里了。所以玩家可以直接使用。如果想自己编译的话,可以做如下配置:

 Device DRivers  --->
   USB Support --->
      <*> iSight firmware loading support

固件的问题解决好了之后,将MicroWrt核心板和HUB板叠加在一起,添加时注意板子上的箭头标识,然后用充电宝或者PC通过MicroUSB给MicroWrt供电。带系统正常启动后,在PC的无线连接中会发现新的MicroWrt热点。将PC和MicroWrt建立连接。

打开终端软件putty(或其他的Windows 终端软件),MicroWrt的默认出厂IP是192.168.1.1,使用telnet来访问MicroWrt。 登陆后系统界面如下:

Putty.png

将摄像头插在MicroWrt的USB口上,同时putty终端上会有如下信息打印出来。

 root@microWrt:/# 
 root@microWrt:/# [  392.310000] usb 1-1.2: new high-speed USB device number 3 using ehci-platform
 [  392.460000] usb 1-1.2: New USB device found, idVendor=05ac, idProduct=8502
 [  392.460000] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
 [  392.470000] usb 1-1.2: Product: Built-in iSight
 [  392.470000] usb 1-1.2: Manufacturer: Apple Inc.
 [  392.550000] uvcvideo: Found UVC 1.00 device Built-in iSight (05ac:8502)
 [  392.570000] input: Built-in iSight as /devices/101c0000.ehci/usb1/1-1/1-1.2/1-1.2:1.0/input/input0

然后检查在/dev目录下是否有设备video0,如果有,则说明摄像头已经成功加载。

mjpg_streamer -i "input_uvc.so -d /dev/video0 -r 640x480 -f 20" -o "output_http.so -p 8080 -w /www/webcam"

会有如下输出:

 root@microWrt:/etc/init.d# mjpg_streamer -i "input_uvc.so -d /dev/video0 -r 640x
 480 -f 20" -o "output_http.so -p 8080 -w /www/webcam"
 MJPG Streamer Version: svn rev: Unversioned directory
 i: Using V4L2 device.: /dev/video0
 i: Desired Resolution: 640 x 480
 i: Frames Per Second.: 20
 i: Format............: JPEG
 i: TV-Norm...........: DEFAULT
 o: www-folder-path...: /www/webcam/
 o: HTTP TCP port.....: 8080
 o: username:password.: disabled
 o: commands..........: enabled

正常完成了mjpeg-streamer的执行后,就可以用浏览器(最好是firefox或者chrome)访问路由器的8080端口,查看摄像头的图像。命令如下:

192.168.1.1:8080/?action=stream

若想实现远程监控,可以在路由器上配置一下花生壳之类的动态域名服务,就能在外网通过域名访问路由器。

视频