尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

开源视频监控服务器Shinobi:从零搭建基于Docker的智能安防系统

开源视频监控服务器Shinobi:从零搭建基于Docker的智能安防系统
📅 发布时间:2026/7/13 13:12:02

1. Shinobi是什么?为什么选择它?

Shinobi是一款基于Node.js开发的开源视频监控服务器软件,专为现代安防需求设计。它最大的特点就是轻量、灵活且功能强大,完全免费开源,你可以把它理解成一个自建版的"海康威视云平台",但不需要支付任何授权费用。

我最初选择Shinobi是因为它的几个独特优势:

  • 全平台支持:无论是家用IPC摄像头、商用监控系统还是工业级设备,只要支持RTSP/ONVIF协议都能接入
  • 硬件要求低:在我的树莓派4上就能流畅运行5路1080P摄像头的实时监控
  • 现代化界面:相比老旧的ZoneMinder,它的Web界面简直像从2020年穿越来的
  • 智能扩展:通过插件可以轻松实现人脸识别、车牌识别等AI功能

实测下来,最让我惊喜的是它的资源占用。在Docker中运行,处理3路4K视频流时内存占用不到1GB,这对自建监控系统来说太重要了。不过要注意的是,中文翻译确实有些生硬,建议直接用英文界面更直观。

2. 环境准备与Docker部署

2.1 硬件需求建议

根据我的踩坑经验,推荐以下配置:

  • CPU:至少4核(处理1080P视频流)
  • 内存:每路摄像头预留512MB(4K视频需1GB)
  • 存储:建议SSD做系统盘,机械硬盘存视频
  • 显卡:非必须,但NVIDIA显卡能大幅降低CPU负载

特别提醒:如果使用树莓派等ARM设备,记得选择ARM版本的Docker镜像。

2.2 安装Docker环境

在Ubuntu系统上安装Docker只需三条命令:

sudo apt update sudo apt install docker.io docker-compose sudo systemctl enable --now docker

验证安装:

docker --version # 应该输出类似 Docker version 24.0.5 的信息

2.3 拉取Shinobi镜像

官方推荐使用GitLab的镜像仓库:

docker pull registry.gitlab.com/shinobi-systems/shinobi:latest

如果拉取速度慢,可以尝试这个国内镜像:

docker pull dockerproxy.com/shinobi-systems/shinobi:latest

3. 容器配置与启动

3.1 目录结构准备

先创建必要的目录(这是我优化过的结构):

mkdir -p /opt/shinobi/{config,database,videos,plugins,streams} chmod -R 777 /opt/shinobi/streams # 必须设置权限

3.2 Docker运行命令

推荐使用这个优化过的启动命令:

docker run -d \ --name=shinobi \ --restart=unless-stopped \ --shm-size=2g \ -p 8080:8080 \ -e TZ=Asia/Shanghai \ -v /opt/shinobi/config:/config \ -v /opt/shinobi/database:/var/lib/mysql \ -v /opt/shinobi/videos:/home/Shinobi/videos \ -v /opt/shinobi/plugins:/home/Shinobi/plugins \ -v /opt/shinobi/streams:/dev/shm/streams \ registry.gitlab.com/shinobi-systems/shinobi:latest

关键参数说明:

  • --shm-size=2g:解决高分辨率视频的内存问题
  • -e TZ=Asia/Shanghai:设置正确时区
  • streams目录:使用内存盘提升流媒体性能

3.3 使用docker-compose(推荐)

更优雅的方式是使用docker-compose.yml:

version: '3' services: shinobi: image: registry.gitlab.com/shinobi-systems/shinobi:latest container_name: shinobi restart: unless-stopped shm_size: 2g ports: - "8080:8080" environment: - TZ=Asia/Shanghai volumes: - ./config:/config - ./database:/var/lib/mysql - ./videos:/home/Shinobi/videos - ./plugins:/home/Shinobi/plugins - ./streams:/dev/shm/streams

启动命令:

docker-compose up -d

4. 初始配置与安全设置

4.1 访问管理后台

浏览器打开:

http://你的服务器IP:8080/super

使用默认账号登录:

  • 用户名:admin@shinobi.video
  • 密码:admin

重要:首次登录后立即修改密码!

4.2 创建普通用户

在Super Panel中:

  1. 点击"Users"
  2. 选择"Add User"
  3. 填写邮箱和密码
  4. 存储空间建议设为"10000"(代表10GB)

4.3 中文界面设置

虽然不完美,但可以这样设置中文:

  1. 用普通用户登录
  2. 左侧菜单 → Account Settings → Preferences
  3. 找到Dashboard Language选择"zh"
  4. 点击Save保存

5. 摄像头接入实战

5.1 准备摄像头信息

需要提前知道:

  • RTSP地址(如:rtsp://admin:password@192.168.1.100:554/stream1)
  • 视频编码格式(H.264/H.265)
  • 分辨率与帧率

5.2 添加摄像头步骤

  1. 登录普通用户后台
  2. 左侧菜单 → Monitor Settings
  3. 点击"+"添加新监控
  4. 关键配置项:
    • Connection:选择"FFmpeg"
    • Video (RTSP) Path:填写RTSP地址
    • FPS:建议设为摄像头原生帧率
    • Codec:与摄像头编码一致

5.3 常见问题解决

问题一:视频流无法播放

  • 检查防火墙是否开放端口
  • 测试用VLC能否播放RTSP流
  • 尝试降低分辨率(如主码流转子码流)

问题二:延迟高

  • 在摄像头设置中调整I帧间隔
  • 启用"Low Latency Mode"
  • 降低视频质量

6. 高级功能配置

6.1 移动侦测设置

  1. 进入摄像头配置页面
  2. 切换到"Advanced Mode"
  3. 找到"Motion Detection"区域
  4. 关键参数:
    • Sensitivity:建议从50开始调整
    • Trigger Threshold:触发阈值
    • Region Editor:设置侦测区域

6.2 定时录像配置

  1. 在摄像头配置页面
  2. 找到"Recordings"选项卡
  3. 设置录制计划:
    • 连续录制
    • 仅移动侦测时录制
    • 自定义时间段

6.3 外接存储设置

如果要使用外接硬盘:

mount /dev/sdb1 /opt/shinobi/videos chown -R 1000:1000 /opt/shinobi/videos

然后在后台设置存储路径为"/home/Shinobi/videos"

7. 维护与优化技巧

7.1 日志查看方法

查看实时日志:

docker logs -f shinobi

过滤错误日志:

docker logs shinobi | grep -i error

7.2 备份策略

建议定期备份:

# 备份数据库 docker exec shinobi mysqldump -uroot -p密码 shinobi > shinobi_backup.sql # 备份配置 tar czvf shinobi_config.tar.gz /opt/shinobi/config

7.3 性能优化

我的实测优化方案:

  1. 启用硬件加速(如果有N卡):
    docker run --gpus all ...
  2. 调整FFmpeg参数:
    "inputOptions": "-hwaccel cuvid -c:v h264_cuvid"
  3. 限制历史视频保留天数

8. 插件与扩展

8.1 实用插件推荐

  1. TensorFlow插件:实现人脸识别
  2. Telegram通知:报警消息推送
  3. Webhook插件:与其他系统集成

安装方法:

docker exec -it shinobi npm install 插件名

8.2 自定义开发

Shinobi的插件开发非常简单:

  1. 在plugins目录创建新文件夹
  2. 编写package.json定义入口文件
  3. 核心代码结构:
    module.exports = { init: function(app) { // 你的代码 } }

9. 故障排查指南

9.1 常见错误解决

错误一:数据库连接失败

  • 检查database目录权限
  • 重启MySQL服务:
    docker exec shinobi service mysql restart

错误二:视频无法播放

  • 更新FFmpeg版本
  • 检查摄像头是否支持所选编码

9.2 获取帮助

推荐资源:

  • 官方文档:docs.shinobi.video
  • GitHub Issues页面
  • 中文社区论坛

遇到问题时,记得先检查日志,大多数错误都有明确提示。我在实际使用中发现,90%的问题都是权限或路径配置错误导致的。

相关新闻

  • 高德逆地理编码 API 参数深度解析:radius、extensions、poitype 3个关键参数实战指南
  • Flink 1.18 与 Spark 3.5 实时处理引擎对比:延迟、吞吐与容错 3 维度实测
  • Hive on Tez 调优:Map Join 自动转换的边界条件与陷阱

最新新闻

  • 终极指南:NVIDIA TransformerEngine优化的ESM-2模型架构与性能优势
  • 颠覆性架构:如何用物联大师重构工业物联网部署模式
  • 新手 Windows 搭建 OpenClaw,可视化完整安装步骤教程
  • 第1章 Ansible自动化运维基础
  • AI 辅助动效性能剖析:自动检测卡顿帧与合成层问题
  • 终极免费解锁:Wand-Enhancer让你完整体验Wand专业版所有功能

日新闻

  • AI推荐结果怎么优化:适合深圳少儿素质培训机构的GEO服务商哪家好?全程零代码SAAS操作
  • RAG 实战教学完全指南
  • 企业级API网关架构深度解析:IBM Microgateway的技术实现与选型指南

周新闻

  • IX9104 PCIe5.0 高速交换芯片@ACP#完整规格 + 应用场景总结
  • Unity游戏集成Coze智能体:实现NPC智能对话与知识库联动
  • SAP EPIC 建行回单查询:从标准类CL_EPIC_EXAMPLE_CN_CCB_GHTD到Z类的5处关键修改

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号