树莓派运动监测和录制

2021-08-19
2021-08-19
3 min read
Hits

  自从在上海第一次租房遇到小偷后,就开始考虑要装监控了。再看着躺在桌上满口灰的树莓派,拿来吧你😄   树莓派实现运动监测并录制有多种方法,博主悉数测试,最后选用 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

  1. 首先确定 motion 配置 /etc/motion/motion.conf 第 461 行 stream_localhost 是否为“on”,如果是请改成“off”
  2. 然后确定防火墙端口是否开放,特别是通过内网穿透进行远程监控的(树莓派内网穿透参考此文:Raspberry Pi Intranet Penetration / 树莓派内网穿透

远程监控多次正确输入账号密码依旧不停的弹出输入账号密码框

  确定 motion 配置 /etc/motion/motion.conf 第 472 行 stream_auth_method 是否为“2”,如果是请改为“1”。

motion 提示不存在摄像头、无法开启摄像头或摄像头繁忙

  看看是不是摄像头没插到底或者开关没按到底。

重启或第二次启动 motion 失败,提示有文件权限问题

  查看本文“文件权限修改”模块。

Avatar

Hui.Ke

❤ Cyber Security | Safety is a priority.