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

175 lines
3.8 KiB
Markdown

# 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 来组织设备,方便管理。