标题:开源视频监控新选择:基于 Ruoyi-Cloud 的 NVR 系统深度体验
摘要:
最近在 Gitee 上发现了一个非常有意思的开源项目——泉视视频监控系统 (ruoyi-qs-nvr)。作为一个基于 Spring Cloud 微服务架构开发的 NVR(网络视频录像机)系统,它不仅继承了若依(RuoYi)强大的后台管理能力,还集成了对 RTSP、RTMP、ONVIF 以及海康、大华 SDK 等多种协议的接入支持。对于需要开发安防监控、视频直播或物联网视频管理平台的开发者来说,这是一个非常值得参考的“开箱即用”脚手架。
项目简介
泉视视频监控系统是一个完全开源的快速开发平台,后端采用 Spring Boot 3、Spring Cloud & Alibaba 微服务架构。它不仅仅是一个简单的视频播放器,而是一个集成了设备管理、流媒体转发、云端录像、电子地图等完整功能的企业级 NVR 解决方案。
- 项目地址:gitee.com/tangwenzhao…
- 核心协议:RTSP / RTMP / ONVIF / HLS / FLV / WebRTC
- 硬件支持:海康 SDK / 海康 ISUP / 大华 SDK
- 开源协议:MIT(个人及企业免费使用)
技术架构与核心组件
该项目采用了目前 Java 领域最主流的微服务技术栈,保证了系统的高并发处理能力和可扩展性。
1. 后端架构
-
基础框架:Spring Boot 3 + Spring Cloud
-
中间件
:
- Nacos:作为注册中心和配置中心。
- Redis:用于权限认证和缓存。
- Sentinel:流量控制,保障系统稳定性。
- Seata:分布式事务处理。
-
流媒体服务:ZLMediaKit。这是一个高性能的流媒体服务器,支持 GB28181、RTSP、RTMP 等多种协议,是本系统视频流转发的核心引擎。
2. 前端架构
- 框架:Vue + TypeScript
- 播放器:集成 EasyPlayer。这是一个精而美的播放器,支持 H.264/H.265 视频播放,支持在 Web 端流畅播放监控视频。
核心功能亮点
相比于市面上其他的开源监控系统,泉视 NVR 具有以下几个显著优势:
1. 极其广泛的设备接入能力
这是该项目最大的亮点。它不仅仅支持标准的 RTSP/RTMP 流,还深度集成了国产主流厂商的 SDK。
- 多协议接入:支持 RTSP、RTMP、FLV、HLS、ONVIF 等标准协议。
- 厂商 SDK 支持:原生支持海康威视 SDK、海康 ISUP(国标级联)、大华 SDK。这意味着你可以直接管理海康和大华的硬盘录像机(DVR/NVR)或摄像头,而不仅仅是拉流。
2. 完善的微服务模块设计
项目结构清晰,模块化程度高,非常适合作为学习 Spring Cloud 的案例:
- 网关模块 (
ruoyi-gateway):统一入口。 - 业务模块:包括系统管理 (
ruoyi-system)、代码生成、定时任务等。 - 视频专项模块:独立的
ruoyi-zlm(流媒体服务)、ruoyi-onvif、ruoyi-haikang等模块,职责分明。
3. 强大的可视化功能
- 电子地图 (GIS):集成了天地图,支持设备精准落图。你可以直观地在地图上看到摄像头的位置,并直接点击播放。
- 分屏监控:支持 1/4/6/9 分屏预览,满足多画面监控需求。
- 云端录像与回放:支持云端录像存储、播放和下载,解决了本地存储的局限性。
系统模块结构
为了方便大家理解,我整理了该项目的模块结构表:
| 模块名称 | 端口 | 功能描述 |
|---|---|---|
| ruoyi-qs-nvr-ui | 80 | 前端框架 (Vue) |
| ruoyi-gateway | 8080 | Spring Cloud Gateway 网关 |
| ruoyi-system | 9201 | 系统管理模块 (用户/角色/菜单) |
| ruoyi-zlm | 8090 | ZLMediaKit 流媒体服务接口 |
| ruoyi-haikang | 9204 | 海康 SDK 服务 |
| ruoyi-dahua | 9207 | 大华 SDK 服务 |
| ruoyi-onvif | 9208 | ONVIF 协议服务 |
快速启动指南
如果你想要本地部署体验,项目依赖主要包含以下几个部分:
-
基础环境:JDK 17+、Maven、Node.js。
-
中间件:Nacos、Redis、PostgreSQL/MySQL(根据 SQL 脚本调整)。
-
流媒体服务器:ZLMediaKit (必须)。你需要先编译或下载 ZLMediaKit 并运行,因为视频流的拉取和转发都依赖它。
-
代码拉取
git clone https://gitee.com/tangwenzhaoaini/ruoyi-qs-nvr.git -
启动顺序:先启动 Nacos -> 启动 Redis -> 启动各个微服务模块 (IDEA/Eclipse 导入) -> 启动前端。
适用场景与总结
泉视 NVR 非常适合以下场景:
- 企业级安防平台开发:需要接入多种品牌摄像头(海康、大华)的场景。
- 智慧城市/园区管理:需要结合电子地图展示视频监控的场景。
- Java 微服务学习:想要学习 Spring Cloud Alibaba 实战的开发者。
总结: 该项目代码结构规范,功能丰富,且使用了 MIT 协议,商业友好度极高。虽然项目目前还在持续迭代中(如计划支持 GB28181 国标协议),但对于开发者来说,它已经是一个非常优秀的视频监控系统底座。
如果你正在寻找一个能替代商业 NVR 软件的开源方案,或者想学习如何在微服务架构下处理视频流,这个项目绝对值得一试!
参考资料
- 项目主页:gitee.com/tangwenzhao…
- ZLMediaKit 官方文档
- RuoYi-Cloud 官方文档