开源视频监控新选择:基于 Ruoyi-Cloud 的 NVR 系统深度体验

0 阅读5分钟

标题:开源视频监控新选择:基于 Ruoyi-Cloud 的 NVR 系统深度体验

摘要:

​ 最近在 Gitee 上发现了一个非常有意思的开源项目——泉视视频监控系统 (ruoyi-qs-nvr)。作为一个基于 Spring Cloud 微服务架构开发的 NVR(网络视频录像机)系统,它不仅继承了若依(RuoYi)强大的后台管理能力,还集成了对 RTSP、RTMP、ONVIF 以及海康、大华 SDK 等多种协议的接入支持。对于需要开发安防监控、视频直播或物联网视频管理平台的开发者来说,这是一个非常值得参考的“开箱即用”脚手架。

项目简介

泉视视频监控系统是一个完全开源的快速开发平台,后端采用 Spring Boot 3Spring 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-onvifruoyi-haikang 等模块,职责分明。

3. 强大的可视化功能

  • 电子地图 (GIS):集成了天地图,支持设备精准落图。你可以直观地在地图上看到摄像头的位置,并直接点击播放。
  • 分屏监控:支持 1/4/6/9 分屏预览,满足多画面监控需求。
  • 云端录像与回放:支持云端录像存储、播放和下载,解决了本地存储的局限性。

系统模块结构

为了方便大家理解,我整理了该项目的模块结构表:

模块名称端口功能描述
ruoyi-qs-nvr-ui80前端框架 (Vue)
ruoyi-gateway8080Spring Cloud Gateway 网关
ruoyi-system9201系统管理模块 (用户/角色/菜单)
ruoyi-zlm8090ZLMediaKit 流媒体服务接口
ruoyi-haikang9204海康 SDK 服务
ruoyi-dahua9207大华 SDK 服务
ruoyi-onvif9208ONVIF 协议服务

快速启动指南

如果你想要本地部署体验,项目依赖主要包含以下几个部分:

  1. 基础环境:JDK 17+、Maven、Node.js。

  2. 中间件:Nacos、Redis、PostgreSQL/MySQL(根据 SQL 脚本调整)。

  3. 流媒体服务器ZLMediaKit (必须)。你需要先编译或下载 ZLMediaKit 并运行,因为视频流的拉取和转发都依赖它。

  4. 代码拉取

    git clone https://gitee.com/tangwenzhaoaini/ruoyi-qs-nvr.git
    
  5. 启动顺序:先启动 Nacos -> 启动 Redis -> 启动各个微服务模块 (IDEA/Eclipse 导入) -> 启动前端。

适用场景与总结

泉视 NVR 非常适合以下场景:

  1. 企业级安防平台开发:需要接入多种品牌摄像头(海康、大华)的场景。
  2. 智慧城市/园区管理:需要结合电子地图展示视频监控的场景。
  3. Java 微服务学习:想要学习 Spring Cloud Alibaba 实战的开发者。

总结: 该项目代码结构规范,功能丰富,且使用了 MIT 协议,商业友好度极高。虽然项目目前还在持续迭代中(如计划支持 GB28181 国标协议),但对于开发者来说,它已经是一个非常优秀的视频监控系统底座。

如果你正在寻找一个能替代商业 NVR 软件的开源方案,或者想学习如何在微服务架构下处理视频流,这个项目绝对值得一试!

参考资料