serverRoom/device-agent/Models/StreamQualityProfile.cs
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

61 lines
1.3 KiB
C#

namespace DeviceAgent.Models;
/// <summary>
/// 流质量档位
/// </summary>
public enum StreamQualityLevel
{
/// <summary>
/// 低质量 - 用于监控墙总览
/// </summary>
Low,
/// <summary>
/// 高质量 - 用于单机放大查看
/// </summary>
High
}
/// <summary>
/// 流质量配置
/// </summary>
public class StreamQualityProfile
{
public StreamQualityLevel Level { get; set; }
public int Width { get; set; }
public int Height { get; set; }
public int Fps { get; set; }
public int Bitrate { get; set; }
/// <summary>
/// 低质量档位 - 监控墙模式
/// 320x180, 3fps, 100kbps
/// </summary>
public static StreamQualityProfile Low => new()
{
Level = StreamQualityLevel.Low,
Width = 320,
Height = 180,
Fps = 3,
Bitrate = 100_000 // 100 kbps
};
/// <summary>
/// 高质量档位 - 单机放大模式
/// 1280x720, 15fps, 1Mbps
/// </summary>
public static StreamQualityProfile High => new()
{
Level = StreamQualityLevel.High,
Width = 1280,
Height = 720,
Fps = 15,
Bitrate = 1_000_000 // 1 Mbps
};
public override string ToString()
{
return $"{Level}: {Width}x{Height} @ {Fps}fps, {Bitrate / 1000}kbps";
}
}