查看: 17724|回复: 10
收起左侧

[项目方案] 另外一种方式:用USB摄像头实现网络监控

2012-11-21 20:42:42 | 显示全部楼层 |阅读模式
今天准备发贴了,才看见这个:http://www.shumeipai.net/thread-440-1-1.html  有空我再去试试。

买一个USB 摄像头,在淘宝上选择无驱类型的。其实是windows 内置驱动,摄像头实现 UVC 的协议。我淘宝买了一个 天敏 N82, 30元。 RasPi 也能认识。不放心可以从
http://linux-uvc.berlios.de/   看支持列表。
昨天和配置和yeelink 联动了一次,效果还是刚刚的。

今天琢磨了比较长时间,才最终搞定视频监控,效果还是不错的。

先尝试了
spcaview, 搞半天,问题太多。后来基本知道原因,spcaview 是基于 v4l1 的模型,这个明确在2.6.38 被丢弃了。
mjpg-streamer 用了v4l2的驱动模型。结果先用发布包,编译出现问题,好像也是基于v4l1的驱动。 尝试check out 最新的 mjpg-streamer , 发现果然切换到了v4l2了。

1. 编译mjpg-stream
    make clean all
   
   报错,大概是libjpeg 库没有找到。

2. 安装 需要的库
   sudo apt-get install libjpeg62-dev


3. 再次编译mjpg-stream
   make
   make install


   成功,大喜,以为可以工作了。
   执行报告 LD_LIBRARY_PATH 有问题。


4. 添加路径。
    这个稍微有点出乎意料,软件安装在/usr/local/bin, /usr/local/lib 的路径下,按道理应该默认就有。 echo $PATH, 果然没有,手动添加。


   在/etc/profile 下,添加
   LD_LIBRARY_PATH=/usr/local/lib


   执行正常,用浏览器连接,发现什么都没有。


5. 重新设置 mjpg_stream的参数。
   
    mjpg_streamer -i "input_uvc.so -d /dev/video0 -r 640x480"


    出现了 unable to set format, 尝试了大量的参数,都是失败。


    寻找源码,发现是在开始就报错。



    ret = xioctl(vd->fd, VIDIOC_S_FMT, &vd->fmt);
    if(ret < 0) {
        fprintf(stderr, "Unable to set format: %d res: %dx%dundefined", vd->formatIn, vd->width, vd->height);
        goto fatal;
    }


     着了大量的资料,基本确定了是由于mjpg_stream 对摄像头的编码有特殊的要求导致的。mjpg 只支持 V4L2_PIX_FMT_YUYV and V4L2_PIX_FMT_RGB565 和V4L2_PIX_FMT_MJPEG 。


6.  检查自己的摄像头属性
     fswebcam --device /dev/video0 output.jpeg --verbose
  
     确认是能支持 YUYV, 但是不支持硬件MJPEG 的编码。 不支持硬件编码就慢一点


7. 重新设置 参数
    input_uvc 支持 的y 参数
    [-y | --yuv ]..........: enable YUYV format and disable MJPEG mode



    mjpg_streamer -i "input_uvc.so -d /dev/video0 -r 640x480 -y " -o "output_http.so"


    终于启动了,报告了一堆warning.


8.  连接看结果。
     
     http://192.168.1.1:8080/?action=stream  


     大喜, 终于看见视频了。


9.  mjpg_streamer 完整的命令
   
      mjpg_streamer -i "input_uvc.so -d /dev/video0 -r 640x480 -y " -o "output_http.so -p 8080 -w /www "


     后面的www 是在这个mjpg_streamer 完整的项目下的一个web 网页,他示范了如果把这个流 配置到网页里面,这样就直接能在网页上看见动态的效果。


     其实很简单,就是类似<src="?action=stream"/> , 也可以产生拍一张照片的效果<src="?action=snapshot/>


虽然自己绕了很多弯,才搞定了,但是还是学到了不少东西。


回复

使用道具 举报

 楼主| 2012-11-21 20:48:33 | 显示全部楼层
我尝试过不同的方法做视频,除了这个,都失败了。

不知道有人用videoforlan 能成功吗? 这个软件直接用apt-get install 就可以,非常大,功能也非常强。

我一直无法用他来看摄像头,不知道是我软件配置问题,还是我的摄像头实在太烂。

videoforlan 还可以把同时监控,也同时把文件存下来,也可以做视频流的服务。可惜我没有搞定。

希望有其他人能搞定这个,再写一个教程。
回复 支持 反对

使用道具 举报

2012-11-21 21:13:03 | 显示全部楼层
路过,看见了就帮顶一下。
回复 支持 反对

使用道具 举报

2012-11-22 12:59:33 | 显示全部楼层
感谢分享细节经验
回复 支持 反对

使用道具 举报

2012-12-14 16:40:03 | 显示全部楼层
口水流呀,哈哈
回复 支持 反对

使用道具 举报

2013-1-24 18:14:55 | 显示全部楼层
发个局域网地址让人看啥呢
回复 支持 反对

使用道具 举报

2013-4-15 20:05:26 | 显示全部楼层
新手,来学习的
回复 支持 反对

使用道具 举报

2013-4-27 13:11:37 | 显示全部楼层
高浮雕根深蒂固地方个的发个的发个的发
回复 支持 反对

使用道具 举报

2013-5-7 08:40:05 | 显示全部楼层
不错,收藏,准备动手!
回复 支持 反对

使用道具 举报

2015-4-22 13:54:39 | 显示全部楼层
谢谢分享,学习中。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热点推荐

关注我们,了解更多

官方微信

服务时间:10:00-16:00

13714503811

公司地址:深圳市龙岗区南湾街道东门头路8号

Copyright © 2012-2020 Powered by 树莓派论坛 2019.4  粤ICP备15075382号-1
快速回复 返回列表 返回顶部