mjpg-streamer 可以通过文件或者是HTTP方式访问linux UVC(附1)兼容摄像头。可以在公司,通过访问家里安
装的摄像头查看家里的情况,对于有小孩的家长很有帮助。

如果刚好手头上一个能安装openwrt带USB接口的路由器,可以使用本文介绍的方法来配置。
我现在用的罗技的C270,效果不错。

mjpg-streamer 需要很少的CPU和内存资源就可以工作,大部分编码工作都是摄像头完成的,所以对于内
存和性能都有限的路由器十分适用。

1. 安装

在openwrt系统下,需要安装以下摄像头的驱动。
opkg install kmod-video-uvc kmod-usb2 kmod-video-core

如果能找到 /dev/video0 的设备文件,就说明驱动已经安装成功。
如果没有成功,罗技的摄像头还可以尝试一下安装kmod-video-pwc。

在openwrt系统下面,安装mjpg-streamer很简单。
opkg install mjpg-streamer

如果是ubuntu系统,可以从下面的网址下载安装包。
http://sourceforge.net/projects/mjpg-streamer/files/mjpg-streamer_r94-1_i386.deb/download 

安装完了之后,运行
/etc/init.d/mjpg-streamer start
就可以启动了。

2. 使用

在firefox浏览器里面输入 http://192.168.1.1:8080/?action=stream ,应该能看到摄像头抓取的视频

这个视频的帧数很低,显得摄像头反应很慢。可以修改/etc/config/mjpg-streamer里面的fps参数。

如果想在公司访问家里的摄像头,还应该修改防火墙,接受8080端口的外网请求。
添加下面配置到 /etc/config/firewall
config rule
        option src              wan
        option proto            tcp
        option dest_port        8080
        option target           ACCEPT

然后重启防火墙 /etc/init.d/firewall restart,就可以了。

外网访问摄像头的时候,如果看视频可能速度会跟不上,可以只看截屏。
http://192.168.1.1:8080/?action=snapshot
需要将192.168.1.1替换成路由器说使用的公网IP地址

3. 配置用户名和密码

mjpg-streamer 还可以使用用户名和密码来**访问。
修改 /etc/init.d/mjpg-streamer 中的
         [ $enabled -gt 0 -a -c $device ] && sleep 3 && $SSD -S -m -p $PIDF -q -x $PROG -- --input "input_uvc.so --device $device --fps $fps --resolution $resolution" --output "output_http.so --port $port" &

         [ $enabled -gt 0 -a -c $device ] && sleep 3 && $SSD -S -m -p $PIDF -q -x $PROG -- --input "input_uvc.so --device $device --fps $fps --resolution $resolution" --output "output_http.so --port $port -c user:pass" &

最后添加的部分就是用户名和密码,中间用冒号分割。重新启动mjpg-streamer,保证配置生效。
/etc/init.d/mjpg-streamer restart

附1:

UVC是Microsoft与另外几家设备厂商联合推出的为USB视频捕获设备定义的协议标准,目前已成为USB org标准之一。
如今的主流操作系统(如Windows XP SP2 and later, Linux 2.4.6 and later, MacOS 10.5 and later)都已提供UVC设备驱动,因此符合UVC规格的硬件设备在不需要安装任何的驱动程序下即可在主机中正常使用。使用UVC技术的包括摄像头、数码相机、类比影像转换器、电视棒及静态影像相机等设备。

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐