# OnvifCameraManager **Repository Path**: try88/onvif-camera-manager ## Basic Information - **Project Name**: OnvifCameraManager - **Description**: No description available - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-02 - **Last Updated**: 2026-07-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ONVIF Camera Manager ONVIF 兼容 IP 摄像机的跨平台桌面管理工具。支持设备发现、在线监控、RTSP 视频预览、PTZ 控制、聚焦/光圈调节和录像/截图。 #### 软件架构 - **Python 3.10+** + **PySide6 (Qt 6)** + **OpenCV** - 纯 SOAP/HTTP 协议,无需外部 ONVIF SDK - ONVIF 操作通过 WS-Security + Digest 认证 - 聚焦/光圈通过 HTTP CGI 控制 模块化分层: ``` UI (PySide6) → CameraController → OnvifClient / WebCGIClient ``` #### 功能 - WS-Discovery 多网卡扫描 - 手动添加摄像机(支持连接测试) - 设备信息查看(厂商、型号、序列号、固件、MAC、UUID) - RTSP 实时视频预览(原始分辨率,无帧率限制) - Ctrl+滚轮 缩放显示 / 拖拽平移 / Reset 重置 - 截图保存(JPG/PNG → `records/`) - 录像保存(MP4 → `records/`) - PTZ 云台方向控制 + 变焦 - 聚焦 (Focus Far/Near)、光圈 (Iris Open/Close) - 预置位 (Presets) - 心跳检测(周期性在线状态) - JSON 持久化存储 (`data/cameras.json`) - 多网卡支持 - Tab 页界面(Device Management + Video Preview) #### 安装教程 1. 安装 Python 3.10+ 2. 安装依赖: ```bash pip install -r requirements.txt ``` 3. 运行: ```bash python main.py ``` #### 项目结构 ``` ├── main.py # 入口 ├── requirements.txt # PySide6, requests, opencv-python, numpy ├── data/cameras.json # 设备持久化 ├── logs/ # 日志文件 ├── records/ # 截图和录像输出 ├── app/ │ ├── config.py # 集中配置 │ ├── controllers/ # 高层 API │ ├── models/ # 数据模型 │ ├── repository/ # JSON 读写 │ ├── onvif/ # ONVIF 协议客户端 │ ├── services/ # 业务逻辑 │ ├── workers/ # 后台线程 │ ├── ui/ # Qt 界面 │ └── utils/ # 工具 ``` #### 编码规范 参见 `AGENTS.md`。