一、ZC301与uvc无驱摄像头挂载:
无线路由器挂载摄像头后可以通过后续安装与配置motion等软件包变成一个远程视频监控与动态画面捕捉的设备。
(1)安装相应驱动模块:
opkg update
//opkg install kmod-usb-video //3.10.28版本的源包中没有找到此软件包,似乎目前也不需要此包的支持
opkg install kmod-video-gspca-core
opkg install kmod-video-core
opkg install kmod-video-uvc #免驱摄像头
opkg install kmod-video-gspca-zc3xx #中微星摄像头如zc301 zc303 zc305
opkg install kmod-i2c-core
opkg install kmod-input-core
(2)检查挂载状态:
lsusb //摄像头插入后会查看到相应型号信息
ls /dev //挂载成功后会有一个video0设备文件。
dmesg | grep usb //正常驱动后会看到摄像头型号
cat /dev/video0 > /mnt/udisk/1.jpg //捕捉1张照片,实测能生成jpg文件,但无法停止捕捉状态,文件查看不正常,但没有关系,后续安装的motion软件包可以正常工作并捕捉到动态画面。
(3)挂载不成功解决办法(重新加载以下模块):
modprobe videodev.ko
modprobe common.ko
modprobe gspca_zc3xx.ko //实测该命令后即在/dev目录下生成video0文件
modprobe uvcvideo.ko //实测该命令有效
二、远程视频监控程序mjpg-streamer运用:
mjpg-streamer软件包可以提供摄像头监控服务,如果在路由器中设置好端口映射,甚至可以通过外网任意电脑或手机浏览器远程监控,目前只支持UVC无驱摄像头。 经实测安卓手机中使用UC与自带浏览器都不能正常显示监控页面,安装安卓版火狐浏览器可以完美支持。
1、软件包安装:
opkg install mjpg-streamer
2、程序运行:
mjpeg-streamer的用法比较简单,参数直接写在命令行里就可以了。
下面给出几个常见的参数组合:
mjpg_streamer -i “input_uvc.so -d /dev/video0” -o “output_http.so -p 8080 -w /www/webcam”
上面这行命令是让mjpeg-streamer以默认的640×480分辨率、30fps显示图像,并且监听8080端口的http请求。其自带的一个小型web页面所在的地址为/www/webcam。
mjpg_streamer -i “input_uvc.so -f 15 -r 352288 -d /dev/video0" -o “output_http.so -p 8080 -w /www/webcam”
上面这个就是较为完整的,自定义了分辨率和帧率。
注意:如果你的摄像头必须像下面这样加上-y参数才能正常开启的话,就说明它不支持MJPEG输出,只能以YUV形式每秒2、3帧的速度输出:
mjpg_streamer -i "input_uvc.so -y -r 352288 -d /dev/video0” -o “output_http.so -p 8080 -w /www/webcam”
正常完成了mjpeg-streamer的执行后,就可以用浏览器(最好是firefox或者chrome)访问路由器的8080端口(由-p参数指定),查看摄像头的图像。
3、补充说明:
mjpg_streamer -h //查看帮助信息
mjpg_streamer -i “input_uvc.so --help” //查看输入部分可用参数信息
mjpg_streamer -o “output_http.so --help” //查看输出部分可用参数信息
-b 参数:驻留后台运行。
输出部分 -c 参数:可以设置使用密码访问。
如:mjpg_streamer -i “input_uvc.so -y -r 352*288 -d /dev/video0” -o “output_http.so -p 8080 -w /www/webcam -c yao:123”
则在浏览时会要求输入用户名yao,密码123才能进入视频浏览页面。
3、视频浏览:
用浏览器打开网址:http://192.168.1.1:8080/?action=stream
三、motion动态画面捕捉与远程监控安装与配置:
motion软件包具有很强的动态画面捕捉能力,可以根据设定自动抓拍像素有改变的画面,并保存到路由器挂载U盘或远程主机中,并能通过浏览器实现远程监控。局限于路由器的CPU速度,普通廉价摄像头在openwrt下只能输出每秒2-3帧的视频画面,如果使用openwrt可以驱动的带有mjpeg的摄像头则可以输出每秒30帧的流畅画面。
1、软件包安装:
opkg install motion
2、配置文件修改:
用vi打开/etc目录下的motion.conf 文件(如果安装时用 -d 参数将motion软件包安装到了U盘,则该文件存在于U盘的etc目录中),主要可以修改以下内容:
daemon on 改为:daemon off //修改后可以不使程序后台运行,这样可以随时用ctrl+c终止程序运行,不然只能用 kill 15 XXX杀进程。
videodevice /dev/video0 //如插有多个摄像头时,要将video0改为相应的视频设备名。
v4l2_palette 17 //摄像头支持的视频模式,支持mjpeg的摄像头应把后边数字改为8。
width 320 //水平分辨率,一般可设为352
height 240 //垂直分辨率,一般可设为288
//用低端uvc免驱摄像头测试,当分辨率设为640*480,画面严重破碎。
framerate 2 //帧速
threshold 1500 //动态画面捕捉阈值,这里表示画面中像素点改变1500个以上就自动拍下一张照片。
target_dir /mnt/data //这是经修改后的照片保存路径。
stream_port 8081 //视频流端口号,在电脑浏览中远程监控时,路由器IP后所跟的端口号。
stream_localhost on //将on 改为off才能在电脑浏览器中进行监控。
webcontrol_port 8080 //web控制端口,通过该端口连接路由器后可以通过浏览器对各项参数方便地进行设置。
3、程序运行:
motion -c /etc/motion.conf //通过-c参数调用配置文件,可以将配置文件motion.conf 复制到任意目录,进入该目录后,可以不带参数直接执行motion 命令。
4、在防火墙中设置为允许通过WAN口IP连接8080端口:
vi /etc/config/firewall
添加如下规则:
config rule
option target 'ACCEPT'
option src 'wan'
option proto 'tcp udp'
option name 'Allow8080' #这里可以取任意名字
option dest_port '8080'