第十五课--MiroWRT 网络摄像头

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

本节教程主要介绍如何在microWRT上添加USB摄像头,使用一款iSight苹果摄像头,玩家也可以根据自己的需要使用其他UVC免驱摄像头。 具体摄像头的型号,可以查看openwrt官网获得详细信息。


固件配置

为了支持USB摄像头,我们需要对openwrt的源码进行配置,添加USB和UVC相关的模块。

固件里至少要包括下面的两个摄像头相关的内核模块:

kmod-video-core, kmod-video-uvc以及mjpeg-streamer软件。其中的配置选项主要在下面的配置列表里。不同的openwrt版本,可能位置有所不同,请玩家注意。

 Device Drivers  --->
  <*> Multimedia support  --->
  <*>   Video For Linux   
 Video capture adapters  --->   
  V4L USB devices  --->
  <*>   USB Video Class (UVC)                      
 UVC input events device support

除此之外还要添加对isight摄像头专门的模块,如下:

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

我们也提供了一个已经编译好驱动的固件,玩家可以直接下载使用,此固件不带uboot,玩家可以通过uboot将其烧写到microWRT上。

USB Camera Firmware 文件:USB Camera Firmware

测试

将摄像头接在microWRT上,在串口终端会有如下信息打印出来。

 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

这就说明USB摄像头已经成功加载。同时在/dev目录下会生成设备vdieo0.

mjpeg-streamer 的执行程序在/etc/init.d 目录,进到该目录下后,运行如下命令:

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

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