Openwrt 摄像头使用



http://see.sl088.com/wiki/Openwrt_%E6%91%84%E5%83%8F%E5%A4%B4%E4%BD%BF%E7%94%A8

Openwrt 摄像头使用

来自森亮号航海见识 {SLboat Insight;}
(重定向自 摄像头使用)
跳转至: 导航、 搜索

目录

 [隐藏] 
  • 1想法
  • 2挂载摄像头
    • 2.1调试摄像头
      • 2.1.1一般性日子[1]
      • 2.1.2内核级信息
    • 2.2相关软件包
      • 2.2.1luci-app-webcam
        • 2.2.1.1警告
        • 2.2.1.2简介
      • 2.2.2mjpg-streamer
        • 2.2.2.1简介
        • 2.2.2.2安装过程
    • 2.3成功后的设备名
      • 2.3.1简介
      • 2.3.2一些可能性
    • 2.4一个实例
      • 2.4.1来源
      • 2.4.2过程
        • 2.4.2.1刷OpenWrt固件
      • 2.4.3安装摄像头驱动
      • 2.4.4网页连接
    • 2.5调用启动命令参考
  • 3挑选摄像头
    • 3.1勇者的见识
      • 3.1.1支持UVC和MPEG的摄像头[5]
      • 3.1.2OpenWrt摄像头选购[6]
      • 3.1.3摄像头评价
        • 3.1.3.1301摄像头
        • 3.1.3.2罗技C270
          • 3.1.3.2.1一个爱好者体验
          • 3.1.3.2.2参数等
    • 3.2引用信息

想法

  • 最好有个LED能够点亮,这样就很好了

挂载摄像头

调试摄像头

一般性日子[1]

# logread -f

然后插上摄像头

内核级信息

SCH连接下,通过终端指令,得到[2]

/$ dmesg|grep usb

比如可能是: usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub usbcore: registered new device driver usb usb 1-1: new high speed USB device number 2 using ar71xx-ehci usb 1-1.2: new full speed USB device number 3 using ar71xx-ehci

相关软件包

luci-app-webcam

警告

这玩意对新版本的luci不兼容

简介

luci下的配置app,很可爱,很简单,带着界面。

mjpg-streamer

简介

mjpg的串流驱动吧。

Streaming application for Linux-UVC compatible webcams

安装过程

Installing mjpg-streamer (r148-3) to root...
Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/mjpg-streamer_r148-3_ar71xx.ipk.
Multiple packages (libpthread and libpthread) providing same name marked HOLD or PREFER. Using latest.
Installing libjpeg (6b-1) to root...
Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/libjpeg_6b-1_ar71xx.ipk.
Configuring libjpeg.
Configuring mjpg-streamer.

成功后的设备名

简介

就是访问它的设备名字咯,比如ttl的

/dev/ttyUSB0

一些可能性

/dev/video0

一个实例

来源

zaviichen,http://www.igee.cn/read.php?tid=5773

过程

记录一下今天用703N挂载摄像头的经过吧,方便大家的同时,自己也做个记录:)

刷OpenWrt固件

主要是根据 http://xxb.me/2011/10/tl-wr703n_openwrt/,由于那个网页中给的软件链接不能用了,所以自己在百度上找了:
openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-factory.bin
openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-sysupgrade.bin
刷完以后用默认配置,可以看到多了一个无线OpenWrt。
将电脑连接到该无线上。将703N的ip改为192.168.1.2,主要是为了和另一个上网的无线路由区分开。

安装摄像头驱动

将703N连网。利用网线把703N和能上网的路由连接(这是为什么要改703N的ip),把703N的网关和dns都改成上网路由的ip,可以参考http://www.home-wifi.com/forum.php?mod=viewthread&tid=7070。 这样703N的Linux就能够连网了。(>> 表示Linux命令输入)

>> opkg update 
>> opkg upgrdge kernel。 [3]

升级内核,这是由于我刷的OpenWrt系统为Linux 2.6.39.4,而目前官方的版本为2.6.39.4-1,这样会在安装kmod-video-core的时候会报如下错误: satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-video-core 查找摄像头芯片的驱动。我的摄像头是免驱动摄像头(环宇飞扬3900+),因此需要自己找芯片信息。可以用everest查看,信息为USB\Vid_0c45&Pid_62c0&Rev_0100&MI_00(vid 0c45 生产商编号,pid 62c0 产品编号)。在官方的软件源中找了半天,后来发现免驱动的摄像头可以用kmod-video-uvc,输入

>> opkg install kmod-video-uvc。
>>  ls /dev,如果有vedio的话,说明驱动安装成功(前提是要把摄像头插上)

网页连接

>> opkg install mjpg-streamer
>> mjpg_streamer -b -i "input_uvc.so /dev/video0 -r 640x480 -yuv" -o "output_http.so -p 8080 -w /web"
-b 表示后台运行,一开始最好不要,不然出错信息都没法看到。-yuv 表示改成YUV格式,这是由于默认启动mjpeg格式,但是不是所有摄像头都支持的,我的就不行。可以参考 http://www.openwrt.org.cn/bbs/forum.php?mod=viewthread&tid=6105
在Firefox或者Chrome中查看:
192.168.0.2:8080/?action=stream(动态视频)
192.168.0.2:8080/?action=snapshot(静态图像)
可以设置mpjg_streamer的自动运行,参考 http://www.igee.cn/read.php?tid=5324&page=1 ,添加一个启动脚本。这时可以使用-b参数。

调用启动命令参考

  • uvc摄像头参数
mjpg_streamer -i "input_uvc.so -r 352x288 -f 15 -q 80 -y"  -o "output_http.so -p 8080 -w /www" 
  • 301摄像头参数 [4]
mjpg_streamer -i "input_uvc.so -r 640x480 -f 30"  -o "output_http.so -p 8080 -w /www" 

挑选摄像头

勇者的见识

支持UVC和MPEG的摄像头[5]

可用于Openwrt是用MJPG-Streamer的摄像头如下,这几个京东淘宝都很多

  • 微软 LifeCam HD-5000
  • 微软 LifeCam HD-3000
  • 罗技 Webcam C110
  • 罗技 Webcam C200
  • 罗技 Webcam C210
  • 罗技 Webcam C250
  • 罗技 Webcam C270

OpenWrt摄像头选购[6]

之前买了3个ZC0301PL的摄像头,淘宝10元一个,邮费12元,都可以用,但是都很旧,没有外壳,USB接口都有点锈了,在弱光下很模糊。后来觉得效果不满意,买了一个“高清”免驱摄像头,京东39元免运费,这个摄像头就清晰很多,而且在很弱的光线下,其他摄像头都已经什么都看不到了,它还能看得很清楚,不过接到openWRT上就杯具了,mjpg-streamer不能用mjpg格式,只能用YUV模式,640x480非常卡,320x240也有延迟。


经过一番查找知道了,如果摄像头支持mjpg格式输出,mjpg-streamer只需要将得到jpeg格式的图片转发到HTTP服务器就可以了。但如果摄像头不支持mjpg格式输出,仅支持YUV格式,那mjpg-streamer需要将原始图片压缩成jpeg格式,那就需要消耗大量CPU。前几年电脑硬件性能不强,所以一般摄像头都支持mjpg格式输出,现在的电脑性能都很强了,所以不支持mjpg格式输出,电脑上用也没啥区别,但我们的小路由就不行了。


那么如果我们想买一个效果好一点的摄像头,怎样选择呢?网络上的教程,大多都是基于中星微的301方案,因为这种摄像头几乎都能用。但这种摄像头一般都比较旧,买的都是二手货,你也很难指定某个牌子,买到什么都是看运气。幸好openWRT官方网站给了我们一些指引:http://wiki.openwrt.org/doc/howto/usb.video 如果想买gspca摄像头(即有驱摄像头): http://linuxtv.org/wiki/index.php/Gspca gspca都是比较旧的东西了,现在的基本上是UVC摄像头(即免驱摄像头):http://www.ideasonboard.org/uvc/ 现在的摄像头品牌太多了,而且大部分都不会说自己的主控芯片,所以很难根据主控芯片去买。那么UVC摄像头是不是都支持呢?理论上大部分UVC摄像头是支持的,但我们看到,即使是官方的列表,UVC摄像头也很多有些问题,而且如果UVC摄像头不支持mjpg输出,那分辨率只能设为320x240,还有不小的延迟。怎么看UVC摄像头是否支持mjpg输出呢?还是要看主控芯片...不过我可以很负责任的告诉你,市面上低于50元的全新摄像头,肯定不支持mjpg输出(主控芯片的价格问题)。


那我们根据官方的UVC列表来购买不就行了吗?对的,不过一定要买右边是绿色勾的,而且旁边没有数字的才行,右边的数字是表示有某些已知的问题。但那个列表里面大多数国内都买不到,我从里面找了一些官方支持的,淘宝能买到的,而且价格不太高的摄像头(200元以内),给大家做个参考。有些价格也不到100元,总比买几个几十块的摄像头,才发现都不适合好吧:)

  • 微软 LifeCam VX-500
  • 微软 LifeCam VX-700
  • 微软 LifeCam HD-5000
  • 微软 LifeCam HD-3000
  • 罗技 Webcam C200
  • 罗技 Webcam C210
  • 罗技 Webcam C250
  • 罗技 Webcam C270
  • 罗技 Webcam C300
  • 罗技 Webcam C310
  • 罗技 Quickcam Communicate MP/S5500
  • 罗技 Quickcam Communicate Deluxe/S7500
  • 罗技 Quickcam E 3500

另外收集了一些网友测试过可用的摄像头:

  • 罗技 Webcam C110
  • 台电MG77
  • 飞利浦 SPZ5000


我们也可以去官方网站查看摄像头的参数,不过我只看到奥尼有该参数,以下是支持openWRT和MJPG输出的摄像头: http://www.aoni.cc/

  • 百脑通-D881HD720P
  • 百脑通-剑影HD1080P
  • ANC-酷睿HD1080P
  • ANC-酷客HD720P
  • ANC-红魔HD720P
  • ANC-酷尚HD720P
  • ANC-酷逸HD720P


另外我们还可以通过网上的测评文章得知摄像头的芯片,以下是支持openWRT和MJPG输出的摄像头,(UVC)表示免驱,(*)表示编辑推荐: http://article.pchome.net/content-382425-1.html

  • (*)罗技快看迷你版 ZC0302
  • 视视看 风火轮 ZC0301PLH
  • 极速 27.3 ZC0301PLH
  • 第一印象 魔杖801 ZC0301PLH
  • (*)第一印象 小红帽 ZC0301PLH
  • 视视看 红色警戒 VC0323
  • (UVC)蓝色妖姬 T616pro VC0301PLNV
  • (UVC)极速 Q5-V VC0301PLNV
  • (UVC)极速 K8 VC0301PLNV
  • (UVC)视视看 雪山飞狐 VC0301PLNV
  • (UVC)奥尼 钻石之恋 VC0301PLNV
  • (UVC)(*)奥尼 iPPle VC0301PLNV
  • (UVC)(*)海天地QQ X5 VC0301PLNV

http://www.pcpop.com/doc/0/329/329623_all.shtml

  • (*)蓝色妖姬 水晶狮王 VC0301PLNC
  • (*)麦典战车 VC0301PLNV
  • (UVC)台电蝙蝠侠 VC0301PLNV
  • (UVC)(*)海天地 金刚狼X3A VC0301PLNV
  • (UVC)剑桥小海豚 VC0332
  • (UVC)魅景铂金甲 VC0332TLNB
  • (UVC)今视通 今奥 VC0332
  • (UVC)(*)今视通 今雕 VC0332
  • (UVC)(*)今视通 今狮 VC0332
  • (UVC)迈德克斯启明星 VC0342PLNBA
  • (UVC)e虎S550 SN9C288FG
  • (UVC)达克浩思蓝色闪电 SN9C213
  • (UVC)第一印象探月者 SN9C288
  • (UVC)第一印象启明星 SN9C288FG
  • (UVC)视视看楚霸王 SN9C288
  • (UVC)视视看炫色妖姬 SN9C288
  • (UVC)天敏夺目 SN9C288FG

囊中羞涩的朋友可以去淘宝搜搜二手的,清仓的摄像头,说不定有惊喜哦。不过要小心,我看到网上的评论说,“ANC-红魔”和"第一印象 魔杖801"居然有仿冒,另外有些型号,厂家为了节省成本,后来生产的已经换了芯片。。。 最后我买了百脑通-D881HD720P,92包邮送一个小包,效果还可以,注意D881有一个是旧版的,不是720P,不要贪便宜买那个。测试640x480@25pfs,CPU用25%左右。1280x720@15pfs,CPU用30%左右。 下面图片是经过703n的mjpg-streamer发送的,在谷歌浏览器看到的效果:

百脑通-D881HD720P拆解图,主控是奥尼自产的?P219BFG,网上搜不到相关资料。92块钱主要就是这东西。

另附另外一个39元的UVC摄像头拆解图,Sonix SN9C259芯片,不支持MJPG输出的

摄像头评价

301摄像头

301摄像头真的太差了,黑暗的时候一片黑曝光不足,太亮的时候一片白过度曝光,我2个301都是那样,还是uvc的好,我试用了视频跟踪 uvc也不卡 我看路由cpu占用率也能接受,准备以后就用uvc了不折腾301了。uvc摄像头插拔后不启动路由,用kill命令,再次运行mjpg_streamer -i "input_uvc.so -r 352x288 -f 15 -q 80 -y" -o "output_http.so -p 8080 -w /www" 即可,不过不建议热插拔,703N电容少,热插拔,什么固件都不稳定,据说焊接个电容可以解决。[7]

罗技C270

品牌 罗技 Logitech C270
像素 300 万像素 (软件增强效果)
捕获幅面 1280*720
最大帧数 30帧/秒
接口 USB 2.0
附加功能 带个麦克风
市场价 大约140
重量参考 0.25kg
一个爱好者体验
罗技c270加载到openwrt上效果相当好(有图有真相)
路由器:300r v2(改16m flash+64m ram+usb接口)
摄像头:罗技c270 720p高清摄像头
固件:自己用backfire源码定制编译的 [8]

参数等

这玩意参数就是这样,支持挺清晰,带个摄像头,但是体积似乎也称不上小巧。



引用信息

以下是[Openwrt 摄像头使用]所有用到的引用信息,向这些伟大的家伙致敬:
  1. 跳转^ 日志,是的,日子也不错
  2. 跳转^ 猪就是我,http://wifi.com.cn/forum/forum.php?mod=viewthread&action=printable&tid=73936
  3. 跳转^ 原文upgrage ,这里修改为upgrade
  4. 跳转^ http://www.igee.cn/read.php?tid=6017
  5. 跳转^ http://bbs.mydigit.cn/simple/?t378666.html
  6. 跳转^ 伟大的lancerz001,http://hi.baidu.com/lancerz001/blog/item/bf480ac9b490b8f638012f50.html
  7. 跳转^ zhaohm,http://www.igee.cn/read.php?tid=6017
  8. 跳转^ 小标,http://www.right.com.cn/forum/forum.php?mod=viewthread&tid=78650

你可能感兴趣的:(linux驱动开发,openwrt)