mirror of
https://github.com/langhuihui/monibuca.git
synced 2025-12-24 13:48:04 +08:00
- Refactor frame converter implementation - Update mp4 track to use ICodex - General refactoring and code improvements 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
ONVIF Plugin for Monibuca v5
ONVIF 插件用于发现和管理 ONVIF 设备,支持自动发现、添加和拉流等功能。
配置说明
onvif:
discoverInterval: 30 # 设备发现间隔(秒)
autoPull: true # 是否自动拉流
autoAdd: true # 是否自动添加发现的设备
interfaces: # 网卡配置
- interfaceName: eth0
username: admin
password: admin
devices: # 设备配置
- ip: 192.168.1.100
username: admin
password: admin
API 接口
1. 设备管理
1.1 设备列表
- 路径:
/onvif/list - 方法:GET
- 描述:获取所有已发现和添加的设备列表
1.2 添加设备
- 路径:
/onvif/add - 方法:POST
- 描述:手动添加 ONVIF 设备
- 参数:
{ "ip": "192.168.1.100", "port": "80", "user": "admin", "passwd": "admin", "path": "", "channel": 0 }
1.3 移除设备
- 路径:
/onvif/remove - 方法:POST
- 描述:移除已添加的设备
- 参数:
{ "ip": "192.168.1.100" }
1.4 设备发现
- 路径:
/onvif/discovery - 方法:GET
- 描述:手动触发设备发现
2. PTZ 控制
2.1 云台移动
- 路径:
/onvif/ptz/move - 方法:POST
- 描述:控制设备云台移动
- 参数:
{ "ip": "192.168.1.100", "mode": 0, // 0:绝对移动 1:相对移动 2:连续移动 "pan": 0.0, // 水平移动 -1.0 到 1.0 "tilt": 0.0, // 垂直移动 -1.0 到 1.0 "zoom": 0.0, // 缩放 -1.0 到 1.0 "speed": 1.0 // 移动速度 0.0 到 1.0 }
2.2 获取预置点
- 路径:
/onvif/ptz/preset/get - 方法:POST
- 描述:获取设备预置点列表
- 参数:
{ "ip": "192.168.1.100" }
2.3 设置预置点
- 路径:
/onvif/ptz/preset/set - 方法:POST
- 描述:设置预置点
- 参数:
{ "ip": "192.168.1.100", "preset_token": "1", "preset_name": "position1" }
2.4 调用预置点
- 路径:
/onvif/ptz/preset/goto - 方法:POST
- 描述:移动到预置点位置
- 参数:
{ "ip": "192.168.1.100", "preset_token": "1" }
3. 图像设置
3.1 获取图像参数
- 路径:
/onvif/imaging/get - 方法:POST
- 描述:获取设备图像参数
- 参数:
{ "ip": "192.168.1.100" }
3.2 设置图像参数
- 路径:
/onvif/imaging/set - 方法:POST
- 描述:设置设备图像参数
- 参数:
{ "ip": "192.168.1.100", "brightness": 50.0, "color_saturation": 50.0, "contrast": 50.0, "sharpness": 50.0, "force": false }
功能特性
- 自动发现 ONVIF 设备
- 支持手动添加设备
- 自动获取设备视频流地址
- 支持多通道选择
- 支持自动拉流
- 支持设备认证管理
- PTZ 云台控制
- 绝对移动
- 相对移动
- 连续移动
- 预置点管理
- 图像参数设置
- 亮度
- 对比度
- 饱和度
- 锐度
依赖要求
- Monibuca v5.0.0 或更高版本
- Go 1.18 或更高版本
安装方法
该插件已经包含在 Monibuca v5 的主仓库中,无需单独安装。只需在配置文件中启用该插件即可使用。
VIRTUAL_IFACE 说明
VIRTUAL_IFACE 在 plugin-onvifpro 插件中被用作一个特殊的接口名称,主要用于以下目的: 虚拟接口标识: 它作为一个常量字符串,用于标识一种特殊的设备管理模式,可能用于手动添加或配置的设备,而不是通过网络接口自动发现的设备。 流路径解析: 在解析流路径时,VIRTUAL_IFACE 被用作接口名称,以便正确提取设备地址。 设备列表组织: 设备列表使用 VIRTUAL_IFACE 作为 key 来组织设备,方便管理。