开源轻量视频管理系统SentryShot教程

开源软件身份卡
名称 SentryShot
开发语言 Rust
官网
代码托管 GithubCodeberg
开发团队
开源协议 GPLv2
本文档使用版本 0.2.24
本文档更新日期 2025年4月23日
配套视频教程 B站教程

SentryShot是一个由Rust语言开发的开源视频管理系统,支持录制视频、回放视频(目前仅支持H264),可以实现自建硬盘录像机(NVR)的功能,为老旧摄像头添加软件级别的运动检测。

截图:

sentryshot-main.jpg

离线镜像下载:

文件名称: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%:

sentryshot-performance.jpg

日志中可以查看多个级别。

目前尚未研究的还有音频流以及对象检测,后续研究明白了再做教程。

  • docs/nvr/sentryshot.txt
  • 最后更改: 2025/04/23 23:27
  • ossdate