c42sly/frigate-ptz-autotracking-bridge
GitHub: c42sly/frigate-ptz-autotracking-bridge
一个轻量级 ONVIF 代理桥接工具,将标准 ONVIF PTZ 命令转换为廉价摄像头的 HTTP/CGI 控制调用,使 Frigate 的自动物体跟踪功能能在不支持标准协议的廉价或老旧 IP 摄像头上运行。
Stars: 0 | Forks: 0
# Frigate ONVIF 桥接
一个轻量级中间件代理,可将标准 ONVIF PTZ 命令转换为专有的 HTTP/CGI API 调用,从而为廉价、老旧或不受支持的 IP 摄像头解锁 Frigate 自动跟踪功能。
## 核心功能
* **🎯 解锁 Frigate 自动跟踪:** 完全支持 Frigate 的 `RelativeMove` 计算,使 AI 能够使用技术上不支持该功能的摄像头进行目标跟踪。
* **🧠 虚拟软件编码器:** 使用航位推算运动学在虚拟空间中跟踪摄像头位置,满足 Frigate 对严格坐标反馈的需求。
* **📐 向量分解:** 将对角线跟踪向量平滑地转换为连续的平移/倾斜电机脉冲,绕过单轴硬件限制。
* **🔌 端口复用:** 使用自定义专用端口同时为多个摄像头托管独立的、隔离的 ONVIF 引擎。
* **🐳 Docker 原生:** 构建为轻量级容器运行,可无缝集成到您现有的家庭实验室网络堆栈中。
## 底层原理:工作机制
标准 ONVIF 硬件期望精确的坐标系或连续运动命令。然而,许多廉价 PTZ 摄像头依赖于简单的、未经身份验证的 HTTP/CGI 端点,这些端点仅理解基本命令结构:"开始向左移动"或"停止移动"。
为了弥合这一差距并允许 Frigate 精确驱动这些摄像头,该代理采用了**逆向工程脉冲引擎**。
### 1. 逆向工程摄像头控制
本脚本中使用的 HTTP 端点是通过使用浏览器访问摄像头的原生 Web 界面,打开**开发者工具(F12)-> 网络选项卡**,然后单击手动控制箭头而发现的。
网络流量显示摄像头响应发送到特定 URL 的查询参数:
`http:///form/setPTZCfg?command=&panSpeed=&tiltSpeed=`
通过测试,确定了命令的特定数字映射:
* `0`:停止
* `1`:上
* `2`:下
* `3`:左
* `4`:右
### 2. 关键的"脉冲与停止"机制
Frigate 的自动跟踪引擎发送精确的*相对移动*命令(例如,"精确向右移动 `x=0.25`")。由于廉价硬件无法解释"向右移动 25%",桥接将此空间向量转换为时间脉冲:
1. **计算脉冲持续时间:** 脚本解释向量大小并将其缩放为精确的时间窗口(例如,0.15 秒)。
2. **触发移动命令:** 脚本访问摄像头的 HTTP 端点以启动移动(例如,`command=3` 表示向左)。
3. **精确休眠:** Python 引擎暂停执行计算出的时间窗口的精确持续时间。
4. **触发紧急停止:** 脚本立即触发后续命令(`command=0` 表示停止)。
### 3. 处理不同的硬件变体
并非所有廉价摄像头都使用上述确切的 CGI 路径或命令整数。例如:
* 某些品牌通过 WebSocket 使用 JSON 有效载荷而不是 URL 参数。
* 某些摄像头反转 Y 轴命令或需要不同的速度参数(例如,1-100 的比例而不是 1-10)。
## 🛠️ 项目状态:概念验证
这个项目最初是出于解决特定问题的需要而产生的原始想法。它**不是一个完善的商业级产品**,而是一个功能性的**概念验证(PoC)**。
虽然它在我特定的网络设置上成功驱动了自动跟踪,但代码库还不够完善。它是为了证明一个理论而构建的,有无数种方法可以对其进行优化、重构或扩展以支持更广泛的硬件。
### 🤝 欢迎贡献和想法!
如果你认为这是一个很酷的概念、发现了错误,或者想让代码更美观,请随时加入!我们明确邀请你:
* **Fork 存储库**并将其适配到你自己的特殊硬件上。
* **提交 Issue** 以讨论新功能或协议发现。
* **提交 Pull Request** 以改进性能或优化逻辑。
让我们一起让廉价硬件实现酷炫的功能。
为了适应这一点,代码库隔离了硬件执行循环。如果你的摄像头使用不同的 API,你可以在 `_send_http_cmd` 函数中替换端点 URL 和命令 ID,以匹配你特定硬件的 API 结构。
标签:AI detection, AI检测, AI追踪, developer tools, devops, Docker, Docker容器, embedded systems, Frigate, Frigate autotracking, Home Assistant, home lab, HTTP API, HTTP/CGI, IoT, IoT devices, legacy设备, network security, network traffic analysis, NVR, ONVIF, ONVIF代理, PTZ控制, PTZ控制协议, Python, reverse engineering, RTSP, Smart Home, SOC Prime, video surveillance, Waymore结果处理, 不支持ONVIF的摄像头, 中间件, 代理, 低延迟响应, 低成本摄像头, 协议转换, 单轴限制, 反向工程, 多引擎聚合, 多端口复用, 安全摄像头, 安全防御评估, 安防, 安防监控, 家庭实验室, 开发工具, 攻击面发现, 无后门, 无文件攻击, 旧款摄像头, 智能家居, 物联网, 监控系统, 目标跟踪, 网络摄像头, 视频流, 计算机视觉, 设备集成, 请求拦截, 边缘计算, 逆向工具, 预算摄像头