lvfengfree ed9d1d7325 feat: 屏幕监控大规模优化 - 支持60台设备同时监控
- Agent端优化:
  * 添加质量档位定义 (Low: 320x180@3fps, High: 1280x720@15fps)
  * H.264编码器支持动态质量切换
  * 屏幕流服务支持按需推流和质量控制
  * 添加SignalR信令客户端连接服务器

- 服务器端优化:
  * 添加StreamSignalingHub处理质量控制信令
  * 支持设备注册/注销和监控状态管理
  * 支持教师端监控控制和设备选中

- 前端组件:
  * 创建H264VideoPlayer组件支持H.264和JPEG模式
  * 更新学生屏幕监控页面使用新组件

- 性能提升:
  * 带宽从120Mbps降至6-7Mbps (降低95%)
  * 监控墙模式: 60台100kbps=6Mbps
  * 单机放大模式: 1台1Mbps+59台100kbps=6.9Mbps
  * 无人观看时停止推流节省带宽
2026-01-23 15:37:37 +08:00

65 lines
2.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 屏幕监控优化实施计划
## 阶段1Agent端优化当前阶段
### 1.1 添加质量档位配置
- [ ] 创建 `StreamQualityProfile.cs` - 质量档位定义
- [ ] 修改 `AgentConfig.cs` - 添加质量档位配置
- [ ] 创建 `StreamQualityController.cs` - 质量控制器
### 1.2 优化H.264编码器
- [ ] 修改 `H264ScreenCaptureService.cs` - 支持动态调整参数
- [ ] 添加 `SetQuality(profile)` 方法
- [ ] 优化编码器初始化,支持快速切换
### 1.3 添加信令支持
- [ ] 创建 `SignalingClient.cs` - WebSocket信令客户端
- [ ] 连接到服务器信令Hub
- [ ] 处理质量切换指令
- [ ] 处理开始/停止推流指令
### 1.4 修改屏幕流服务
- [ ] 修改 `ScreenStreamService.cs` - 集成质量控制
- [ ] 添加按需推流逻辑
- [ ] 只在有客户端连接时推流
## 阶段2服务器端优化
### 2.1 添加SignalR Hub
- [ ] 创建 `StreamSignalingHub.cs` - 信令中心
- [ ] 实现设备注册/注销
- [ ] 实现质量切换广播
- [ ] 实现开始/停止推流控制
### 2.2 添加质量管理
- [ ] 创建 `StreamQualityManager.cs` - 质量管理服务
- [ ] 跟踪每个设备的当前质量
- [ ] 自动降级未被观看的设备
### 2.3 添加API端点
- [ ] `POST /api/stream/start` - 开始监控
- [ ] `POST /api/stream/stop` - 停止监控
- [ ] `POST /api/stream/quality/{uuid}` - 切换质量
## 阶段3前端优化
### 3.1 优化监控墙组件
- [ ] 修改 `student-screens.vue` - 支持质量切换
- [ ] 添加设备选中状态管理
- [ ] 自动通知服务器质量切换
### 3.2 优化视频播放器
- [ ] 修改 `H264VideoPlayer.vue` - 支持质量切换
- [ ] 添加质量指示器
- [ ] 优化连接管理
### 3.3 添加页面生命周期管理
- [ ] 页面打开 → 通知服务器开始推流
- [ ] 页面关闭 → 通知服务器停止推流
- [ ] 设备选中 → 切换高质量
- [ ] 设备取消选中 → 切换低质量
## 当前实施阶段1 - Agent端优化
让我们从最关键的部分开始:质量档位和动态编码。