开源轻量视频管理系统SentryShot教程
简介
SentryShot是一个由Rust语言开发的开源视频管理系统,支持录制视频、回放视频(目前仅支持H264),可以实现自建硬盘录像机(NVR)的功能,为老旧摄像头添加软件级别的运动检测。
截图:
Docker安装
离线镜像下载:
文件名称:sentryshot-0.2.24.tar.gz
下载地址:城通网盘(访问密码: 7356)
services: sentryshot: shm_size: 500m image: codeberg.org/sentryshot/sentryshot:v0.2.24 ports: - 2020:2020 environment: - TZ=Asia/Shanghai # Timezone. volumes: - ./configs:/app/configs - ./storage:/app/storage
编辑配置文件:nano configs/sentryshot.toml
[[plugin]] name = "auth_none" # 意思为启用非认证方式 enable = true
使用浏览器打开:http://your_ip_addr:2020/live
添加摄像头和运动检测
在Settings-Monitors-add添加一个摄像头,主要填写字段如下:
- id为自动生成
- Name填写摄像头的名字,我这里填的大门gate
- Enable monitor选true启用摄像头
- Source这里填写RTSP协议地址
- 默认tcp协议
- Main stream即主码流,每种品牌摄像头的RTSP协议不一样,比如天地伟业的RTSP地址是这样的,
rtsp://用户名:密码@IP地址:554/1/1
- 子码流选填,我这里就不填了
- Always record选ture即开启录制功能
- Video length即每段视频的长度,以分钟做单位,我这里填60分钟
这里需要补充一句,当前SentryShot只支持H264编码,所以需要在摄像头后台设置为H264编码,才能正常取流。
在配置中开启运动检测后会多一个Motion detection配置:
- 开启运动检测
- Feed rate (fps):发送给检测器的每秒帧数
- Trigger duration (sec):检测到动作后,录像器将持续工作的秒数
- Zone即运动检测的区域
- 区域编号,可以新增或删除
- 启用该区域
- Sensitivity灵敏度:是指像素点的颜色变化需达到的最小百分比
- Threshold Min-Max阈值:是指监测区域内活动像素的占比 最小值-最大值
- 底下的红色区域即监测区域,是一个坐标系,与屏幕的坐标位置规则一样,左上角为(0,0),右下角为(100,100),也可以添加新的坐标点
以上两块设置(运动检测、区域设置)我这里都用的默认设置,运动检测设置成功后。已经保存的视频有画面变化时会显示红色的竖线。
到目前up用了将近一个月,挺稳定的,本来1个小时保存的视频大概800M~900M,开了天地伟业的S+H.264,1个小时只需要200M~300M。
性能方面,1个摄像头、1个区域监测,占内存仅需240M,占CPU(单核)仅需13%:
日志中可以查看多个级别。
目前尚未研究的还有音频流以及对象检测,后续研究明白了再做教程。