Files
SecMPS/doc/对接文档/GoWVP接口文档.md

82 KiB
Raw Blame History

title, language_tabs, toc_footers, includes, search, code_clipboard, highlight_theme, headingLevel, generator
title language_tabs toc_footers includes search code_clipboard highlight_theme headingLevel generator
默认模块
shell
Shell
http
HTTP
javascript
JavaScript
ruby
Ruby
python
Python
php
PHP
java
Java
go
Go
true true darkula 2 @tarslib/widdershins v4.0.30

默认模块

统一的设备管理和通道管理接口,支持 GB28181、ONVIF 等多种协议

Base URLs:

Authentication

  • HTTP Authentication, scheme: bearer

控制台

GET 服务器状态

GET /stats

返回示例

200 Response

{"cpu":[{"time":"2024-12-29 16:28:26","use":10.41666666668772},{"time":"2024-12-29 16:28:28","use":2.296450939451207},{"time":"2024-12-29 16:28:29","use":2.7956989247408885},{"time":"2024-12-29 16:28:30","use":1.7838405036729184},{"time":"2024-12-29 16:28:31","use":1.145833333329228},{"time":"2024-12-29 16:28:33","use":0.9443861490000186},{"time":"2024-12-29 16:28:34","use":2.7225130890060782},{"time":"2024-12-29 16:28:35","use":2.7513227513264837},{"time":"2024-12-29 16:28:36","use":5.3684210526338765},{"time":"2024-12-29 16:28:37","use":3.676470588238385},{"time":"2024-12-29 16:28:39","use":1.3584117032388177},{"time":"2024-12-29 16:28:40","use":3.055848261325749},{"time":"2024-12-29 16:28:41","use":4.302203567680006},{"time":"2024-12-29 16:28:42","use":3.343782654122},{"time":"2024-12-29 16:28:43","use":2.492211838007481},{"time":"2024-12-29 16:28:45","use":1.1542497376755163},{"time":"2024-12-29 16:28:46","use":3.0398322851123263},{"time":"2024-12-29 16:28:47","use":1.7726798748656805},{"time":"2024-12-29 16:28:48","use":5.02564102564345},{"time":"2024-12-29 16:28:50","use":7.356076759076739},{"time":"2024-12-29 16:28:51","use":1.3485477178462189}],"disk":[{"name":"/app","total":134681202688,"used":50874556416}],"mem":[{"time":"2024-12-29 16:28:26","use":85.20020682708717},{"time":"2024-12-29 16:28:28","use":85.20020682708717},{"time":"2024-12-29 16:28:29","use":85.1969191132737},{"time":"2024-12-29 16:28:30","use":85.2031956578267},{"time":"2024-12-29 16:28:31","use":85.2031956578267},{"time":"2024-12-29 16:28:33","use":85.2031956578267},{"time":"2024-12-29 16:28:34","use":85.20917331930575},{"time":"2024-12-29 16:28:35","use":85.21535023616744},{"time":"2024-12-29 16:28:36","use":85.47667367049337},{"time":"2024-12-29 16:28:37","use":85.48534127963799},{"time":"2024-12-29 16:28:39","use":85.58736003554715},{"time":"2024-12-29 16:28:40","use":85.6506236195338},{"time":"2024-12-29 16:28:41","use":85.64982659800326},{"time":"2024-12-29 16:28:42","use":85.64922883185537},{"time":"2024-12-29 16:28:43","use":85.64922883185537},{"time":"2024-12-29 16:28:45","use":85.63627723198407},{"time":"2024-12-29 16:28:46","use":85.63627723198407},{"time":"2024-12-29 16:28:47","use":85.64235452115445},{"time":"2024-12-29 16:28:48","use":85.64863106570745},{"time":"2024-12-29 16:28:50","use":85.64743553341164},{"time":"2024-12-29 16:28:51","use":85.65371207796466}],"net":[{"time":"2024-12-29 16:28:26","use":0,"down":3040},{"time":"2024-12-29 16:28:28","use":0,"up":7072,"down":15160},{"time":"2024-12-29 16:28:29","use":0},{"time":"2024-12-29 16:28:30","use":0},{"time":"2024-12-29 16:28:31","use":0},{"time":"2024-12-29 16:28:33","use":0,"up":11680,"down":10424},{"time":"2024-12-29 16:28:34","use":0},{"time":"2024-12-29 16:28:35","use":0,"up":14280,"down":10424},{"time":"2024-12-29 16:28:36","use":0},{"time":"2024-12-29 16:28:37","use":0},{"time":"2024-12-29 16:28:39","use":0},{"time":"2024-12-29 16:28:40","use":0,"up":18720,"down":9896},{"time":"2024-12-29 16:28:41","use":0,"up":20768,"down":10424},{"time":"2024-12-29 16:28:42","use":0},{"time":"2024-12-29 16:28:43","use":0},{"time":"2024-12-29 16:28:45","use":0},{"time":"2024-12-29 16:28:46","use":0,"up":25720,"down":10424},{"time":"2024-12-29 16:28:47","use":0},{"time":"2024-12-29 16:28:48","use":0},{"time":"2024-12-29 16:28:50","use":0}]}

返回结果

状态码 状态码含义 说明 数据模型
200 OK none Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» cpu [object] true none none
»» time string true none none
»» used number true none none
» disk [object] true none none
»» name string false none none
»» total integer false none none
»» used integer false none none
» mem [object] true none none
»» time string true none none
»» used number true none none
» net [object] true none none
»» time string true none none
»» used integer true none none
»» down integer true none none
»» up integer true none none

推流列表

POST 添加推流通道

POST /stream_pushs

Body 请求参数

{
    "name": "123123",
    "app": "live",
    "stream": "123",
    "gbId": "1241231231233",
    "longitude": null,
    "latitude": null
}

请求参数

名称 位置 类型 必选 中文名 说明
body body object none
» name body string 自定义名称 none
» app body string 推流应用 none
» stream body string 流唯一标识 none
» is_auth_enabled body boolean 是否开启推流鉴权 none

返回示例

200 Response

{"id":"rsbpbgr","created_at":"2025-01-19 07:56:26","updated_at":"2025-01-19 07:56:26","name":"测试添加","pushed_at":"1970-01-01 00:00:00","stopped_at":"1970-01-01 00:00:00","app":"liv1","stream":"110","media_server_id":"","server_id":"","status":""}

400 Response

{
  "msg": "string",
  "reason": "string",
  "trace_id": "string"
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK none Inline
400 Bad Request none Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» id string true none none
» created_at string true none none
» updated_at string true none none
» name string true none none
» pushed_at string true none none
» stopped_at string true none none
» app string true none none
» stream string true none none
» media_server_id string true none none
» server_id string true none none
» status string true none none

状态码 400

名称 类型 必选 约束 中文名 说明
» msg string true none none
» reason string true none none
» trace_id string true none none

GET 查询推流通道列表

GET /stream_pushs

请求参数

名称 位置 类型 必选 中文名 说明
page query integer 分页
size query integer 每页数量
key query string 关键字模糊搜索,可输入 idappstream。
status query string 推流状态过滤(pushing,stopped)

返回示例

200 Response

{"items":[{"id":"r7ve90","created_at":"2025-01-18 17:31:41","updated_at":"2025-01-19 01:49:57","name":"123123","pushed_at":"1970-01-01 00:00:00","stopped_at":"1970-01-01 00:00:00","app":"live","stream":"123","media_server_id":"local","server_id":"","status":"PUSHING"},{"id":"aj3psw","created_at":"2025-01-18 17:32:22","updated_at":"2025-01-18 17:32:22","name":"测试添加","pushed_at":"1970-01-01 00:00:00","stopped_at":"1970-01-01 00:00:00","app":"live","stream":"110","media_server_id":"","server_id":"","status":""},{"id":"6v1aeh","created_at":"2025-01-18 18:06:10","updated_at":"2025-01-18 18:06:10","name":"测试添加","pushed_at":"1970-01-01 00:00:00","stopped_at":"1970-01-01 00:00:00","app":"live1","stream":"110","media_server_id":"","server_id":"","status":""}],"total":3}

400 Response

{
  "msg": "string",
  "reason": "string",
  "trace_id": "string"
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK none Inline
400 Bad Request none Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» items [object] true none none
»» id string true none 唯一标识 none
»» created_at string true none 创建时间 none
»» updated_at string true none 更新时间 none
»» name string true none 别名 none
»» pushed_at string true none 推流时间 none
»» stopped_at string true none 停流时间 none
»» app string true none 应用 none
»» stream string true none 流标识 none
»» media_server_id string true none 流媒体服务标识 none
»» server_id string true none none
»» status string true none 状态 PUSHING/STOPPED
» total integer true none 列表总长度 none

状态码 400

名称 类型 必选 约束 中文名 说明
» msg string true none none
» reason string true none none
» trace_id string true none none

DELETE 删除推流通道

DELETE /stream_pushs/{id}

重复删除同一个 id不会提示错误因为结果是确实删除了。 第一次: 返回被删除的对象数据 第二次: 返回 id 为空串 更多: 返回 id 为空串

请求参数

名称 位置 类型 必选 中文名 说明
id path string 推流通道唯一标识 ID

返回示例

200 Response

{"id":"rsbpbgr","created_at":"2025-01-19 07:56:26","updated_at":"2025-01-19 07:56:26","name":"测试添加","pushed_at":"1970-01-01 00:00:00","stopped_at":"1970-01-01 00:00:00","app":"liv1","stream":"110","media_server_id":"","server_id":"","status":""}

400 Response

{
  "msg": "string",
  "reason": "string",
  "trace_id": "string"
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK none Inline
400 Bad Request none Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» id string true none none
» created_at string true none none
» updated_at string true none none
» name string true none none
» pushed_at string true none none
» stopped_at string true none none
» app string true none none
» stream string true none none
» media_server_id string true none none
» server_id string true none none
» status string true none none

状态码 400

名称 类型 必选 约束 中文名 说明
» msg string true none none
» reason string true none none
» trace_id string true none none

PUT 编辑推流通道

PUT /stream_pushs/{id}

Body 请求参数

{
    "name": "123123",
    "app": "live",
    "stream": "123",
    "gbId": "1241231231233",
    "longitude": null,
    "latitude": null
}

请求参数

名称 位置 类型 必选 中文名 说明
id path string none
body body object none
» name body string 自定义名称 none
» app body string 推流应用 none
» stream body string 流唯一标识 none
» is_auth_enabled body boolean 是否开启推流鉴权 none

返回示例

200 Response

{"id":"rsbpbgr","created_at":"2025-01-19 07:56:26","updated_at":"2025-01-19 07:56:26","name":"测试添加","pushed_at":"1970-01-01 00:00:00","stopped_at":"1970-01-01 00:00:00","app":"liv1","stream":"110","media_server_id":"","server_id":"","status":""}

400 Response

{
  "msg": "string",
  "reason": "string",
  "trace_id": "string"
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK none Inline
400 Bad Request none Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» id string true none none
» created_at string true none none
» updated_at string true none none
» name string true none none
» pushed_at string true none none
» stopped_at string true none none
» app string true none none
» stream string true none none
» media_server_id string true none none
» server_id string true none none
» status string true none none

状态码 400

名称 类型 必选 约束 中文名 说明
» msg string true none none
» reason string true none none
» trace_id string true none none

拉流代理

POST 添加拉流代理

POST /stream_proxys

Body 请求参数

{
  "app": "string",
  "stream": "string",
  "transport": 0,
  "timeout_s": 0,
  "enabled": true,
  "source_url": "string"
}

请求参数

名称 位置 类型 必选 中文名 说明
body body object none
» app body string 流应用名称 none
» stream body string 流 id none
» transport body integer 拉流方式(rtsp) 0:udp; 1: tcp
» timeout_s body integer 超时时间秒 none
» enabled body boolean 是否启用 none
» source_url body string 拉流地址 none

返回示例

200 Response

{
  "id": "string",
  "created_at": "string",
  "updated_at": "string",
  "app": "string",
  "stream": "string",
  "media_server_id": "string",
  "source_url": "string",
  "timeout_s": 0,
  "transport": 0,
  "enabled": true,
  "enabled_audio": true,
  "enabled_remove_none_reader": true,
  "enabled_disabled_none_reader": true,
  "stream_key": "string",
  "pulling": true
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK none Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» id string true none none
» created_at string true none none
» updated_at string true none none
» app string true none none
» stream string true none none
» media_server_id string true none none
» source_url string true none none
» timeout_s integer true none none
» transport integer true none none
» enabled boolean true none none
» enabled_audio boolean true none none
» enabled_remove_none_reader boolean true none none
» enabled_disabled_none_reader boolean true none none
» stream_key string true none none
» pulling boolean true none none

PUT 编辑拉流代理

PUT /stream_proxys

Body 请求参数

{
  "app": "string",
  "stream": "string",
  "transport": 0,
  "timeout_s": 0,
  "enabled": true,
  "source_url": "string"
}

请求参数

名称 位置 类型 必选 中文名 说明
body body object none
» app body string 流应用名称 none
» stream body string 流 id none
» transport body integer 拉流方式(rtsp) 0:udp; 1: tcp
» timeout_s body integer 超时时间秒 none
» enabled body boolean 是否启用 none
» source_url body string 拉流地址 none

返回示例

200 Response

{
  "id": "string",
  "created_at": "string",
  "updated_at": "string",
  "app": "string",
  "stream": "string",
  "media_server_id": "string",
  "source_url": "string",
  "timeout_s": 0,
  "transport": 0,
  "enabled": true,
  "enabled_audio": true,
  "enabled_remove_none_reader": true,
  "enabled_disabled_none_reader": true,
  "stream_key": "string",
  "pulling": true
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK none Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» id string true none none
» created_at string true none none
» updated_at string true none none
» app string true none none
» stream string true none none
» media_server_id string true none none
» source_url string true none none
» timeout_s integer true none none
» transport integer true none none
» enabled boolean true none none
» enabled_audio boolean true none none
» enabled_remove_none_reader boolean true none none
» enabled_disabled_none_reader boolean true none none
» stream_key string true none none
» pulling boolean true none none

GET 查询拉流代理列表

GET /stream_proxys

返回示例

200 Response

{
  "items": [
    {
      "id": "string",
      "created_at": "string",
      "updated_at": "string",
      "app": "string",
      "stream": "string",
      "media_server_id": "string",
      "source_url": "string",
      "timeout_s": 0,
      "transport": 0,
      "enabled": true,
      "enabled_audio": true,
      "enabled_remove_none_reader": true,
      "enabled_disabled_none_reader": true,
      "stream_key": "string",
      "pulling": true
    }
  ],
  "total": 0
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK none Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» items [object] true none none
»» id string true none none
»» created_at string true none none
»» updated_at string true none none
»» app string true none none
»» stream string true none none
»» media_server_id string true none none
»» source_url string true none none
»» timeout_s integer true none none
»» transport integer true none none
»» enabled boolean true none none
»» enabled_audio boolean true none none
»» enabled_remove_none_reader boolean true none none
»» enabled_disabled_none_reader boolean true none none
»» stream_key string true none none
»» pulling boolean true none none
» total integer true none none

DELETE 添加拉流代理

DELETE /stream_proxys/{id}

请求参数

名称 位置 类型 必选 中文名 说明
id path string none

返回示例

200 Response

{
  "id": "string",
  "created_at": "string",
  "updated_at": "string",
  "app": "string",
  "stream": "string",
  "media_server_id": "string",
  "source_url": "string",
  "timeout_s": 0,
  "transport": 0,
  "enabled": true,
  "enabled_audio": true,
  "enabled_remove_none_reader": true,
  "enabled_disabled_none_reader": true,
  "stream_key": "string",
  "pulling": true
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK none Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» id string true none none
» created_at string true none none
» updated_at string true none none
» app string true none none
» stream string true none none
» media_server_id string true none none
» source_url string true none none
» timeout_s integer true none none
» transport integer true none none
» enabled boolean true none none
» enabled_audio boolean true none none
» enabled_remove_none_reader boolean true none none
» enabled_disabled_none_reader boolean true none none
» stream_key string true none none
» pulling boolean true none none

国标设备

POST 添加设备

POST /devices

添加设备(所有协议,通过 type 区分)

示例1 - 添加 GB28181 设备:

{ "type": "GB28181", "device_id": "34020000001320000001", "name": "摄像头1" }

示例2 - 添加 ONVIF 设备:

{ "type": "ONVIF", "ip": "192.168.1.100", "port": 80, "username": "admin", "password": "12345" }

Body 请求参数

{
  "device_id": "string",
  "username": "string",
  "ip": "string",
  "port": 0,
  "name": "string",
  "password": "string",
  "type": "GB28181"
}

请求参数

名称 位置 类型 必选 中文名 说明
body body AddDeviceInput none

返回示例

200 Response

{
  "id": "string",
  "type": "string",
  "device_id": "string",
  "name": "string",
  "transport": "string",
  "stream_mode": 0,
  "ip": "string",
  "port": 0,
  "is_online": true,
  "registered_at": 0,
  "keepalive_at": 0,
  "keepalives": 0,
  "expires": 0,
  "channels": 0,
  "created_at": 0,
  "updated_at": 0,
  "password": "string",
  "address": "string",
  "username": "string",
  "ext": {
    "manufacturer": "string",
    "model": "string",
    "firmware": "string",
    "name": "string",
    "gb_version": "string",
    "zones": [
      {
        "name": "string",
        "coordinates": [
          0.1
        ],
        "color": "string",
        "labels": [
          "string"
        ]
      }
    ],
    "enabled_ai": true
  }
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK 成功 Device

GET 设备列表

GET /devices

设备列表(所有协议)

请求参数

名称 位置 类型 必选 中文名 说明
page query integer 页码
size query integer 每页数量
sort query string 排序字段
key query string 搜索关键字

返回示例

200 Response

{
  "items": [
    {
      "id": "string",
      "type": "string",
      "device_id": "string",
      "name": "string",
      "transport": "string",
      "stream_mode": 0,
      "ip": "string",
      "port": 0,
      "is_online": true,
      "registered_at": 0,
      "keepalive_at": 0,
      "keepalives": 0,
      "expires": 0,
      "channels": 0,
      "created_at": 0,
      "updated_at": 0,
      "password": "string",
      "address": "string",
      "username": "string",
      "ext": {
        "manufacturer": "string",
        "model": "string",
        "firmware": "string",
        "name": "string",
        "gb_version": "string",
        "zones": [
          {
            "name": null,
            "coordinates": null,
            "color": null,
            "labels": null
          }
        ],
        "enabled_ai": true
      }
    }
  ],
  "total": 0
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK 成功 Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» items [Device] false none none
»» id string false none 设备 ID
»» type string false none 设备类型GB28181/ONVIF/RTMP/RTSP
»» device_id string false none 20 位国标编号
»» name string false none 设备名称
»» transport string false none 传输协议TCP/UDP
»» stream_mode integer false none 数据传输模式0:UDP; 1:TCP_PASSIVE; 2:TCP_ACTIVE
»» ip string false none IP 地址
»» port integer false none 端口
»» is_online boolean false none 是否在线
»» registered_at integer false none 注册时间(毫秒时间戳)
»» keepalive_at integer false none 心跳时间(毫秒时间戳)
»» keepalives integer false none 心跳间隔
»» expires integer false none 注册有效期
»» channels integer false none 通道数量
»» created_at integer false none 创建时间(毫秒时间戳)
»» updated_at integer false none 更新时间(毫秒时间戳)
»» password string false none 注册密码
»» address string false none 设备网络地址
»» username string false none 用户名
»» ext DeviceExt false none none
»»» manufacturer string false none 生产厂商
»»» model string false none 型号
»»» firmware string false none 固件版本
»»» name string false none 设备名
»»» gb_version string false none GB 版本
»»» zones [Zone] false none 区域
»»»» name string false none 区域名称
»»»» coordinates [number] false none 坐标
»»»» color string false none 颜色,支持 hex 颜色值,如
»»»» labels [string] false none 标签
»»» enabled_ai boolean false none 是否启用 AI
» total integer false none 总数

DELETE 删除设备

DELETE /devices/{id}

删除设备(所有协议)

请求参数

名称 位置 类型 必选 中文名 说明
id path string 设备 ID

返回示例

200 Response

{
  "id": "string",
  "type": "string",
  "device_id": "string",
  "name": "string",
  "transport": "string",
  "stream_mode": 0,
  "ip": "string",
  "port": 0,
  "is_online": true,
  "registered_at": 0,
  "keepalive_at": 0,
  "keepalives": 0,
  "expires": 0,
  "channels": 0,
  "created_at": 0,
  "updated_at": 0,
  "password": "string",
  "address": "string",
  "username": "string",
  "ext": {
    "manufacturer": "string",
    "model": "string",
    "firmware": "string",
    "name": "string",
    "gb_version": "string",
    "zones": [
      {
        "name": "string",
        "coordinates": [
          0.1
        ],
        "color": "string",
        "labels": [
          "string"
        ]
      }
    ],
    "enabled_ai": true
  }
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK 成功 Device

PUT 修改设备

PUT /devices/{id}

修改设备(所有协议)

Body 请求参数

{
  "device_id": "string",
  "name": "string",
  "password": "string",
  "stream_mode": 0,
  "username": "string",
  "ip": "string",
  "port": 0
}

请求参数

名称 位置 类型 必选 中文名 说明
id path string 设备 ID
body body EditDeviceInput none

返回示例

200 Response

{
  "id": "string",
  "type": "string",
  "device_id": "string",
  "name": "string",
  "transport": "string",
  "stream_mode": 0,
  "ip": "string",
  "port": 0,
  "is_online": true,
  "registered_at": 0,
  "keepalive_at": 0,
  "keepalives": 0,
  "expires": 0,
  "channels": 0,
  "created_at": 0,
  "updated_at": 0,
  "password": "string",
  "address": "string",
  "username": "string",
  "ext": {
    "manufacturer": "string",
    "model": "string",
    "firmware": "string",
    "name": "string",
    "gb_version": "string",
    "zones": [
      {
        "name": "string",
        "coordinates": [
          0.1
        ],
        "color": "string",
        "labels": [
          "string"
        ]
      }
    ],
    "enabled_ai": true
  }
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK 成功 Device

GET 设备详情

GET /devices/{id}

设备详情(所有协议)

请求参数

名称 位置 类型 必选 中文名 说明
id path string 设备 ID

返回示例

200 Response

{
  "id": "string",
  "type": "string",
  "device_id": "string",
  "name": "string",
  "transport": "string",
  "stream_mode": 0,
  "ip": "string",
  "port": 0,
  "is_online": true,
  "registered_at": 0,
  "keepalive_at": 0,
  "keepalives": 0,
  "expires": 0,
  "channels": 0,
  "created_at": 0,
  "updated_at": 0,
  "password": "string",
  "address": "string",
  "username": "string",
  "ext": {
    "manufacturer": "string",
    "model": "string",
    "firmware": "string",
    "name": "string",
    "gb_version": "string",
    "zones": [
      {
        "name": "string",
        "coordinates": [
          0.1
        ],
        "color": "string",
        "labels": [
          "string"
        ]
      }
    ],
    "enabled_ai": true
  }
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK 成功 Device

GET 设备与通道列表

GET /devices/channels

设备与通道列表(所有协议),返回设备及其子通道

请求参数

名称 位置 类型 必选 中文名 说明
page query integer 页码
size query integer 每页数量
sort query string 排序字段
key query string 搜索关键字

返回示例

200 Response

{
  "items": [
    {
      "id": "string",
      "type": "string",
      "device_id": "string",
      "name": "string",
      "transport": "string",
      "stream_mode": 0,
      "ip": "string",
      "port": 0,
      "is_online": true,
      "registered_at": 0,
      "keepalive_at": 0,
      "keepalives": 0,
      "expires": 0,
      "channels": 0,
      "created_at": 0,
      "updated_at": 0,
      "password": "string",
      "address": "string",
      "username": "string",
      "ext": {
        "manufacturer": "string",
        "model": "string",
        "firmware": "string",
        "name": "string",
        "gb_version": "string",
        "zones": [
          null
        ],
        "enabled_ai": true
      },
      "children": [
        {
          "id": null,
          "did": null,
          "device_id": null,
          "channel_id": null,
          "name": null,
          "ptztype": null,
          "is_online": null,
          "is_playing": null,
          "type": null,
          "app": null,
          "stream": null,
          "config": null,
          "created_at": null,
          "updated_at": null,
          "ext": null
        }
      ]
    }
  ],
  "total": 0
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK 成功 Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» items [allOf] false none none

allOf

名称 类型 必选 约束 中文名 说明
»» anonymous Device false none none
»»» id string false none 设备 ID
»»» type string false none 设备类型GB28181/ONVIF/RTMP/RTSP
»»» device_id string false none 20 位国标编号
»»» name string false none 设备名称
»»» transport string false none 传输协议TCP/UDP
»»» stream_mode integer false none 数据传输模式0:UDP; 1:TCP_PASSIVE; 2:TCP_ACTIVE
»»» ip string false none IP 地址
»»» port integer false none 端口
»»» is_online boolean false none 是否在线
»»» registered_at integer false none 注册时间(毫秒时间戳)
»»» keepalive_at integer false none 心跳时间(毫秒时间戳)
»»» keepalives integer false none 心跳间隔
»»» expires integer false none 注册有效期
»»» channels integer false none 通道数量
»»» created_at integer false none 创建时间(毫秒时间戳)
»»» updated_at integer false none 更新时间(毫秒时间戳)
»»» password string false none 注册密码
»»» address string false none 设备网络地址
»»» username string false none 用户名
»»» ext DeviceExt false none none
»»»» manufacturer string false none 生产厂商
»»»» model string false none 型号
»»»» firmware string false none 固件版本
»»»» name string false none 设备名
»»»» gb_version string false none GB 版本
»»»» zones [Zone] false none 区域
»»»»» name string false none 区域名称
»»»»» coordinates [number] false none 坐标
»»»»» color string false none 颜色,支持 hex 颜色值,如
»»»»» labels [string] false none 标签
»»»» enabled_ai boolean false none 是否启用 AI

and

名称 类型 必选 约束 中文名 说明
»» anonymous object false none none
»»» children [Channel] false none 子通道列表
»»»» id string false none 通道 ID
»»»» did string false none 父级设备 ID
»»»» device_id string false none 国标编码
»»»» channel_id string false none 国标编码
»»»» name string false none 通道名称
»»»» ptztype integer false none 云台类型
»»»» is_online boolean false none 是否在线RTMP/RTSP 表示推流/拉流状态)
»»»» is_playing boolean false none 是否播放中
»»»» type string false none 通道类型GB28181/ONVIF/RTMP/RTSP
»»»» app string false none 应用名RTMP/RTSP
»»»» stream string false none 流 IDRTMP/RTSP
»»»» config StreamConfig false none 流配置RTMP 推流和 RTSP 拉流代理)
»»»»» is_auth_disabled boolean false none 是否禁用推流鉴权
»»»»» pushed_at integer false none 最后推流时间(毫秒时间戳)
»»»»» stopped_at integer false none 最后停止时间(毫秒时间戳)
»»»»» media_server_id string false none 媒体服务器 ID
»»»»» push_addr string false none 推流地址(动态生成,仅在查询时返回)
»»»»» source_url string false none 原始 RTSP URL
»»»»» transport integer false none 拉流方式0:tcp, 1:udp
»»»»» timeout_s integer false none 超时时间(秒)
»»»»» enabled_audio boolean false none 是否启用音频
»»»»» enabled_remove_none_reader boolean false none 无人观看时删除
»»»»» enabled_disabled_none_reader boolean false none 无人观看时禁用
»»»»» stream_key string false none ZLM 返回的 key
»»»»» enabled boolean false none 是否启用
»»»» created_at integer false none 创建时间(毫秒时间戳)
»»»» updated_at integer false none 更新时间(毫秒时间戳)
»»»» ext DeviceExt false none none
»»»»» manufacturer string false none 生产厂商
»»»»» model string false none 型号
»»»»» firmware string false none 固件版本
»»»»» name string false none 设备名
»»»»» gb_version string false none GB 版本
»»»»» zones [Zone] false none 区域
»»»»» enabled_ai boolean false none 是否启用 AI

continued

名称 类型 必选 约束 中文名 说明
» total integer false none 总数

POST 查询设备目录

POST /devices/{id}/catalog

查询设备目录GB28181 协议)

请求参数

名称 位置 类型 必选 中文名 说明
id path string 设备 ID

返回示例

200 Response

{
  "msg": "ok"
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK 成功 Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» msg string false none none

国标设备/通道

POST 播放

POST /channels/{id}/play

播放(所有协议)

请求参数

名称 位置 类型 必选 中文名 说明
id path string 通道 ID

返回示例

200 Response

{
  "app": "string",
  "stream": "string",
  "items": [
    {
      "label": "string",
      "ws_flv": "string",
      "http_flv": "string",
      "rtmp": "string",
      "rtsp": "string",
      "webrtc": "string",
      "hls": "string"
    }
  ]
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK 成功 PlayOutput

GET 通道列表

GET /channels

通道列表(所有协议)

请求参数

名称 位置 类型 必选 中文名 说明
page query integer 页码
size query integer 每页数量
sort query string 排序字段
did query string 设备 ID
device_id query string 国标编码
key query string 名称/国标编码 模糊搜索id 精确搜索
is_online query string 是否在线true/false
type query string 通道类型GB28181/ONVIF/RTMP/RTSP
app query string 应用名RTMP/RTSP
stream query string 流 IDRTMP/RTSP

枚举值

属性
type GB28181
type ONVIF
type RTMP
type RTSP

返回示例

200 Response

{
  "items": [
    {
      "id": "string",
      "did": "string",
      "device_id": "string",
      "channel_id": "string",
      "name": "string",
      "ptztype": 0,
      "is_online": true,
      "is_playing": true,
      "type": "string",
      "app": "string",
      "stream": "string",
      "config": {
        "is_auth_disabled": true,
        "pushed_at": 0,
        "stopped_at": 0,
        "media_server_id": "string",
        "push_addr": "string",
        "source_url": "string",
        "transport": 0,
        "timeout_s": 0,
        "enabled_audio": true,
        "enabled_remove_none_reader": true,
        "enabled_disabled_none_reader": true,
        "stream_key": "string",
        "enabled": true
      },
      "created_at": 0,
      "updated_at": 0,
      "ext": {
        "manufacturer": "string",
        "model": "string",
        "firmware": "string",
        "name": "string",
        "gb_version": "string",
        "zones": [
          {
            "name": null,
            "coordinates": null,
            "color": null,
            "labels": null
          }
        ],
        "enabled_ai": true
      }
    }
  ],
  "total": 0
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK 成功 Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» items [Channel] false none none
»» id string false none 通道 ID
»» did string false none 父级设备 ID
»» device_id string false none 国标编码
»» channel_id string false none 国标编码
»» name string false none 通道名称
»» ptztype integer false none 云台类型
»» is_online boolean false none 是否在线RTMP/RTSP 表示推流/拉流状态)
»» is_playing boolean false none 是否播放中
»» type string false none 通道类型GB28181/ONVIF/RTMP/RTSP
»» app string false none 应用名RTMP/RTSP
»» stream string false none 流 IDRTMP/RTSP
»» config StreamConfig false none 流配置RTMP 推流和 RTSP 拉流代理)
»»» is_auth_disabled boolean false none 是否禁用推流鉴权
»»» pushed_at integer false none 最后推流时间(毫秒时间戳)
»»» stopped_at integer false none 最后停止时间(毫秒时间戳)
»»» media_server_id string false none 媒体服务器 ID
»»» push_addr string false none 推流地址(动态生成,仅在查询时返回)
»»» source_url string false none 原始 RTSP URL
»»» transport integer false none 拉流方式0:tcp, 1:udp
»»» timeout_s integer false none 超时时间(秒)
»»» enabled_audio boolean false none 是否启用音频
»»» enabled_remove_none_reader boolean false none 无人观看时删除
»»» enabled_disabled_none_reader boolean false none 无人观看时禁用
»»» stream_key string false none ZLM 返回的 key
»»» enabled boolean false none 是否启用
»» created_at integer false none 创建时间(毫秒时间戳)
»» updated_at integer false none 更新时间(毫秒时间戳)
»» ext DeviceExt false none none
»»» manufacturer string false none 生产厂商
»»» model string false none 型号
»»» firmware string false none 固件版本
»»» name string false none 设备名
»»» gb_version string false none GB 版本
»»» zones [Zone] false none 区域
»»»» name string false none 区域名称
»»»» coordinates [number] false none 坐标
»»»» color string false none 颜色,支持 hex 颜色值,如
»»»» labels [string] false none 标签
»»» enabled_ai boolean false none 是否启用 AI
» total integer false none 总数

PUT 修改通道

PUT /channels/{id}

修改通道(所有协议)

Body 请求参数

{
  "device_id": "string",
  "name": "string",
  "ptztype": 0,
  "is_online": true,
  "app": "string",
  "stream": "string",
  "config": {
    "is_auth_disabled": true,
    "pushed_at": 0,
    "stopped_at": 0,
    "media_server_id": "string",
    "push_addr": "string",
    "source_url": "string",
    "transport": 0,
    "timeout_s": 0,
    "enabled_audio": true,
    "enabled_remove_none_reader": true,
    "enabled_disabled_none_reader": true,
    "stream_key": "string",
    "enabled": true
  },
  "ext": {
    "manufacturer": "string",
    "model": "string",
    "firmware": "string",
    "name": "string",
    "gb_version": "string",
    "zones": [
      {
        "name": "string",
        "coordinates": [
          0.1
        ],
        "color": "string",
        "labels": [
          "string"
        ]
      }
    ],
    "enabled_ai": true
  }
}

请求参数

名称 位置 类型 必选 中文名 说明
id path string 通道 ID
body body EditChannelInput none

返回示例

200 Response

{
  "id": "string",
  "did": "string",
  "device_id": "string",
  "channel_id": "string",
  "name": "string",
  "ptztype": 0,
  "is_online": true,
  "is_playing": true,
  "type": "string",
  "app": "string",
  "stream": "string",
  "config": {
    "is_auth_disabled": true,
    "pushed_at": 0,
    "stopped_at": 0,
    "media_server_id": "string",
    "push_addr": "string",
    "source_url": "string",
    "transport": 0,
    "timeout_s": 0,
    "enabled_audio": true,
    "enabled_remove_none_reader": true,
    "enabled_disabled_none_reader": true,
    "stream_key": "string",
    "enabled": true
  },
  "created_at": 0,
  "updated_at": 0,
  "ext": {
    "manufacturer": "string",
    "model": "string",
    "firmware": "string",
    "name": "string",
    "gb_version": "string",
    "zones": [
      {
        "name": "string",
        "coordinates": [
          0.1
        ],
        "color": "string",
        "labels": [
          "string"
        ]
      }
    ],
    "enabled_ai": true
  }
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK 成功 Channel

POST 图像抓拍

POST /channels/{id}/snapshot

图像抓拍(所有协议)

要获取最新的实时快照,需要传递 url 参数url 参数建议从播放接口获取 rtsp 地址

Body 请求参数

{
  "within_seconds": 0,
  "url": "string"
}

请求参数

名称 位置 类型 必选 中文名 说明
id path string 通道 ID
body body RefreshSnapshotInput none

返回示例

200 Response

{
  "link": "string"
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK 成功 Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» link string false none 快照图片链接

GET 获取图像

GET /channels/{id}/snapshot

获取图像(所有协议)

请求参数

名称 位置 类型 必选 中文名 说明
id path string 通道 ID

返回示例

200 Response

返回结果

状态码 状态码含义 说明 数据模型
200 OK JPEG 图片 Inline

返回数据结构

POST 添加区域

POST /channels/{id}/zones

添加区域(所有协议)

Body 请求参数

{
  "name": "string",
  "coordinates": [
    0.1
  ],
  "color": "string",
  "labels": [
    "string"
  ]
}

请求参数

名称 位置 类型 必选 中文名 说明
id path string 通道 ID
body body AddZoneInput none

返回示例

200 Response

{
  "items": {
    "name": "string",
    "coordinates": [
      0.1
    ],
    "color": "string",
    "labels": [
      "string"
    ]
  }
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK 成功 Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» items Zone false none none
»» name string false none 区域名称
»» coordinates [number] false none 坐标
»» color string false none 颜色,支持 hex 颜色值,如
»» labels [string] false none 标签

GET 获取区域

GET /channels/{id}/zones

获取区域(所有协议)

请求参数

名称 位置 类型 必选 中文名 说明
id path string 通道 ID

返回示例

200 Response

[
  {
    "name": "string",
    "coordinates": [
      0.1
    ],
    "color": "string",
    "labels": [
      "string"
    ]
  }
]

返回结果

状态码 状态码含义 说明 数据模型
200 OK 成功 Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
anonymous [Zone] false none none
» name string false none 区域名称
» coordinates [number] false none 坐标
» color string false none 颜色,支持 hex 颜色值,如
» labels [string] false none 标签

配置管理

GET 查询配置信息

GET /configs/info

返回示例

200 Response

{"sip":{"port":15062,"id":"3402000000200000001","host":"192.168.10.14","domain":"3402000000","password":"12345678"}}

返回结果

状态码 状态码含义 说明 数据模型
200 OK none Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» sip [sip 配置](#schemasip 配置) true none none
»» port integer true none 端口(tcp/udp) none
»» id string true none 国标 id none
»» host string true none 主机 ip none
»» domain string true none 国标域 none
»» password string true none 全局密码 none

PUT 修改 sip 配置

PUT /configs/info/sip

Body 请求参数

{
  "port": 0,
  "id": "string",
  "host": "string",
  "domain": "string",
  "password": "string"
}

请求参数

名称 位置 类型 必选 中文名 说明
body body [sip 配置](#schemasip 配置) none

返回示例

200 Response

{}

返回结果

状态码 状态码含义 说明 数据模型
200 OK none Inline

返回数据结构

GET 查询流媒体列表

GET /media_servers

返回示例

200 Response

{"items":[{"id":"local","ip":"127.0.0.1","created_at":"2025-03-09 10:30:16","updated_at":"2025-03-16 22:54:20","hook_ip":"192.168.1.10","sdpip":"192.168.1.10","stream_ip":"","ports":{"http":8080,"https":443,"rtmp":1935,"flv":8080,"flvs":443,"ws_flv":8080,"ws_flvs":443,"rtmps":0,"rtpporxy":10001,"rtsp":554,"rtsps":0},"auto_config":false,"secret":"","hook_alive_interval":10,"rtpenable":false,"status":false,"rtpport_range":"20000-20500","send_rtpport_range":"","record_assist_port":0,"last_keepalive_at":"2025-03-09 10:30:16","record_day":0,"record_path":"","type":"zlm","transcode_suffix":""}],"total":1}

返回结果

状态码 状态码含义 说明 数据模型
200 OK none Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» items [object] true none none
»» id string false none none
»» ip string false none none
»» created_at string false none none
»» updated_at string false none none
»» hook_ip string false none none
»» sdpip string false none none
»» stream_ip string false none none
»» ports object false none none
»»» http integer true none none
»»» https integer true none none
»»» rtmp integer true none none
»»» flv integer true none none
»»» flvs integer true none none
»»» ws_flv integer true none none
»»» ws_flvs integer true none none
»»» rtmps integer true none none
»»» rtpporxy integer true none none
»»» rtsp integer true none none
»»» rtsps integer true none none
»» auto_config boolean false none none
»» secret string false none none
»» hook_alive_interval integer false none none
»» rtpenable boolean false none none
»» status boolean false none none
»» rtpport_range string false none none
»» send_rtpport_range string false none none
»» record_assist_port integer false none none
»» last_keepalive_at string false none none
»» record_day integer false none none
»» record_path string false none none
»» type string false none none
»» transcode_suffix string false none none
» total integer true none none

PUT 修改流媒体配置

PUT /media_servers/{id}

Body 请求参数

{
  "ip": "string",
  "sdp_ip": "string",
  "secret": "string",
  "hook_ip": "string",
  "ports": {
    "http": 0,
    "rtmp": 0,
    "flv": 0,
    "rtsp": 0
  }
}

请求参数

名称 位置 类型 必选 中文名 说明
id path string none
body body object none
» ip body string gowvp 联系 zlm 的内网地址 none
» sdp_ip body string 国标收流默认地址 none
» secret body string zlm 的 api 秘钥 none
» hook_ip body string gowvp 的地址,用于接收回调 none
» ports body object zlm 的相关端口 none
»» http body integer none
»» rtmp body integer none
»» flv body integer none
»» rtsp body integer none

返回示例

200 Response

{}

返回结果

状态码 状态码含义 说明 数据模型
200 OK none Inline

返回数据结构

ONVIF

GET 设备发现

GET /onvif/devices-discover

响应是 sse event=discoverdata= {"addr": "192.168.1.2"}。 遇到 event=end即发现结束。

返回示例

200 Response

{}

返回结果

状态码 状态码含义 说明 数据模型
200 OK none Inline

返回数据结构

POST 添加设备

POST /onvif

Body 请求参数

{
  "username": "string",
  "password": "string",
  "name": "string",
  "ip": "string",
  "port": 0
}

请求参数

名称 位置 类型 必选 中文名 说明
body body object none
» username body string none
» password body string none
» name body string none
» ip body string none
» port body integer none

返回示例

200 Response

{}

返回结果

状态码 状态码含义 说明 数据模型
200 OK none Inline

返回数据结构

GET ONVIF 设备发现

GET /onvif/discover

ONVIF 设备发现ONVIF 特有),返回 SSE 事件流

返回示例

200 Response

返回结果

状态码 状态码含义 说明 数据模型
200 OK SSE 事件流 Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» event string false none 事件类型discover/end
» data object false none 发现的设备信息

GB28181

POST GB28181 快照回调

POST /gb28181/snapshot

GB28181 协议特有的快照回调接口,接收设备上报的快照图片

Body 请求参数

string

请求参数

名称 位置 类型 必选 中文名 说明
body body string(binary) none

返回示例

200 Response

{
  "msg": "ok"
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK 成功 Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» msg string false none none

通道管理

POST 添加通道

POST /channels

添加 RTMP/RTSP 通道

设备关联逻辑:

  1. 如果提供 device_id则关联到已存在的设备
  2. 如果提供 device_name无 device_id则创建新的虚拟设备
  3. 两者都不提供则返回错误

示例1 - 添加 RTMP 推流通道(关联已有设备):

{
  "type": "RTMP",
  "name": "推流通道1",
  "device_id": "mp123456",
  "app": "live",
  "stream": "stream1",
  "config": {
    "is_auth_disabled": false
  }
}

示例2 - 添加 RTSP 拉流通道(创建新设备):

{
  "type": "RTSP",
  "name": "拉流通道1",
  "device_name": "新设备",
  "app": "live",
  "stream": "stream2",
  "config": {
    "source_url": "rtsp://192.168.1.100:554/stream",
    "transport": 0,
    "enabled": true
  }
}

Body 请求参数

{
  "type": "RTMP",
  "name": "string",
  "device_id": "string",
  "device_name": "string",
  "app": "string",
  "stream": "string",
  "config": {
    "is_auth_disabled": true,
    "pushed_at": 0,
    "stopped_at": 0,
    "media_server_id": "string",
    "push_addr": "string",
    "source_url": "string",
    "transport": 0,
    "timeout_s": 0,
    "enabled_audio": true,
    "enabled_remove_none_reader": true,
    "enabled_disabled_none_reader": true,
    "stream_key": "string",
    "enabled": true
  }
}

请求参数

名称 位置 类型 必选 中文名 说明
body body AddChannelInput none

返回示例

200 Response

{
  "id": "string",
  "did": "string",
  "device_id": "string",
  "channel_id": "string",
  "name": "string",
  "ptztype": 0,
  "is_online": true,
  "is_playing": true,
  "type": "string",
  "app": "string",
  "stream": "string",
  "config": {
    "is_auth_disabled": true,
    "pushed_at": 0,
    "stopped_at": 0,
    "media_server_id": "string",
    "push_addr": "string",
    "source_url": "string",
    "transport": 0,
    "timeout_s": 0,
    "enabled_audio": true,
    "enabled_remove_none_reader": true,
    "enabled_disabled_none_reader": true,
    "stream_key": "string",
    "enabled": true
  },
  "created_at": 0,
  "updated_at": 0,
  "ext": {
    "manufacturer": "string",
    "model": "string",
    "firmware": "string",
    "name": "string",
    "gb_version": "string",
    "zones": [
      {
        "name": "string",
        "coordinates": [
          0.1
        ],
        "color": "string",
        "labels": [
          "string"
        ]
      }
    ],
    "enabled_ai": true
  }
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK 成功 Channel

DELETE 删除通道

DELETE /channels/{id}

删除 RTMP/RTSP 通道(仅支持删除 RTMP/RTSP 类型通道)

请求参数

名称 位置 类型 必选 中文名 说明
id path string 通道 ID

返回示例

200 Response

{
  "id": "string",
  "did": "string",
  "device_id": "string",
  "channel_id": "string",
  "name": "string",
  "ptztype": 0,
  "is_online": true,
  "is_playing": true,
  "type": "string",
  "app": "string",
  "stream": "string",
  "config": {
    "is_auth_disabled": true,
    "pushed_at": 0,
    "stopped_at": 0,
    "media_server_id": "string",
    "push_addr": "string",
    "source_url": "string",
    "transport": 0,
    "timeout_s": 0,
    "enabled_audio": true,
    "enabled_remove_none_reader": true,
    "enabled_disabled_none_reader": true,
    "stream_key": "string",
    "enabled": true
  },
  "created_at": 0,
  "updated_at": 0,
  "ext": {
    "manufacturer": "string",
    "model": "string",
    "firmware": "string",
    "name": "string",
    "gb_version": "string",
    "zones": [
      {
        "name": "string",
        "coordinates": [
          0.1
        ],
        "color": "string",
        "labels": [
          "string"
        ]
      }
    ],
    "enabled_ai": true
  }
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK 成功 Channel

POST 启用 AI 检测

POST /channels/{id}/ai/enable

启用指定通道的 AI 检测功能

前置条件:

  1. 全局 AI 服务已启用(配置文件中 AI.Disabled=false
  2. AI 服务已连接正常

请求参数

名称 位置 类型 必选 中文名 说明
id path string 通道 ID

返回示例

200 Response

{
  "enabled": true,
  "message": "string",
  "source_width": 0,
  "source_height": 0,
  "source_fps": 0
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK 成功 Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» enabled boolean false none AI 检测是否已启用
» message string false none 返回消息
» source_width integer false none 视频源宽度
» source_height integer false none 视频源高度
» source_fps number false none 视频源帧率

POST 禁用 AI 检测

POST /channels/{id}/ai/disable

禁用指定通道的 AI 检测功能,会同时停止正在运行的检测任务

请求参数

名称 位置 类型 必选 中文名 说明
id path string 通道 ID

返回示例

200 Response

{
  "enabled": false,
  "message": "AI 检测已停止"
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK 成功 Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» enabled boolean false none AI 检测是否已启用
» message string false none 返回消息

events

GET 分页查询事件列表

GET /events

分页查询 AI 检测事件,支持按通道 ID、设备 ID、标签和时间范围筛选。 结果按事件开始时间倒序排列。

请求参数

名称 位置 类型 必选 中文名 说明
page query integer 页码
size query integer 每页数量
sort query string 排序字段
start_ms query integer(int64) 开始时间(毫秒时间戳)
end_ms query integer(int64) 结束时间(毫秒时间戳)
did query string 设备 ID
cid query string 通道 ID
label query string 检测标签(如 person, car

返回示例

200 Response

{
  "items": [
    {
      "id": 0,
      "did": "string",
      "cid": "string",
      "started_at": 0,
      "ended_at": 0,
      "label": "string",
      "score": 0.1,
      "zones": "string",
      "image_path": "string",
      "model": "string",
      "created_at": 0,
      "updated_at": 0
    }
  ],
  "total": 0
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK 成功 Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» items [Event] false none none
»» id integer(int64) false none 事件 ID
»» did string false none 设备 ID
»» cid string false none 通道 ID
»» started_at integer(int64) false none 事件开始时间(毫秒时间戳)
»» ended_at integer(int64) false none 事件结束时间(毫秒时间戳)
»» label string false none 检测标签(如 person, car
»» score number(float) false none 置信度0.0-1.0
»» zones string false none 检测区域 JSON边界框信息
»» image_path string false none 图片相对路径,可通过 /events/image/{image_path} 访问
»» model string false none 分析模型名称
»» created_at integer(int64) false none 创建时间(毫秒时间戳)
»» updated_at integer(int64) false none 更新时间(毫秒时间戳)
» total integer(int64) false none 总数

GET 获取单个事件详情

GET /events/{id}

请求参数

名称 位置 类型 必选 中文名 说明
id path integer(int64) 事件 ID

返回示例

200 Response

{
  "id": 0,
  "did": "string",
  "cid": "string",
  "started_at": 0,
  "ended_at": 0,
  "label": "string",
  "score": 0.1,
  "zones": "string",
  "image_path": "string",
  "model": "string",
  "created_at": 0,
  "updated_at": 0
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK 成功 Event
404 Not Found 事件不存在 None

PUT 更新事件信息

PUT /events/{id}

Body 请求参数

{
  "ended_at": 0
}

请求参数

名称 位置 类型 必选 中文名 说明
id path integer(int64) 事件 ID
body body EditEventInput none

返回示例

200 Response

{
  "id": 0,
  "did": "string",
  "cid": "string",
  "started_at": 0,
  "ended_at": 0,
  "label": "string",
  "score": 0.1,
  "zones": "string",
  "image_path": "string",
  "model": "string",
  "created_at": 0,
  "updated_at": 0
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK 成功 Event

DELETE 删除事件

DELETE /events/{id}

请求参数

名称 位置 类型 必选 中文名 说明
id path integer(int64) 事件 ID

返回示例

200 Response

{
  "id": 0,
  "did": "string",
  "cid": "string",
  "started_at": 0,
  "ended_at": 0,
  "label": "string",
  "score": 0.1,
  "zones": "string",
  "image_path": "string",
  "model": "string",
  "created_at": 0,
  "updated_at": 0
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK 成功 Event

GET 获取事件快照图片

GET /events/image/{path}

根据事件的 image_path 字段获取快照图片。 路径格式为: {cid}/{filename}.jpg

请求参数

名称 位置 类型 必选 中文名 说明
path path string 图片相对路径(如 ch4w2cz/20260106143003_123456.jpg

返回示例

200 Response

返回结果

状态码 状态码含义 说明 数据模型
200 OK 成功返回图片 Inline
404 Not Found 图片不存在 None

返回数据结构

数据模型

sip 配置

{
  "port": 0,
  "id": "string",
  "host": "string",
  "domain": "string",
  "password": "string"
}

属性

名称 类型 必选 约束 中文名 说明
port integer true none 端口(tcp/udp) none
id string true none 国标 id none
host string true none 主机 ip none
domain string true none 国标域 none
password string true none 全局密码 none

Device

{
  "id": "string",
  "type": "string",
  "device_id": "string",
  "name": "string",
  "transport": "string",
  "stream_mode": 0,
  "ip": "string",
  "port": 0,
  "is_online": true,
  "registered_at": 0,
  "keepalive_at": 0,
  "keepalives": 0,
  "expires": 0,
  "channels": 0,
  "created_at": 0,
  "updated_at": 0,
  "password": "string",
  "address": "string",
  "username": "string",
  "ext": {
    "manufacturer": "string",
    "model": "string",
    "firmware": "string",
    "name": "string",
    "gb_version": "string",
    "zones": [
      {
        "name": "string",
        "coordinates": [
          0.1
        ],
        "color": "string",
        "labels": [
          "string"
        ]
      }
    ],
    "enabled_ai": true
  }
}

属性

名称 类型 必选 约束 中文名 说明
id string false none 设备 ID
type string false none 设备类型GB28181/ONVIF/RTMP/RTSP
device_id string false none 20 位国标编号
name string false none 设备名称
transport string false none 传输协议TCP/UDP
stream_mode integer false none 数据传输模式0:UDP; 1:TCP_PASSIVE; 2:TCP_ACTIVE
ip string false none IP 地址
port integer false none 端口
is_online boolean false none 是否在线
registered_at integer false none 注册时间(毫秒时间戳)
keepalive_at integer false none 心跳时间(毫秒时间戳)
keepalives integer false none 心跳间隔
expires integer false none 注册有效期
channels integer false none 通道数量
created_at integer false none 创建时间(毫秒时间戳)
updated_at integer false none 更新时间(毫秒时间戳)
password string false none 注册密码
address string false none 设备网络地址
username string false none 用户名
ext DeviceExt false none none

Event

{
  "id": 0,
  "did": "string",
  "cid": "string",
  "started_at": 0,
  "ended_at": 0,
  "label": "string",
  "score": 0.1,
  "zones": "string",
  "image_path": "string",
  "model": "string",
  "created_at": 0,
  "updated_at": 0
}

属性

名称 类型 必选 约束 中文名 说明
id integer(int64) false none 事件 ID
did string false none 设备 ID
cid string false none 通道 ID
started_at integer(int64) false none 事件开始时间(毫秒时间戳)
ended_at integer(int64) false none 事件结束时间(毫秒时间戳)
label string false none 检测标签(如 person, car
score number(float) false none 置信度0.0-1.0
zones string false none 检测区域 JSON边界框信息
image_path string false none 图片相对路径,可通过 /events/image/{image_path} 访问
model string false none 分析模型名称
created_at integer(int64) false none 创建时间(毫秒时间戳)
updated_at integer(int64) false none 更新时间(毫秒时间戳)

DeviceWithChannels

{
  "id": "string",
  "type": "string",
  "device_id": "string",
  "name": "string",
  "transport": "string",
  "stream_mode": 0,
  "ip": "string",
  "port": 0,
  "is_online": true,
  "registered_at": 0,
  "keepalive_at": 0,
  "keepalives": 0,
  "expires": 0,
  "channels": 0,
  "created_at": 0,
  "updated_at": 0,
  "password": "string",
  "address": "string",
  "username": "string",
  "ext": {
    "manufacturer": "string",
    "model": "string",
    "firmware": "string",
    "name": "string",
    "gb_version": "string",
    "zones": [
      {
        "name": "string",
        "coordinates": [
          null
        ],
        "color": "string",
        "labels": [
          null
        ]
      }
    ],
    "enabled_ai": true
  },
  "children": [
    {
      "id": "string",
      "did": "string",
      "device_id": "string",
      "channel_id": "string",
      "name": "string",
      "ptztype": 0,
      "is_online": true,
      "is_playing": true,
      "type": "string",
      "app": "string",
      "stream": "string",
      "config": {
        "is_auth_disabled": true,
        "pushed_at": 0,
        "stopped_at": 0,
        "media_server_id": "string",
        "push_addr": "string",
        "source_url": "string",
        "transport": 0,
        "timeout_s": 0,
        "enabled_audio": true,
        "enabled_remove_none_reader": true,
        "enabled_disabled_none_reader": true,
        "stream_key": "string",
        "enabled": true
      },
      "created_at": 0,
      "updated_at": 0,
      "ext": {
        "manufacturer": "string",
        "model": "string",
        "firmware": "string",
        "name": "string",
        "gb_version": "string",
        "zones": [
          null
        ],
        "enabled_ai": true
      }
    }
  ]
}

属性

allOf

名称 类型 必选 约束 中文名 说明
anonymous Device false none none

and

名称 类型 必选 约束 中文名 说明
anonymous object false none none
» children [Channel] false none 子通道列表

EditEventInput

{
  "ended_at": 0
}

属性

名称 类型 必选 约束 中文名 说明
ended_at integer(int64) false none 事件结束时间(毫秒时间戳)

Channel

{
  "id": "string",
  "did": "string",
  "device_id": "string",
  "channel_id": "string",
  "name": "string",
  "ptztype": 0,
  "is_online": true,
  "is_playing": true,
  "type": "string",
  "app": "string",
  "stream": "string",
  "config": {
    "is_auth_disabled": true,
    "pushed_at": 0,
    "stopped_at": 0,
    "media_server_id": "string",
    "push_addr": "string",
    "source_url": "string",
    "transport": 0,
    "timeout_s": 0,
    "enabled_audio": true,
    "enabled_remove_none_reader": true,
    "enabled_disabled_none_reader": true,
    "stream_key": "string",
    "enabled": true
  },
  "created_at": 0,
  "updated_at": 0,
  "ext": {
    "manufacturer": "string",
    "model": "string",
    "firmware": "string",
    "name": "string",
    "gb_version": "string",
    "zones": [
      {
        "name": "string",
        "coordinates": [
          0.1
        ],
        "color": "string",
        "labels": [
          "string"
        ]
      }
    ],
    "enabled_ai": true
  }
}

属性

名称 类型 必选 约束 中文名 说明
id string false none 通道 ID
did string false none 父级设备 ID
device_id string false none 国标编码
channel_id string false none 国标编码
name string false none 通道名称
ptztype integer false none 云台类型
is_online boolean false none 是否在线RTMP/RTSP 表示推流/拉流状态)
is_playing boolean false none 是否播放中
type string false none 通道类型GB28181/ONVIF/RTMP/RTSP
app string false none 应用名RTMP/RTSP
stream string false none 流 IDRTMP/RTSP
config StreamConfig false none 流配置RTMP 推流和 RTSP 拉流代理)
created_at integer false none 创建时间(毫秒时间戳)
updated_at integer false none 更新时间(毫秒时间戳)
ext DeviceExt false none none

DeviceExt

{
  "manufacturer": "string",
  "model": "string",
  "firmware": "string",
  "name": "string",
  "gb_version": "string",
  "zones": [
    {
      "name": "string",
      "coordinates": [
        0.1
      ],
      "color": "string",
      "labels": [
        "string"
      ]
    }
  ],
  "enabled_ai": true
}

属性

名称 类型 必选 约束 中文名 说明
manufacturer string false none 生产厂商
model string false none 型号
firmware string false none 固件版本
name string false none 设备名
gb_version string false none GB 版本
zones [Zone] false none 区域
enabled_ai boolean false none 是否启用 AI

StreamConfig

{
  "is_auth_disabled": true,
  "pushed_at": 0,
  "stopped_at": 0,
  "media_server_id": "string",
  "push_addr": "string",
  "source_url": "string",
  "transport": 0,
  "timeout_s": 0,
  "enabled_audio": true,
  "enabled_remove_none_reader": true,
  "enabled_disabled_none_reader": true,
  "stream_key": "string",
  "enabled": true
}

流配置RTMP 推流和 RTSP 拉流代理)

属性

名称 类型 必选 约束 中文名 说明
is_auth_disabled boolean false none 是否禁用推流鉴权
pushed_at integer false none 最后推流时间(毫秒时间戳)
stopped_at integer false none 最后停止时间(毫秒时间戳)
media_server_id string false none 媒体服务器 ID
push_addr string false none 推流地址(动态生成,仅在查询时返回)
source_url string false none 原始 RTSP URL
transport integer false none 拉流方式0:tcp, 1:udp
timeout_s integer false none 超时时间(秒)
enabled_audio boolean false none 是否启用音频
enabled_remove_none_reader boolean false none 无人观看时删除
enabled_disabled_none_reader boolean false none 无人观看时禁用
stream_key string false none ZLM 返回的 key
enabled boolean false none 是否启用

Zone

{
  "name": "string",
  "coordinates": [
    0.1
  ],
  "color": "string",
  "labels": [
    "string"
  ]
}

属性

名称 类型 必选 约束 中文名 说明
name string false none 区域名称
coordinates [number] false none 坐标
color string false none 颜色,支持 hex 颜色值,如
labels [string] false none 标签

AddDeviceInput

{
  "device_id": "string",
  "username": "string",
  "ip": "string",
  "port": 0,
  "name": "string",
  "password": "string",
  "type": "GB28181"
}

属性

名称 类型 必选 约束 中文名 说明
device_id string false none 20 位国标编号
username string false none 用户名ONVIF 必填)
ip string false none IP 地址ONVIF 必填)
port integer false none 端口ONVIF 必填)
name string false none 设备名称
password string false none 注册密码
type string false none 设备类型GB28181/ONVIF

枚举值

属性
type GB28181
type ONVIF

EditDeviceInput

{
  "device_id": "string",
  "name": "string",
  "password": "string",
  "stream_mode": 0,
  "username": "string",
  "ip": "string",
  "port": 0
}

属性

名称 类型 必选 约束 中文名 说明
device_id string false none 20 位国标编号
name string false none 设备名称
password string false none 注册密码
stream_mode integer false none 数据传输模式
username string false none 用户名
ip string false none IP 地址
port integer false none 端口

EditChannelInput

{
  "device_id": "string",
  "name": "string",
  "ptztype": 0,
  "is_online": true,
  "app": "string",
  "stream": "string",
  "config": {
    "is_auth_disabled": true,
    "pushed_at": 0,
    "stopped_at": 0,
    "media_server_id": "string",
    "push_addr": "string",
    "source_url": "string",
    "transport": 0,
    "timeout_s": 0,
    "enabled_audio": true,
    "enabled_remove_none_reader": true,
    "enabled_disabled_none_reader": true,
    "stream_key": "string",
    "enabled": true
  },
  "ext": {
    "manufacturer": "string",
    "model": "string",
    "firmware": "string",
    "name": "string",
    "gb_version": "string",
    "zones": [
      {
        "name": "string",
        "coordinates": [
          0.1
        ],
        "color": "string",
        "labels": [
          "string"
        ]
      }
    ],
    "enabled_ai": true
  }
}

属性

名称 类型 必选 约束 中文名 说明
device_id string false none 国标编码
name string false none 通道名称
ptztype integer false none 云台类型
is_online boolean false none 是否在线
app string false none 应用名RTMP/RTSP
stream string false none 流 IDRTMP/RTSP
config StreamConfig false none 流配置RTMP 推流和 RTSP 拉流代理)
ext DeviceExt false none none

AddZoneInput

{
  "name": "string",
  "coordinates": [
    0.1
  ],
  "color": "string",
  "labels": [
    "string"
  ]
}

属性

名称 类型 必选 约束 中文名 说明
name string false none 区域名称
coordinates [number] false none 坐标
color string false none 颜色
labels [string] false none 标签

AddChannelInput

{
  "type": "RTMP",
  "name": "string",
  "device_id": "string",
  "device_name": "string",
  "app": "string",
  "stream": "string",
  "config": {
    "is_auth_disabled": true,
    "pushed_at": 0,
    "stopped_at": 0,
    "media_server_id": "string",
    "push_addr": "string",
    "source_url": "string",
    "transport": 0,
    "timeout_s": 0,
    "enabled_audio": true,
    "enabled_remove_none_reader": true,
    "enabled_disabled_none_reader": true,
    "stream_key": "string",
    "enabled": true
  }
}

属性

名称 类型 必选 约束 中文名 说明
type string true none 通道类型(仅支持 RTMP/RTSP
name string true none 通道名称
device_id string false none 可选,关联的父设备 ID与 device_name 二选一)
device_name string false none 可选device_id 不存在时用于创建新设备(与 device_id 二选一)
app string true none 应用名
stream string true none 流 ID
config StreamConfig false none 流配置RTMP 推流和 RTSP 拉流代理)

枚举值

属性
type RTMP
type RTSP

RefreshSnapshotInput

{
  "within_seconds": 0,
  "url": "string"
}

属性

名称 类型 必选 约束 中文名 说明
within_seconds integer false none 指定获取多少秒内创建的快照
url string false none 取快照的链接地址

PlayOutput

{
  "app": "string",
  "stream": "string",
  "items": [
    {
      "label": "string",
      "ws_flv": "string",
      "http_flv": "string",
      "rtmp": "string",
      "rtsp": "string",
      "webrtc": "string",
      "hls": "string"
    }
  ]
}

属性

名称 类型 必选 约束 中文名 说明
app string false none 应用名
stream string false none 流名
items [StreamLiveAddr] false none 播放地址列表

StreamLiveAddr

{
  "label": "string",
  "ws_flv": "string",
  "http_flv": "string",
  "rtmp": "string",
  "rtsp": "string",
  "webrtc": "string",
  "hls": "string"
}

属性

名称 类型 必选 约束 中文名 说明
label string false none 标签
ws_flv string false none WebSocket FLV 地址
http_flv string false none HTTP FLV 地址
rtmp string false none RTMP 地址
rtsp string false none RTSP 地址
webrtc string false none WebRTC 地址
hls string false none HLS 地址