Files
monibuca/plugin/onvif/README.md
2025-01-15 15:09:39 +08:00

175 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ONVIF Plugin for Monibuca v5
ONVIF 插件用于发现和管理 ONVIF 设备,支持自动发现、添加和拉流等功能。
## 配置说明
```yaml
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 设备
- 参数:
```json
{
"ip": "192.168.1.100",
"port": "80",
"user": "admin",
"passwd": "admin",
"path": "",
"channel": 0
}
```
#### 1.3 移除设备
- 路径:`/onvif/remove`
- 方法POST
- 描述:移除已添加的设备
- 参数:
```json
{
"ip": "192.168.1.100"
}
```
#### 1.4 设备发现
- 路径:`/onvif/discovery`
- 方法GET
- 描述:手动触发设备发现
### 2. PTZ 控制
#### 2.1 云台移动
- 路径:`/onvif/ptz/move`
- 方法POST
- 描述:控制设备云台移动
- 参数:
```json
{
"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
- 描述:获取设备预置点列表
- 参数:
```json
{
"ip": "192.168.1.100"
}
```
#### 2.3 设置预置点
- 路径:`/onvif/ptz/preset/set`
- 方法POST
- 描述:设置预置点
- 参数:
```json
{
"ip": "192.168.1.100",
"preset_token": "1",
"preset_name": "position1"
}
```
#### 2.4 调用预置点
- 路径:`/onvif/ptz/preset/goto`
- 方法POST
- 描述:移动到预置点位置
- 参数:
```json
{
"ip": "192.168.1.100",
"preset_token": "1"
}
```
### 3. 图像设置
#### 3.1 获取图像参数
- 路径:`/onvif/imaging/get`
- 方法POST
- 描述:获取设备图像参数
- 参数:
```json
{
"ip": "192.168.1.100"
}
```
#### 3.2 设置图像参数
- 路径:`/onvif/imaging/set`
- 方法POST
- 描述:设置设备图像参数
- 参数:
```json
{
"ip": "192.168.1.100",
"brightness": 50.0,
"color_saturation": 50.0,
"contrast": 50.0,
"sharpness": 50.0,
"force": false
}
```
## 功能特性
1. 自动发现 ONVIF 设备
2. 支持手动添加设备
3. 自动获取设备视频流地址
4. 支持多通道选择
5. 支持自动拉流
6. 支持设备认证管理
7. PTZ 云台控制
- 绝对移动
- 相对移动
- 连续移动
- 预置点管理
8. 图像参数设置
- 亮度
- 对比度
- 饱和度
- 锐度
## 依赖要求
- Monibuca v5.0.0 或更高版本
- Go 1.18 或更高版本
## 安装方法
该插件已经包含在 Monibuca v5 的主仓库中,无需单独安装。只需在配置文件中启用该插件即可使用。
## VIRTUAL_IFACE 说明
VIRTUAL_IFACE 在 plugin-onvifpro 插件中被用作一个特殊的接口名称,主要用于以下目的:
虚拟接口标识: 它作为一个常量字符串,用于标识一种特殊的设备管理模式,可能用于手动添加或配置的设备,而不是通过网络接口自动发现的设备。
流路径解析: 在解析流路径时VIRTUAL_IFACE 被用作接口名称,以便正确提取设备地址。
设备列表组织: 设备列表使用 VIRTUAL_IFACE 作为 key 来组织设备,方便管理。