最近新购入极路由,用其自带的动态转发功能,把家里的树莓派设置为可以远程访问的服务器,所以想可以进一步扩展一下树莓派的功能。想到家里以前有个不怎么好看的摄像头(当年买来准备QQ视频用)闲置,找出来接上树莓派,没想到直接就识别了。这样做一个家庭监控因该很容易吧,于是立刻开始动手实践。
正如刚刚所说的,将usb摄像头接入树莓派后,终端输入
1 |
|
如果显示video0,则表示摄像头已经被识别,无需再安装驱动
接下来就是调用摄像头进行监控操作,通过搜寻发现有两种方法可以供使用
fswebcam配合脚本实现定时抓取图像
这个方式需要自己编写脚本定时抓取图像,简单但没有运动检测,如果监控区域长期没有变化,也会一直抓取。
首先安装fswebcam
1 |
|
完成后输入
1 |
|
就立刻抓取了一张图像,将以上命令写入脚本,保存为cam.sh
1 |
|
脚本设置了一个循环,每隔1秒抓取一张图像,为了防止无限抓取,设置了脚本最多抓取3600张图片后停止。接下来在screen中执行这个脚本,就可以看到/mnt/sandisk/home.jpg在不断刷新最新的监控图像。如果需要做到通过浏览器访问,只需要写一个cam.html页面,放在home.jpg相同目录下:
1 |
|
然后在当前目录架设python的简单http服务器
1 |
|
然后通过动态域名直接访问即可(如 http://demo.jios.org:8000/cam.html)
当然,也可以通过这个链接的方法把监控图片直接集成到该平台上,直接通过平台访问。
motion实现输出视频文件家庭监控
我采用的是这个方法,因为motion这个开源软件配置好之后,实在是非常好用。
首先安装motion
1 |
|
接着对/etc/motion/motion.conf进行编辑
1 |
|
修改以下相应参数
1 |
|
设置好之后执行
1 |
|
监控开始工作,当有侦测到有运动状态时,就会自动以视频形式记录,如果监控画面长时间没有变化,则停止记录。
此外motion.conf中还有on_event_start和on_event_end设置,这两个参数分别用于当检测到运行状态时,开始记录时执行的脚本,以及当停止记录时执行的脚本,通过编写脚本,可以实现一旦监控到内容即时发送视频到指定邮箱这样的功能,具体实现可以参考这里,我暂时没有这样的需求,因此就没有继续去做这样的工作了。
到这里,就完成了树莓派视频监控的打造。