树莓派运动监测和录制
自从在上海第一次租房遇到小偷后,就开始考虑要装监控了。再看着躺在桌上满口灰的树莓派,拿来吧你😄 树莓派实现运动监测并录制有多种方法,博主悉数测试,最后选用 motion 成功达到预期。
网上有无数树莓派运动监测的教程,但是可能年代久远,多多少少都存在一些问题。仔细按本文操作不会出现任何问题,在本文的最后博主也会列举几个百度无解的问题解决方案。
需求描述
树莓派放在房间里对着房门,白天出门上班的时候开机,开启监控,在公司可以远程查看监控。如果有人闯入,在开启房门的时候开始录像,直至房门关闭不动后停止录像,并保存在本地。 所以我们需要做的是:motion 跟随树莓派开机自启,开启远程监控和运动监测,发现有物体移动就录像并保存在本地。
准备工具
- 安装了树莓派官方操作系统的树莓派一个(博主用的是 8G 内存的 4B)
- 树莓派官方摄像头(记得线要插到底,同时那个开关也要按到底,大力一点)
修改时区
tzselect # 选时区
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime # 改为中国时间
升级系统
sudo apt update
sudo apt full-upgrade
启用摄像头
raspi-config # 选择第 5 个“Interfacing Options”然后选择第 1 个“Camera”,开启并保存退出
安装 motion
sudo apt install motion -y # 安装 motion
motion 开机自启
nano /etc/default/motion # 将 no 改为 yes
motion 配置
nano /etc/motion/motion.conf
# 修改 motion 配置,可以参考博主的
11 daemon on # 后台进程驻留
79 width 1920
82 height 1080 # 分辨率
86 framerate 100 # 最大采集帧率
104 netcam_keepalive on # 使用 HTTP/1.1
175 threshold_tune on # 自动调低运动监测帧率阈值
346 locate_motion_mode on # 运动物体框出
380 text_double on # 右下角时间显示字体增大
438 ipv6_enabled on # 允许 IPv6
458 stream_maxrate 100 # 最大录制帧率
461 stream_localhost off # 开启远程监控
472 stream_auth_method 1 # 监控基础加密(这里注意,如果改成 2 会出错,建议 1 或 0)
476 stream_authentication username:password # 监控登陆的用户名和密码
启动 motion
motion # 启动 motion
浏览器访问 http://树莓派IP:8081 即可体验远程监控。
文件权限修改
此处就是一个其他教程丝毫不会提及的问题,一般教程到上一步也就结束了。可能是因为新版本的权限控制更为严格,导致在第二次启动 motion 时会出现两个文件的权限错误,导致无法正常启动 motion。所以需要对这两个文件进行权限修改。
chmod a+rwx /var/run/motion/motion.pid # 修改 motion.pid 文件权限
chmod a+rwx /var/log/motion/motion.log # 修改 motion.log 文件权限
按如上命令修改两个文件权限,方可保 motion“万世太平”
这才到了真正的 Success。运动监测录制的视频会以时间作为文件名,以 mkv 文件格式保存在 /var/lib/motion 文件夹中。
FAQ
无法访问 http://树莓派IP:8081
- 首先确定 motion 配置
/etc/motion/motion.conf
第 461 行stream_localhost
是否为“on”,如果是请改成“off” - 然后确定防火墙端口是否开放,特别是通过内网穿透进行远程监控的(树莓派内网穿透参考此文:Raspberry Pi Intranet Penetration / 树莓派内网穿透)
远程监控多次正确输入账号密码依旧不停的弹出输入账号密码框
确定 motion 配置 /etc/motion/motion.conf
第 472 行 stream_auth_method
是否为“2”,如果是请改为“1”。
motion 提示不存在摄像头、无法开启摄像头或摄像头繁忙
看看是不是摄像头没插到底或者开关没按到底。
重启或第二次启动 motion 失败,提示有文件权限问题
查看本文“文件权限修改”模块。