16337 4153efaae9 refactor(main): 优化摄像头视频流启动逻辑 - 只启动有ROI配置的摄像头
问题:
- 旧逻辑启动所有数据库中的摄像头视频流(7个)
- 实际只有3个摄像头有ROI配置
- 浪费带宽和计算资源

解决方案:
1. 新增 _get_camera_ids_with_roi() 方法
   - 从ROI配置中提取有配置的摄像头ID集合
   - 返回去重后的摄像头ID set

2. 新增 _get_camera_config_by_id() 方法
   - 根据ID获取摄像头配置对象
   - 提高代码复用性和可维护性

3. 重构 _load_cameras() 方法
   - 只启动有ROI配置的摄像头
   - 添加详细的成功/失败统计
   - 改进日志信息,便于排查问题

4. 重构 _reload_cameras() 方法
   - 配置更新时只添加有ROI且未启动的摄像头
   - 使用集合运算提高性能
   - 统一错误处理逻辑

5. 新增 _cleanup_cameras_without_roi() 方法
   - 清理已启动但没有ROI的摄像头流
   - 当用户删除所有ROI时自动停止视频流
   - 节省系统资源

6. 更新配置回调逻辑
   - 先清理无ROI的摄像头
   - 再添加新增的有ROI的摄像头
   - 保证视频流与ROI配置同步

优势:
- 资源利用率提升:只启动必要的视频流
- 代码模块化:提取公共逻辑,提高复用性
- 可维护性强:清晰的注释和文档字符串
- 日志完善:详细的统计信息便于监控

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 09:18:58 +08:00
2026-02-02 14:49:47 +08:00
Description
边缘推理层
37 MiB
Languages
Python 100%