另外一种方式:用USB摄像头实现网络监控
今天准备发贴了,才看见这个: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/>
虽然自己绕了很多弯,才搞定了,但是还是学到了不少东西。
我尝试过不同的方法做视频,除了这个,都失败了。
不知道有人用videoforlan 能成功吗? 这个软件直接用apt-get install 就可以,非常大,功能也非常强。
我一直无法用他来看摄像头,不知道是我软件配置问题,还是我的摄像头实在太烂。
videoforlan 还可以把同时监控,也同时把文件存下来,也可以做视频流的服务。可惜我没有搞定。
希望有其他人能搞定这个,再写一个教程。 路过,看见了就帮顶一下。 感谢分享细节经验 口水流呀,哈哈 发个局域网地址让人看啥呢 新手,来学习的 高浮雕根深蒂固地方个的发个的发个的发 不错,收藏,准备动手! 谢谢分享,学习中。。。
页:
[1]
2