Sign inSign up

wangwuli/streamsnap

By wangwuli

•Updated 2 months ago

摄像头批量截图管理系统。

Image
0

40

wangwuli/streamsnap repository overview

⁠StreamSnap

摄像头批量截图管理系统。支持 RTSP / HTTP(ISAPI) 多路摄像头按策略定时抓拍,提供 Web 管理界面、实时预览、协议互转、运行监控。镜像内置 jellyfin-ffmpeg(含 NVDEC 硬解),开箱即用。

⁠✨ 特性

  • 三种抓取模式,可按路独立配置:continuous 常驻拉流 / on_demand 按需单帧 / isapi HTTP 抓拍
  • 协议互转:RTSP ⇄ HTTP(ISAPI)批量转换,自动提取通道号、保留 IP
  • per-stream 策略:每路流独立设抓取模式/地址/间隔,支持单路编辑 + 批量修改
  • 运行监控:近 1 分钟成功/空帧计数、最后成功时间、抓取状态
  • 配置与生效分离:保存不中断运行,独立「应用配置」重启生效
  • 只解 I 帧:-skip_frame nokey,极低 CPU,画质无损
  • 自动重连退避 / 帧去重 / 网段扫描发现摄像头

⁠🚀 快速开始

docker run -d --name streamsnap -p 5000:5000 \
  -v $(pwd)/data:/app/data \
  -v $(pwd)/images:/image_new \
  -e APP_USERNAME=admin \
  -e APP_PASSWORD=admin \
  wangwuli/streamsnap:0.0.1
或用 docker compose:


services:
  streamsnap:
    image: wangwuli/streamsnap:0.0.1
    restart: unless-stopped
    ports:
      - "5000:5000"
    volumes:
      - ./data:/app/data        # 配置持久化
      - ./images:/image_new     # 截图输出(save_path 默认 /image_new)
    environment:
      - APP_USERNAME=admin
      - APP_PASSWORD=admin
      - TZ=Asia/Shanghai
访问 http://localhost:5000,默认账号 admin/admin。

⚙️ 环境变量
变量	默认值	说明
APP_USERNAME	admin	Web 登录用户名
APP_PASSWORD	admin	Web 登录密码,生产环境务必修改
TZ	Asia/Shanghai	时区,影响截图文件名时间戳
STREAMS_CONFIG_FILE	/app/data/streams_config.json	配置文件路径,一般无需改
FFMPEG_PATH / FFPROBE_PATH	jellyfin-ffmpeg	一般无需改

💾 持久化(务必挂载)
/app/data — 配置文件 streams_config.json
/image_new — 截图输出目录(save_path 默认值)。不在 /app/data 卷内,需单独挂载,否则容器重建后图片丢失

🎮 NVDEC 硬解(可选)
启动加 --gpus all(compose 用 deploy.resources.reservations.devices),并在 Web「设置」里把 hw_accel 设为 true。

完整文档与源码见 [Gitee 仓库](https://gitee.com/wangwuli/stream-snap)


Tag summary

Content type

Image

Digest

sha256:d2d240041…

Size

2.3 GB

Last updated

2 months ago

docker pull wangwuli/streamsnap:0.0.1