Files
SecMPS/doc/整合方案/Vol.Pro_整合项目_实施方案_v1.0.md
2026-05-15 23:22:48 +08:00

12 KiB
Raw Blame History

Vol.Pro 整合项目实施方案

版本: v1.0 日期: 2026-04-29 编制: 浮浮酱 状态: 待实施


一、项目概述

本项目包含两个子方案:

  1. 视频监控方案: Vol.Pro + Owl + ZLMediaKit浏览器实时监控、回放、云台控制
  2. 采集网关方案: Vol.Pro + MC4.0(设备管理、实时数据、反向控制、告警)

两个方案共用 Base_Device 统一设备主表,实现所有设备的集中管理和三维地图标记。


二、实施前提条件

2.1 环境准备(实施前必须完成)

# 检查项 通过标准
1 Owl + ZLMediaKit 部署 Docker运行正常Web管理端可访问
2 MC4.0 采集网关接入 设备已接入MC4.0API可调用
3 Vol.Pro 开发环境 api_sqlsugar/web.vite/warehouse 均可编译运行
4 数据库权限 可执行建表SQL代码生成器可用
5 三维地图模型 VgoMap中已为设备位置放置模型并记录MapModelId

2.2 必须确认的技术点实施Day 1前完成

# 确认项 确认方式 影响
1 Owl API完整路径 访问Owl Swagger文档 所有Owl对接接口
2 ZLM播放地址格式 调用Owl play接口查看返回URL 前端播放器配置
3 MC4.0 Token机制 实测登录接口确认Header和有效期 MC4.0所有接口
4 MC4.0接口频率限制 高频调用测试是否限流 轮询任务设计

三、实施策略

3.1 分阶段实施

Phase 1: 视频监控方案15个工作日
    ├─ 优先实施,技术成熟度更高
    ├─ 不依赖MC4.0方案
    └─ 验证Vol.Pro扩展机制的可行性

Phase 2: 采集网关方案16个工作日
    ├─ 在视频监控方案完成后实施
    ├─ 可复用Phase 1积累的Vol.Pro扩展经验
    └─ 共用Base_Device主表Phase 1已创建

3.2 实施顺序

顺序 方案 工期 前置依赖
1 视频监控方案 15天
2 采集网关方案 16天 视频监控方案完成复用Base_Device表
合计 31天

可并行优化:如果人手充足,采集网关方案可在视频监控方案的阶段四/五时并行启动,总工期可缩短至 20-22天


四、视频监控方案实施计划15天

Week 1: 基础搭建Day 1-5

Day 1: 数据库与代码生成

  • 执行建表SQL创建4张表Base_DeviceDevice_Video_ExtVideo_ChannelVideo_Record
  • 使用Vol.Pro代码生成器生成4个模块的CRUD代码
  • 验证生成后的增删改查功能正常
  • 验收点: 管理端可正常增删改查设备/通道/录像

Day 2: Owl对接服务搭建

  • 创建 Warehouse/Services/Owl/IOwlApiService.cs
  • 创建 Warehouse/Services/Owl/OwlApiService.cs
  • 实现JWT Token获取与缓存内存/Redis
  • 验收点: 可成功获取Owl Token并缓存

Day 3: Owl设备同步

  • 实现设备同步逻辑调用Owl /devices
  • 实现通道同步逻辑调用Owl /channels
  • 实现数据写入Base_Device + Device_Video_Ext + Video_Channel
  • 验收点: 执行同步后Vol.Pro数据库中有Owl设备数据

Day 4: 取流与回放接口

  • 实现 GetLiveUrl 接口调用Owl play
  • 实现 GetPlaybackUrl 接口调用Owl recordings
  • 实现 StopPlay 接口
  • 验收点: Postman可调用获取流地址

Day 5: 云台与快照接口

  • 实现 PtzControl 接口
  • 实现 GetSnapshot 接口
  • 创建 VideoStreamController.cs
  • 验收点: Postman可调用云台控制和获取快照

Week 2: 前端与管理端Day 6-10

Day 6: 管理端设备列表扩展

  • 创建 extension/warehouse/Base_Device.jsx
  • 添加"同步设备"按钮
  • 添加DeviceCategory=1筛选默认显示视频监控设备
  • 添加"查看通道"操作列
  • 验收点: 管理端设备列表有同步按钮和通道查看

Day 7: 管理端通道列表扩展

  • 创建 extension/warehouse/Video_Channel.jsx
  • 添加"实时预览"按钮(弹窗播放)
  • 添加"云台控制"按钮
  • 添加"回放"按钮
  • 验收点: 管理端通道列表可播放视频

Day 8: 播放器集成

  • 引入Jessibuca/mpegts.js播放器组件
  • 创建 VideoPlayer.vue(实时播放弹窗)
  • 创建 VideoPlayback.vue(回放查询页面)
  • 验收点: 浏览器可播放实时视频和回放

Day 9: warehouse用户端改造 - Live.vue

  • 替换硬编码数据为真实API调用
  • 集成Jessibuca播放器
  • 摄像头列表从Video_Channel API获取
  • 验收点: warehouse Live.vue可播放实时视频

Day 10: warehouse用户端改造 - History.vue + VideoWall.vue

  • 改造History.vue实现回放查询和HLS播放
  • 改造VideoWall.vue图片→真实播放器
  • 对接云台控制API
  • 验收点: 回放和视频墙功能正常

Week 3: 联调与优化Day 11-15

Day 11-12: 联调测试

  • 设备注册到Owl后同步到Vol.Pro
  • 实时播放测试WebRTC/FLV
  • 回放功能测试
  • 云台控制测试
  • 多路视频墙测试
  • 验收点: 所有功能端到端可用

Day 13: 框架升级测试

  • 重新运行代码生成器
  • 验证所有自定义代码Partial/extension未被覆盖
  • 验收点: 代码生成器不覆盖自定义代码

Day 14-15: 缓冲优化

  • 性能优化(视频墙路数限制、流释放)
  • 安全加固(播放地址代理、权限校验)
  • 文档补充

五、采集网关方案实施计划16天

Week 1: 基础搭建Day 1-5

Day 1: 数据库与代码生成

  • 执行建表SQLDevice_IoT_ExtIoT_DevicePointIoT_DeviceDataIoT_Alarm
  • 使用Vol.Pro代码生成器生成CRUD代码
  • 注意: Base_Device表已在视频监控方案中创建无需重复创建
  • 验收点: 管理端可正常增删改查

Day 2: MC4.0对接服务搭建

  • 创建 IMc4ApiService.cs / Mc4ApiService.cs
  • 实现Token管理登录/缓存/刷新)
  • 实现请求频率控制SemaphoreSlim每秒最多2次
  • 验收点: 可成功获取MC4.0 Token

Day 3: 对象树与点表同步

  • 实现对象树同步(/object/tree
  • 实现点表同步(/device/point/get
  • 数据写入Base_Device + Device_IoT_Ext + IoT_DevicePoint
  • 验收点: 执行同步后Vol.Pro中有MC4.0设备数据

Day 4: 实时数据与控制接口

  • 实现 GetRealtime 接口调用MC4.0读数据)
  • 实现 Control 接口(反向控制)
  • 验收点: Postman可读取实时数据和控制设备

Day 5: 告警接口

  • 实现 GetAlarms 接口
  • 实现 ConfirmAlarm / EndAlarm 接口
  • 创建 IoTStreamController.cs
  • 验收点: Postman可查询和确认告警

Week 2: 实时推送与管理端Day 6-10

Day 6: SignalR Hub搭建

  • 创建 IoTDataHub.cs
  • 实现设备分组订阅SubscribeDevice/UnsubscribeDevice
  • 实现告警管理员组订阅SubscribeAlarmAdmin
  • 验收点: 前端可连接SignalR并订阅设备

Day 7: 实时数据轮询Job

  • 创建 RealtimeDataPollJob.cs
  • 每5秒轮询MC4.0实时数据
  • 不入库直接SignalR推送给前端
  • 验收点: 前端实时收到数据更新

Day 8: 告警轮询Job

  • 创建 AlarmPollJob.cs
  • 每10秒轮询MC4.0告警
  • 新告警写入IoT_Alarm表
  • 按设备分组SignalR推送
  • 验收点: 新告警实时推送到前端

Day 9: 管理端设备列表扩展

  • 扩展 Base_Device.jsx(添加采集设备相关按钮)
  • 添加"同步对象树"按钮仅DeviceCategory=2显示
  • 添加"同步点表"操作列
  • 添加"查看实时数据"按钮
  • 验收点: 管理端可同步和查看采集设备

Day 10: 管理端告警列表扩展

  • 扩展告警列表页
  • 添加"确认"和"结束"操作按钮
  • 告警等级颜色标识(紧急=红色,重要=橙色)
  • 验收点: 管理端可处理告警

Week 3: warehouse用户端与联调Day 11-16

Day 11-12: warehouse用户端开发

  • 开发实时数据看板(设备列表+实时数值+SignalR接收
  • 开发设备控制面板(开关/滑块/输入框)
  • 开发告警信息面板(实时告警+历史查询)
  • 验收点: warehouse可查看实时数据和控制设备

Day 13-14: 联调测试

  • MC4.0设备接入测试
  • 实时数据读取测试验证SignalR推送不入库
  • 反向控制测试
  • 告警轮询与推送测试10秒轮询+分组推送)
  • 请求频率控制测试每秒不超过2次
  • 多设备并发测试
  • 验收点: 所有功能端到端可用

Day 15: 框架升级测试

  • 重新运行代码生成器
  • 验证自定义代码未被覆盖
  • 验收点: 代码独立性验证通过

Day 16: 缓冲优化

  • 性能优化
  • 文档补充
  • 问题修复

六、关键里程碑与验收标准

里程碑 时间 验收标准
M1: 视频监控后端完成 Day 5 Owl对接服务所有接口Postman测试通过
M2: 视频监控前端完成 Day 10 warehouse Live/History/VideoWall功能可用
M3: 视频监控联调完成 Day 15 所有功能端到端可用,框架升级测试通过
M4: 采集网关后端完成 Day 5 MC4.0对接服务所有接口Postman测试通过
M5: 采集网关前端完成 Day 12 warehouse实时数据/控制/告警功能可用
M6: 采集网关联调完成 Day 16 所有功能端到端可用,框架升级测试通过

七、风险控制

风险 影响 应对措施
Owl API路径不准确 所有取流/云台接口404 Day 1实测Swagger确认路径
MC4.0 Token快速过期 频繁重新登录 Day 1实测Token有效期设计自动刷新
ZLM WebRTC配置失败 无法使用WebRTC 默认使用WS-FLVWebRTC作为可选优化
MC4.0接口限流 轮询任务失败 SemaphoreSlim频率控制失败时告警
数据量爆炸 SQL Server性能下降 实时数据不入库仅SignalR推送
前端播放器兼容性 部分浏览器无法播放 提供FLV/HLS多协议降级

八、实施检查清单

每日检查项

  • 今日代码是否写在独立文件(不修改框架代码)
  • 新服务是否实现IDependency接口
  • Controller是否使用partial或全新文件
  • 前端扩展是否写在extension目录

阶段验收检查项

  • 重新运行代码生成器,确认自定义代码未被覆盖
  • 所有API接口Postman测试通过
  • 前端功能在Chrome/Firefox/Edge测试通过
  • 性能测试视频墙最大路数、MC4.0轮询频率)

九、相关文档索引

文档 路径 说明
视频监控整合方案 doc/整合方案/Vol.Pro_Owl_ZLMediaKit_整合方案_v1.0.md 详细技术方案
采集网关整合方案 doc/整合方案/Vol.Pro_MC4.0_整合方案_v1.0.md 详细技术方案
MC4.0 API文档 doc/对接文档/MC4.0对外API.md MC4.0接口定义
联网部署手册 owl_zlmediakit/联网部署手册.md Owl+ZLM部署指南
超时排查手册 owl_zlmediakit/排查手册-访问超时.md 网络问题排查

文档结束 版本: v1.0 最后更新: 2026-04-29 状态: 待主人确认后实施