export-1768527071618.md 119 KB

文档

摄像头控制 Controller

MVP API 接口:

  • GET /camera/list 获取摄像头列表
  • GET /camera/{id} 获取摄像头信息
  • POST /camera/switch 切换摄像头通道
  • GET /camera/current 获取当前通道

后台 PTZ 接口(可选):

  • POST /camera/{id}/ptz/start 开始 PTZ 控制
  • POST /camera/{id}/ptz/stop 停止 PTZ 控制

获取摄像头列表

维护人:TG Live

URL

描述:获取摄像头列表

ContentType:application/json

请求参数

Body Parameter
名称 类型 必填 最大长度 描述 示例值
machineId String - 机器 ID(可选) machine_001

请求示例

{
    "machineId": "machine_001"
}

响应参数

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": [
        {
            "cameraId": "cam_001",
            "name": "主摄像头",
            "machineId": "machine_001",
            "status": "ONLINE",
            "capability": "ptz_enabled",
            "ptzSupported": true,
            "channels": [
                {
                    "channelId": "ch_001",
                    "name": "主通道",
                    "rtspUrl": "rtsp://192.168.1.100:554/stream1",
                    "defaultView": true,
                    "status": "ONLINE",
                    "cameraId": "cam_001"
                }
            ]
        }
    ]
}

错误码

获取摄像头信息

维护人:TG Live

URL

描述:获取摄像头信息

ContentType:application/x-www-form-urlencoded;charset=UTF-8

Path 参数

名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data array 响应数据 (ActualType: List)
└ cameraId String - 摄像头 ID cam_001
└ name String - 摄像头名称 主摄像头
└ machineId String - 所属机器 ID machine_001
└ status String - 摄像头状态: ONLINE, OFFLINE ONLINE
└ capability String - 摄像头能力: switch_only, ptz_enabled ptz_enabled
└ ptzSupported Boolean - 是否支持 PTZ true
└ channels List 通道列表 (ActualType: ChannelDTO)
└ channelId String - 通道 ID ch_001
└ name String - 通道名称 主通道
└ rtspUrl String - RTSP 地址 rtsp://192.168.1.100:554/stream1
└ defaultView Boolean - 是否默认视角 true
└ status String - 通道状态: ONLINE, OFFLINE ONLINE
└ cameraId String - 所属摄像头 ID cam_001
名称 必填 描述 示例值
cameraId 摄像头 ID camera_001

请求参数

响应参数

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": {
        "cameraId": "cam_001",
        "name": "主摄像头",
        "machineId": "machine_001",
        "status": "ONLINE",
        "capability": "ptz_enabled",
        "ptzSupported": true,
        "channels": [
            {
                "channelId": "ch_001",
                "name": "主通道",
                "rtspUrl": "rtsp://192.168.1.100:554/stream1",
                "defaultView": true,
                "status": "ONLINE",
                "cameraId": "cam_001"
            }
        ]
    }
}

错误码

切换摄像头通道(MVP 核心)

维护人:TG Live

URL

描述:切换摄像头通道(MVP 核心)

ContentType:application/json

请求参数

Body Parameter
名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data object 响应数据 (ActualType: CameraDTO)
└ cameraId String - 摄像头 ID cam_001
└ name String - 摄像头名称 主摄像头
└ machineId String - 所属机器 ID machine_001
└ status String - 摄像头状态: ONLINE, OFFLINE ONLINE
└ capability String - 摄像头能力: switch_only, ptz_enabled ptz_enabled
└ ptzSupported Boolean - 是否支持 PTZ true
└ channels List 通道列表 (ActualType: ChannelDTO)
└ channelId String - 通道 ID ch_001
└ name String - 通道名称 主通道
└ rtspUrl String - RTSP 地址 rtsp://192.168.1.100:554/stream1
└ defaultView Boolean - 是否默认视角 true
└ status String - 通道状态: ONLINE, OFFLINE ONLINE
└ cameraId String - 所属摄像头 ID cam_001
名称 类型 必填 最大长度 描述 示例值
machineId String - 机器 ID machine_001
channelId String - 目标通道 ID ch_001

请求示例

{
    "machineId": "machine_001",
    "channelId": "ch_001"
}

响应参数

名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data object 响应数据 (ActualType: ChannelDTO)
└ channelId String - 通道 ID ch_001
└ name String - 通道名称 主通道
└ rtspUrl String - RTSP 地址 rtsp://192.168.1.100:554/stream1
└ defaultView Boolean - 是否默认视角 true
└ status String - 通道状态: ONLINE, OFFLINE ONLINE
└ cameraId String - 所属摄像头 ID cam_001

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": {
        "channelId": "ch_001",
        "name": "主通道",
        "rtspUrl": "rtsp://192.168.1.100:554/stream1",
        "defaultView": true,
        "status": "ONLINE",
        "cameraId": "cam_001"
    }
}

错误码

获取当前活动通道

维护人:TG Live

URL

描述:获取当前活动通道

ContentType:application/x-www-form-urlencoded;charset=UTF-8

请求参数

Query Parameter
名称 类型 必填 最大长度 描述 示例值
machineId string - 机器 ID machine_001

响应参数

名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data object 响应数据 (ActualType: ChannelDTO)
└ channelId String - 通道 ID ch_001
└ name String - 通道名称 主通道
└ rtspUrl String - RTSP 地址 rtsp://192.168.1.100:554/stream1
└ defaultView Boolean - 是否默认视角 true
└ status String - 通道状态: ONLINE, OFFLINE ONLINE
└ cameraId String - 所属摄像头 ID cam_001

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": {
        "channelId": "ch_001",
        "name": "主通道",
        "rtspUrl": "rtsp://192.168.1.100:554/stream1",
        "defaultView": true,
        "status": "ONLINE",
        "cameraId": "cam_001"
    }
}

错误码

开始 PTZ 控制(后台专用)

维护人:TG Live

URL

描述:开始 PTZ 控制(后台专用)

ContentType:application/x-www-form-urlencoded;charset=UTF-8

Path 参数

名称 必填 描述 示例值
cameraId 摄像头 ID hikvision_ptz

请求参数

Query Parameter
名称 类型 必填 最大长度 描述 示例值
action string - PTZ 动作 up
speed int32 - 速度(1-100) 50

响应参数

名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data object - 响应数据 (ActualType: Void)

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": {}
}

错误码

停止 PTZ 控制(后台专用)

维护人:TG Live

URL

描述:停止 PTZ 控制(后台专用)

ContentType:application/x-www-form-urlencoded;charset=UTF-8

Path 参数

名称 必填 描述 示例值
cameraId 摄像头 ID hikvision_ptz

请求参数

响应参数

名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data object - 响应数据 (ActualType: Void)

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": {}
}

错误码

PTZ 直接控制(兼容前端 pan/tilt/zoom 方式)

与前端海康调试接口一致:直接传 pan/tilt/zoom 值

维护人:TG Live

URL

描述:PTZ 直接控制(兼容前端 pan/tilt/zoom 方式)

与前端海康调试接口一致:直接传 pan/tilt/zoom 值

ContentType:application/json

Path 参数

名称 必填 描述 示例值
cameraId 摄像头 ID hikvision_ptz

请求参数

Body Parameter
名称 类型 必填 最大长度 描述 示例值
pan Integer 100 水平移动速度
负值向左,正值向右
范围: -100 ~ 100
0
tilt Integer 100 垂直移动速度
负值向下,正值向上
范围: -100 ~ 100
0
zoom Integer 100 缩放速度
负值缩小,正值放大
范围: -100 ~ 100
0
channel Integer - 通道号(可选,默认 1) 0

请求示例

{
    "pan": 0,
    "tilt": 0,
    "zoom": 0,
    "channel": 0
}

响应参数

名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data object - 响应数据 (ActualType: Void)

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": {}
}

错误码

摄像头管理

获取摄像头列表(分页)

维护人:TG Live

URL

描述:获取摄像头列表(分页)

ContentType:application/json

请求参数

Body Parameter
名称 类型 必填 最大长度 描述 示例值
page Integer - 页码 (从 1 开始) 1
size Integer - 每页条数 10
keyword String - 搜索关键词 (模糊匹配名称、ID 等) 摄像头
enabled Boolean - 启用状态过滤 (null=全部, true=启用, false=禁用) true
sortBy String - 排序字段 createdAt
sortDir String - 排序方向 (ASC/DESC) DESC
machineId String - 机器 ID 过滤 machine_001
status String - 在线状态过滤 (ONLINE/OFFLINE) ONLINE

请求示例

{
    "page": 1,
    "size": 10,
    "keyword": "摄像头",
    "enabled": true,
    "sortBy": "createdAt",
    "sortDir": "DESC",
    "machineId": "machine_001",
    "status": "ONLINE"
}

响应参数

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": {
        "list": [
            {
                "id": 1,
                "cameraId": "cam_001",
                "name": "主摄像头",
                "ip": "192.168.1.100",
                "port": 80,
                "username": "admin",
                "brand": "hikvision",
                "capability": "ptz_enabled",
                "status": "ONLINE",
                "machineId": "machine_001",
                "machineName": "1号机",
                "enabled": true,
                "channels": [
                    {
                        "id": 1,
                        "channelId": "ch_001",
                        "name": "主通道",
                        "rtspUrl": "rtsp://192.168.1.100:554/stream1",
                        "defaultView": true,
                        "status": "ONLINE"
                    }
                ],
                "createdAt": "2026-01-07T10:00:00",
                "updatedAt": "2026-01-07T10:00:00"
            }
        ],
        "page": 1,
        "size": 10,
        "total": 100,
        "totalPages": 10,
        "hasNext": true,
        "hasPrevious": false
    }
}

错误码

获取摄像头列表(全部,不分页)

维护人:TG Live

URL

描述:获取摄像头列表(全部,不分页)

ContentType:application/x-www-form-urlencoded;charset=UTF-8

请求参数

Query Parameter
名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data object 响应数据 (ActualType: PageResponse)
└ list List 数据列表 (ActualType: T)
└ id Long - 主键 ID 1
└ cameraId String - 摄像头 ID cam_001
└ name String - 名称 主摄像头
└ ip String - IP 地址 192.168.1.100
└ port Integer - 端口 80
└ username String - 用户名 admin
└ brand String - 品牌 hikvision
└ capability String - 能力: switch_only, ptz_enabled ptz_enabled
└ status String - 状态: ONLINE, OFFLINE ONLINE
└ machineId String - 所属机器 ID machine_001
└ machineName String - 所属机器名称 1 号机
└ enabled Boolean - 是否启用 true
└ channels List 通道列表 (ActualType: ChannelInfoDTO)
└ id Long - 主键 ID 1
└ channelId String - 通道 ID ch_001
└ name String - 通道名称 主通道
└ rtspUrl String - RTSP 地址 rtsp://192.168.1.100:554/stream1
└ defaultView Boolean - 是否默认视角 true
└ status String - 状态: ONLINE, OFFLINE ONLINE
└ createdAt LocalDateTime - 创建时间 2026-01-07T10:00:00
└ updatedAt LocalDateTime - 更新时间 2026-01-07T10:00:00
└ page Integer - 当前页码 (从 1 开始) 1
└ size Integer - 每页条数 10
└ total Long - 总记录数 100
└ totalPages Integer - 总页数 10
└ hasNext Boolean - 是否有下一页 true
└ hasPrevious Boolean - 是否有上一页 false
名称 类型 必填 最大长度 描述 示例值
machineId string - 机器 ID(可选) machine_001

响应参数

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": [
        {
            "id": 1,
            "cameraId": "cam_001",
            "name": "主摄像头",
            "ip": "192.168.1.100",
            "port": 80,
            "username": "admin",
            "brand": "hikvision",
            "capability": "ptz_enabled",
            "status": "ONLINE",
            "machineId": "machine_001",
            "machineName": "1号机",
            "enabled": true,
            "channels": [
                {
                    "id": 1,
                    "channelId": "ch_001",
                    "name": "主通道",
                    "rtspUrl": "rtsp://192.168.1.100:554/stream1",
                    "defaultView": true,
                    "status": "ONLINE"
                }
            ],
            "createdAt": "2026-01-07T10:00:00",
            "updatedAt": "2026-01-07T10:00:00"
        }
    ]
}

错误码

获取摄像头详情

维护人:TG Live

URL

描述:获取摄像头详情

ContentType:application/x-www-form-urlencoded;charset=UTF-8

请求参数

Query Parameter
名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data array 响应数据 (ActualType: List)
└ id Long - 主键 ID 1
└ cameraId String - 摄像头 ID cam_001
└ name String - 名称 主摄像头
└ ip String - IP 地址 192.168.1.100
└ port Integer - 端口 80
└ username String - 用户名 admin
└ brand String - 品牌 hikvision
└ capability String - 能力: switch_only, ptz_enabled ptz_enabled
└ status String - 状态: ONLINE, OFFLINE ONLINE
└ machineId String - 所属机器 ID machine_001
└ machineName String - 所属机器名称 1 号机
└ enabled Boolean - 是否启用 true
└ channels List 通道列表 (ActualType: ChannelInfoDTO)
└ id Long - 主键 ID 1
└ channelId String - 通道 ID ch_001
└ name String - 通道名称 主通道
└ rtspUrl String - RTSP 地址 rtsp://192.168.1.100:554/stream1
└ defaultView Boolean - 是否默认视角 true
└ status String - 状态: ONLINE, OFFLINE ONLINE
└ createdAt LocalDateTime - 创建时间 2026-01-07T10:00:00
└ updatedAt LocalDateTime - 更新时间 2026-01-07T10:00:00
名称 类型 必填 最大长度 描述 示例值
id int64 - 摄像头主键 ID 1

响应参数

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": {
        "id": 1,
        "cameraId": "cam_001",
        "name": "主摄像头",
        "ip": "192.168.1.100",
        "port": 80,
        "username": "admin",
        "brand": "hikvision",
        "capability": "ptz_enabled",
        "status": "ONLINE",
        "machineId": "machine_001",
        "machineName": "1号机",
        "enabled": true,
        "channels": [
            {
                "id": 1,
                "channelId": "ch_001",
                "name": "主通道",
                "rtspUrl": "rtsp://192.168.1.100:554/stream1",
                "defaultView": true,
                "status": "ONLINE"
            }
        ],
        "createdAt": "2026-01-07T10:00:00",
        "updatedAt": "2026-01-07T10:00:00"
    }
}

错误码

添加摄像头

维护人:TG Live

URL

描述:添加摄像头

ContentType:application/json

请求参数

Body Parameter

| 名称 | 类型 | 必填 | 最大长度 | 描述 | 示例值 | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | cameraId | String | 是 | 50 | 摄像头 ID(唯一标识)
Validate[max: 50; ] | cam_001 | | name | String | 是 | 100 | 名称
Validate[max: 100; ] | 主摄像头 | | ip | String | 是 | - | IP 地址
Validate[regexp: ^((25[0-5] | 2[0-4]\d | [01]?\d\d?)\.){3}(25[0-5] | 2[0-4]\d | [01]?\d\d?)$; ] | 192.168.1.100 | | port | Integer | 否 | - | 端口 | 80 | | username | String | 否 | 50 | 用户名
Validate[max: 50; ] | admin | | password | String | 否 | 100 | 密码
Validate[max: 100; ] | password123 | | brand | String | 否 | 30 | 品牌
Validate[max: 30; ] | hikvision | | capability | String | 否 | - | 能力: switch_only, ptz_enabled
Validate[regexp: ^(switch_only | ptz_enabled)$; ] | ptz_enabled | | machineId | String | 否 | - | 所属机器 ID | machine_001 | | channels | List | 否 | | 通道列表 (ActualType: ChannelAddRequest) | | | └ channelId | String | 是 | - | 通道 ID | ch_001 | | └ name | String | 是 | - | 通道名称 | 主通道 | | └ rtspUrl | String | 否 | - | RTSP 地址 | rtsp://192.168.1.100:554/stream1 | | └ defaultView | Boolean | 否 | - | 是否默认视角 | true |

请求示例

{
    "cameraId": "cam_001",
    "name": "主摄像头",
    "ip": "192.168.1.100",
    "port": 80,
    "username": "admin",
    "password": "password123",
    "brand": "hikvision",
    "capability": "ptz_enabled",
    "machineId": "machine_001",
    "channels": [
        {
            "channelId": "ch_001",
            "name": "主通道",
            "rtspUrl": "rtsp://192.168.1.100:554/stream1",
            "defaultView": true
        }
    ]
}

响应参数

名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data object 响应数据 (ActualType: CameraInfoDTO)
└ id Long - 主键 ID 1
└ cameraId String - 摄像头 ID cam_001
└ name String - 名称 主摄像头
└ ip String - IP 地址 192.168.1.100
└ port Integer - 端口 80
└ username String - 用户名 admin
└ brand String - 品牌 hikvision
└ capability String - 能力: switch_only, ptz_enabled ptz_enabled
└ status String - 状态: ONLINE, OFFLINE ONLINE
└ machineId String - 所属机器 ID machine_001
└ machineName String - 所属机器名称 1 号机
└ enabled Boolean - 是否启用 true
└ channels List 通道列表 (ActualType: ChannelInfoDTO)
└ id Long - 主键 ID 1
└ channelId String - 通道 ID ch_001
└ name String - 通道名称 主通道
└ rtspUrl String - RTSP 地址 rtsp://192.168.1.100:554/stream1
└ defaultView Boolean - 是否默认视角 true
└ status String - 状态: ONLINE, OFFLINE ONLINE
└ createdAt LocalDateTime - 创建时间 2026-01-07T10:00:00
└ updatedAt LocalDateTime - 更新时间 2026-01-07T10:00:00

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": {
        "id": 1,
        "cameraId": "cam_001",
        "name": "主摄像头",
        "ip": "192.168.1.100",
        "port": 80,
        "username": "admin",
        "brand": "hikvision",
        "capability": "ptz_enabled",
        "status": "ONLINE",
        "machineId": "machine_001",
        "machineName": "1号机",
        "enabled": true,
        "channels": [
            {
                "id": 1,
                "channelId": "ch_001",
                "name": "主通道",
                "rtspUrl": "rtsp://192.168.1.100:554/stream1",
                "defaultView": true,
                "status": "ONLINE"
            }
        ],
        "createdAt": "2026-01-07T10:00:00",
        "updatedAt": "2026-01-07T10:00:00"
    }
}

错误码

更新摄像头

维护人:TG Live

URL

描述:更新摄像头

ContentType:application/json

请求参数

Body Parameter
名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data object 响应数据 (ActualType: CameraInfoDTO)
└ id Long - 主键 ID 1
└ cameraId String - 摄像头 ID cam_001
└ name String - 名称 主摄像头
└ ip String - IP 地址 192.168.1.100
└ port Integer - 端口 80
└ username String - 用户名 admin
└ brand String - 品牌 hikvision
└ capability String - 能力: switch_only, ptz_enabled ptz_enabled
└ status String - 状态: ONLINE, OFFLINE ONLINE
└ machineId String - 所属机器 ID machine_001
└ machineName String - 所属机器名称 1 号机
└ enabled Boolean - 是否启用 true
└ channels List 通道列表 (ActualType: ChannelInfoDTO)
└ id Long - 主键 ID 1
└ channelId String - 通道 ID ch_001
└ name String - 通道名称 主通道
└ rtspUrl String - RTSP 地址 rtsp://192.168.1.100:554/stream1
└ defaultView Boolean - 是否默认视角 true
└ status String - 状态: ONLINE, OFFLINE ONLINE
└ createdAt LocalDateTime - 创建时间 2026-01-07T10:00:00
└ updatedAt LocalDateTime - 更新时间 2026-01-07T10:00:00

请求示例

{
    "id": 1,
    "name": "主摄像头",
    "ip": "192.168.1.100",
    "port": 80,
    "username": "admin",
    "password": "password123",
    "brand": "hikvision",
    "capability": "ptz_enabled",
    "machineId": "machine_001",
    "enabled": true,
    "channels": [
        {
            "id": 1,
            "channelId": "ch_001",
            "name": "主通道",
            "rtspUrl": "rtsp://192.168.1.100:554/stream1",
            "defaultView": true
        }
    ]
}

响应参数

名称 类型 必填 最大长度 描述 示例值
id Long - 摄像头数据库 ID 1
name String - 名称 主摄像头
ip String - IP 地址 192.168.1.100
port Integer - 端口 80
username String - 用户名 admin
password String - 密码(不传或为空则不修改) password123
brand String - 品牌 hikvision
capability String - 能力: switch_only, ptz_enabled ptz_enabled
machineId String - 所属机器 ID machine_001
enabled Boolean - 启用状态 true
channels List 通道列表 (ActualType: ChannelUpdateRequest)
└ id Long - 通道数据库 ID 1
└ channelId String - 通道 ID ch_001
└ name String - 通道名称 主通道
└ rtspUrl String - RTSP 地址 rtsp://192.168.1.100:554/stream1
└ defaultView Boolean - 是否默认视角 true

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": {
        "id": 1,
        "cameraId": "cam_001",
        "name": "主摄像头",
        "ip": "192.168.1.100",
        "port": 80,
        "username": "admin",
        "brand": "hikvision",
        "capability": "ptz_enabled",
        "status": "ONLINE",
        "machineId": "machine_001",
        "machineName": "1号机",
        "enabled": true,
        "channels": [
            {
                "id": 1,
                "channelId": "ch_001",
                "name": "主通道",
                "rtspUrl": "rtsp://192.168.1.100:554/stream1",
                "defaultView": true,
                "status": "ONLINE"
            }
        ],
        "createdAt": "2026-01-07T10:00:00",
        "updatedAt": "2026-01-07T10:00:00"
    }
}

错误码

删除摄像头

维护人:TG Live

URL

描述:删除摄像头

ContentType:application/x-www-form-urlencoded;charset=UTF-8

请求参数

Query Parameter
名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data object 响应数据 (ActualType: CameraInfoDTO)
└ id Long - 主键 ID 1
└ cameraId String - 摄像头 ID cam_001
└ name String - 名称 主摄像头
└ ip String - IP 地址 192.168.1.100
└ port Integer - 端口 80
└ username String - 用户名 admin
└ brand String - 品牌 hikvision
└ capability String - 能力: switch_only, ptz_enabled ptz_enabled
└ status String - 状态: ONLINE, OFFLINE ONLINE
└ machineId String - 所属机器 ID machine_001
└ machineName String - 所属机器名称 1 号机
└ enabled Boolean - 是否启用 true
└ channels List 通道列表 (ActualType: ChannelInfoDTO)
└ id Long - 主键 ID 1
└ channelId String - 通道 ID ch_001
└ name String - 通道名称 主通道
└ rtspUrl String - RTSP 地址 rtsp://192.168.1.100:554/stream1
└ defaultView Boolean - 是否默认视角 true
└ status String - 状态: ONLINE, OFFLINE ONLINE
└ createdAt LocalDateTime - 创建时间 2026-01-07T10:00:00
└ updatedAt LocalDateTime - 更新时间 2026-01-07T10:00:00
名称 类型 必填 最大长度 描述 示例值
id int64 - 摄像头主键 ID 1

响应参数

名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data object - 响应数据 (ActualType: Void)

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": {}
}

错误码

检测摄像头连通性

维护人:TG Live

URL

描述:检测摄像头连通性

ContentType:application/x-www-form-urlencoded;charset=UTF-8

请求参数

Query Parameter
名称 类型 必填 最大长度 描述 示例值
id int64 - 摄像头主键 ID 1

响应参数

名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data boolean - 响应数据 (ActualType: Boolean)

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": false
}

错误码

获取摄像头快照

维护人:TG Live

URL

描述:获取摄像头快照

ContentType:application/x-www-form-urlencoded;charset=UTF-8

请求参数

Query Parameter
名称 类型 必填 最大长度 描述 示例值
id int64 - 摄像头主键 ID 1

响应参数

名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data array 响应数据 (ActualType: byte)
└ - array[byte[]] - array of byte[]

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": [
        {
            " -": ""
        }
    ]
}

错误码

PTZ 控制

维护人:TG Live

URL

描述:PTZ 控制

ContentType:application/json

请求参数

Body Parameter
名称 类型 必填 最大长度 描述 示例值
id Long - 摄像头 ID 1
action String - PTZ 动作 UP
speed Float - 速度 (0.0 - 1.0) 0.5

请求示例

{
    "id": 1,
    "action": "UP",
    "speed": 0.5
}

响应参数

名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data boolean - 响应数据 (ActualType: Boolean)

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": false
}

错误码

机器管理

获取机器列表(分页)

维护人:TG Live

URL

描述:获取机器列表(分页)

ContentType:application/json

请求参数

Body Parameter
名称 类型 必填 最大长度 描述 示例值
page Integer - 页码 (从 1 开始) 1
size Integer - 每页条数 10
keyword String - 搜索关键词 (模糊匹配名称、ID 等) 摄像头
enabled Boolean - 启用状态过滤 (null=全部, true=启用, false=禁用) true
sortBy String - 排序字段 createdAt
sortDir String - 排序方向 (ASC/DESC) DESC

请求示例

{
    "page": 1,
    "size": 10,
    "keyword": "摄像头",
    "enabled": true,
    "sortBy": "createdAt",
    "sortDir": "DESC"
}

响应参数

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": {
        "list": [
            {
                "id": 1,
                "machineId": "machine_001",
                "name": "1号机",
                "location": "A区1楼",
                "description": "主力机器",
                "enabled": true,
                "cameraCount": 3,
                "createdAt": "2026-01-07T10:00:00",
                "updatedAt": "2026-01-07T10:00:00"
            }
        ],
        "page": 1,
        "size": 10,
        "total": 100,
        "totalPages": 10,
        "hasNext": true,
        "hasPrevious": false
    }
}

错误码

获取机器列表(全部,不分页)

维护人:TG Live

URL

描述:获取机器列表(全部,不分页)

ContentType:application/x-www-form-urlencoded;charset=UTF-8

请求参数

响应参数

名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data object 响应数据 (ActualType: PageResponse)
└ list List 数据列表 (ActualType: T)
└ id Long - 主键 ID 1
└ machineId String - 机器 ID machine_001
└ name String - 名称 1 号机
└ location String - 位置 A 区 1 楼
└ description String - 描述 主力机器
└ enabled Boolean - 是否启用 true
└ cameraCount Integer - 摄像头数量 3
└ createdAt LocalDateTime - 创建时间 2026-01-07T10:00:00
└ updatedAt LocalDateTime - 更新时间 2026-01-07T10:00:00
└ page Integer - 当前页码 (从 1 开始) 1
└ size Integer - 每页条数 10
└ total Long - 总记录数 100
└ totalPages Integer - 总页数 10
└ hasNext Boolean - 是否有下一页 true
└ hasPrevious Boolean - 是否有上一页 false
名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data array 响应数据 (ActualType: List)
└ id Long - 主键 ID 1
└ machineId String - 机器 ID machine_001
└ name String - 名称 1 号机
└ location String - 位置 A 区 1 楼
└ description String - 描述 主力机器
└ enabled Boolean - 是否启用 true
└ cameraCount Integer - 摄像头数量 3
└ createdAt LocalDateTime - 创建时间 2026-01-07T10:00:00
└ updatedAt LocalDateTime - 更新时间 2026-01-07T10:00:00

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": [
        {
            "id": 1,
            "machineId": "machine_001",
            "name": "1号机",
            "location": "A区1楼",
            "description": "主力机器",
            "enabled": true,
            "cameraCount": 3,
            "createdAt": "2026-01-07T10:00:00",
            "updatedAt": "2026-01-07T10:00:00"
        }
    ]
}

错误码

获取机器详情

维护人:TG Live

URL

描述:获取机器详情

ContentType:application/x-www-form-urlencoded;charset=UTF-8

请求参数

Query Parameter
名称 类型 必填 最大长度 描述 示例值
id int64 - 机器主键 ID 1

响应参数

名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data object 响应数据 (ActualType: MachineDTO)
└ id Long - 主键 ID 1
└ machineId String - 机器 ID machine_001
└ name String - 名称 1 号机
└ location String - 位置 A 区 1 楼
└ description String - 描述 主力机器
└ enabled Boolean - 是否启用 true
└ cameraCount Integer - 摄像头数量 3
└ createdAt LocalDateTime - 创建时间 2026-01-07T10:00:00
└ updatedAt LocalDateTime - 更新时间 2026-01-07T10:00:00

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": {
        "id": 1,
        "machineId": "machine_001",
        "name": "1号机",
        "location": "A区1楼",
        "description": "主力机器",
        "enabled": true,
        "cameraCount": 3,
        "createdAt": "2026-01-07T10:00:00",
        "updatedAt": "2026-01-07T10:00:00"
    }
}

错误码

添加机器

维护人:TG Live

URL

描述:添加机器

ContentType:application/json

请求参数

Body Parameter
名称 类型 必填 最大长度 描述 示例值
machineId String 50 机器 ID(唯一标识)
Validate[max: 50; ]
machine_001
name String 100 名称
Validate[max: 100; ]
1 号机
location String 200 位置
Validate[max: 200; ]
A 区 1 楼
description String 500 描述
Validate[max: 500; ]
主力机器

请求示例

{
    "machineId": "machine_001",
    "name": "1号机",
    "location": "A区1楼",
    "description": "主力机器"
}

响应参数

名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data object 响应数据 (ActualType: MachineDTO)
└ id Long - 主键 ID 1
└ machineId String - 机器 ID machine_001
└ name String - 名称 1 号机
└ location String - 位置 A 区 1 楼
└ description String - 描述 主力机器
└ enabled Boolean - 是否启用 true
└ cameraCount Integer - 摄像头数量 3
└ createdAt LocalDateTime - 创建时间 2026-01-07T10:00:00
└ updatedAt LocalDateTime - 更新时间 2026-01-07T10:00:00

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": {
        "id": 1,
        "machineId": "machine_001",
        "name": "1号机",
        "location": "A区1楼",
        "description": "主力机器",
        "enabled": true,
        "cameraCount": 3,
        "createdAt": "2026-01-07T10:00:00",
        "updatedAt": "2026-01-07T10:00:00"
    }
}

错误码

更新机器

维护人:TG Live

URL

描述:更新机器

ContentType:application/json

请求参数

Body Parameter
名称 类型 必填 最大长度 描述 示例值
id Long - 机器数据库 ID 1
name String - 名称 1 号机
location String - 位置 A 区 1 楼
description String - 描述 主力机器
enabled Boolean - 启用状态 true

请求示例

{
    "id": 1,
    "name": "1号机",
    "location": "A区1楼",
    "description": "主力机器",
    "enabled": true
}

响应参数

名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data object 响应数据 (ActualType: MachineDTO)
└ id Long - 主键 ID 1
└ machineId String - 机器 ID machine_001
└ name String - 名称 1 号机
└ location String - 位置 A 区 1 楼
└ description String - 描述 主力机器
└ enabled Boolean - 是否启用 true
└ cameraCount Integer - 摄像头数量 3
└ createdAt LocalDateTime - 创建时间 2026-01-07T10:00:00
└ updatedAt LocalDateTime - 更新时间 2026-01-07T10:00:00

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": {
        "id": 1,
        "machineId": "machine_001",
        "name": "1号机",
        "location": "A区1楼",
        "description": "主力机器",
        "enabled": true,
        "cameraCount": 3,
        "createdAt": "2026-01-07T10:00:00",
        "updatedAt": "2026-01-07T10:00:00"
    }
}

错误码

删除机器

维护人:TG Live

URL

描述:删除机器

ContentType:application/x-www-form-urlencoded;charset=UTF-8

请求参数

Query Parameter
名称 类型 必填 最大长度 描述 示例值
id int64 - 机器主键 ID 1

响应参数

名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data object - 响应数据 (ActualType: Void)

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": {}
}

错误码

推流通道管理

获取推流通道列表(分页)

维护人:TG Live

URL

描述:获取推流通道列表(分页)

ContentType:application/json

请求参数

Body Parameter
名称 类型 必填 最大长度 描述 示例值
page Integer - 页码 (从 1 开始) 1
size Integer - 每页条数 10
keyword String - 搜索关键词 (模糊匹配名称、ID 等) 摄像头
enabled Boolean - 启用状态过滤 (null=全部, true=启用, false=禁用) true
sortBy String - 排序字段 createdAt
sortDir String - 排序方向 (ASC/DESC) DESC

请求示例

{
    "page": 1,
    "size": 10,
    "keyword": "摄像头",
    "enabled": true,
    "sortBy": "createdAt",
    "sortDir": "DESC"
}

响应参数

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": {
        "list": [
            {
                "id": 1,
                "channelId": "cf_channel_001",
                "name": "主推流通道",
                "accountId": "5544eac7cfb260d4fec9467d49513cea",
                "liveInputId": "b51e49994b6fd9e56b6f1fdfcd339fe6",
                "customerSubdomain": "customer-pj89kn2ke2tcuh19",
                "mode": "WHIP",
                "whipUrl": "https://customer-pj89kn2ke2tcuh19.cloudflarestream.com/b51e49994b6fd9e56b6f1fdfcd339fe6/webRTC/publish",
                "rtmpsUrl": "rtmps://live.cloudflare.com:443/live/xxx",
                "hlsPlaybackUrl": "https://customer-pj89kn2ke2tcuh19.cloudflarestream.com/b51e49994b6fd9e56b6f1fdfcd339fe6/manifest/video.m3u8",
                "whepPlaybackUrl": "https://customer-pj89kn2ke2tcuh19.cloudflarestream.com/b51e49994b6fd9e56b6f1fdfcd339fe6/webRTC/play",
                "recordingEnabled": false,
                "enabled": true,
                "createdAt": "2024-01-15T10:30:00",
                "updatedAt": "2024-01-15T10:30:00"
            }
        ],
        "page": 1,
        "size": 10,
        "total": 100,
        "totalPages": 10,
        "hasNext": true,
        "hasPrevious": false
    }
}

错误码

获取推流通道列表(全部,不分页)

维护人:TG Live

URL

描述:获取推流通道列表(全部,不分页)

ContentType:application/x-www-form-urlencoded;charset=UTF-8

请求参数

响应参数

名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data object 响应数据 (ActualType: PageResponse)
└ list List 数据列表 (ActualType: T)
└ id Long - 主键 ID 1
└ channelId String - 通道 ID cf_channel_001
└ name String - 通道名称 主推流通道
└ accountId String - Cloudflare 账户 ID 5544eac7cf
└ liveInputId String - Cloudflare Live Input ID b51e49994b
└ customerSubdomain String - 客户子域名 customer-pj89kn2ke2tcuh19
└ mode String - 推流模式: WHIP / RTMPS / SRT WHIP
└ whipUrl String - WHIP 推流地址 https://customer-pj89kn2ke2tcuh19.cloudflarestream.com/b51e49994b6fd9e56b6f1fdfcd339fe6/webRTC/publish
└ rtmpsUrl String - RTMPS 推流地址 rtmps://live.cloudflare.com:443/live/xxx
└ hlsPlaybackUrl String - HLS 播放地址 https://customer-pj89kn2ke2tcuh19.cloudflarestream.com/b51e49994b6fd9e56b6f1fdfcd339fe6/manifest/video.m3u8
└ whepPlaybackUrl String - WHEP 播放地址 (WebRTC) https://customer-pj89kn2ke2tcuh19.cloudflarestream.com/b51e49994b6fd9e56b6f1fdfcd339fe6/webRTC/play
└ recordingEnabled Boolean - 是否启用录制 false
└ enabled Boolean - 是否启用 true
└ createdAt LocalDateTime - 创建时间 2024-01-15T10:30:00
└ updatedAt LocalDateTime - 更新时间 2024-01-15T10:30:00
└ page Integer - 当前页码 (从 1 开始) 1
└ size Integer - 每页条数 10
└ total Long - 总记录数 100
└ totalPages Integer - 总页数 10
└ hasNext Boolean - 是否有下一页 true
└ hasPrevious Boolean - 是否有上一页 false
名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data array 响应数据 (ActualType: List)
└ id Long - 主键 ID 1
└ channelId String - 通道 ID cf_channel_001
└ name String - 通道名称 主推流通道
└ accountId String - Cloudflare 账户 ID 5544eac7cf
└ liveInputId String - Cloudflare Live Input ID b51e49994b
└ customerSubdomain String - 客户子域名 customer-pj89kn2ke2tcuh19
└ mode String - 推流模式: WHIP / RTMPS / SRT WHIP
└ whipUrl String - WHIP 推流地址 https://customer-pj89kn2ke2tcuh19.cloudflarestream.com/b51e49994b6fd9e56b6f1fdfcd339fe6/webRTC/publish
└ rtmpsUrl String - RTMPS 推流地址 rtmps://live.cloudflare.com:443/live/xxx
└ hlsPlaybackUrl String - HLS 播放地址 https://customer-pj89kn2ke2tcuh19.cloudflarestream.com/b51e49994b6fd9e56b6f1fdfcd339fe6/manifest/video.m3u8
└ whepPlaybackUrl String - WHEP 播放地址 (WebRTC) https://customer-pj89kn2ke2tcuh19.cloudflarestream.com/b51e49994b6fd9e56b6f1fdfcd339fe6/webRTC/play
└ recordingEnabled Boolean - 是否启用录制 false
└ enabled Boolean - 是否启用 true
└ createdAt LocalDateTime - 创建时间 2024-01-15T10:30:00
└ updatedAt LocalDateTime - 更新时间 2024-01-15T10:30:00

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": [
        {
            "id": 1,
            "channelId": "cf_channel_001",
            "name": "主推流通道",
            "accountId": "5544eac7cfb260d4fec9467d49513cea",
            "liveInputId": "b51e49994b6fd9e56b6f1fdfcd339fe6",
            "customerSubdomain": "customer-pj89kn2ke2tcuh19",
            "mode": "WHIP",
            "whipUrl": "https://customer-pj89kn2ke2tcuh19.cloudflarestream.com/b51e49994b6fd9e56b6f1fdfcd339fe6/webRTC/publish",
            "rtmpsUrl": "rtmps://live.cloudflare.com:443/live/xxx",
            "hlsPlaybackUrl": "https://customer-pj89kn2ke2tcuh19.cloudflarestream.com/b51e49994b6fd9e56b6f1fdfcd339fe6/manifest/video.m3u8",
            "whepPlaybackUrl": "https://customer-pj89kn2ke2tcuh19.cloudflarestream.com/b51e49994b6fd9e56b6f1fdfcd339fe6/webRTC/play",
            "recordingEnabled": false,
            "enabled": true,
            "createdAt": "2024-01-15T10:30:00",
            "updatedAt": "2024-01-15T10:30:00"
        }
    ]
}

错误码

获取推流通道详情

维护人:TG Live

URL

描述:获取推流通道详情

ContentType:application/x-www-form-urlencoded;charset=UTF-8

请求参数

Query Parameter
名称 类型 必填 最大长度 描述 示例值
id int64 - 推流通道主键 ID 1

响应参数

名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data object 响应数据 (ActualType: StreamChannelInfoDTO)
└ id Long - 主键 ID 1
└ channelId String - 通道 ID cf_channel_001
└ name String - 通道名称 主推流通道
└ accountId String - Cloudflare 账户 ID 5544eac7cf
└ liveInputId String - Cloudflare Live Input ID b51e49994b
└ customerSubdomain String - 客户子域名 customer-pj89kn2ke2tcuh19
└ mode String - 推流模式: WHIP / RTMPS / SRT WHIP
└ whipUrl String - WHIP 推流地址 https://customer-pj89kn2ke2tcuh19.cloudflarestream.com/b51e49994b6fd9e56b6f1fdfcd339fe6/webRTC/publish
└ rtmpsUrl String - RTMPS 推流地址 rtmps://live.cloudflare.com:443/live/xxx
└ hlsPlaybackUrl String - HLS 播放地址 https://customer-pj89kn2ke2tcuh19.cloudflarestream.com/b51e49994b6fd9e56b6f1fdfcd339fe6/manifest/video.m3u8
└ whepPlaybackUrl String - WHEP 播放地址 (WebRTC) https://customer-pj89kn2ke2tcuh19.cloudflarestream.com/b51e49994b6fd9e56b6f1fdfcd339fe6/webRTC/play
└ recordingEnabled Boolean - 是否启用录制 false
└ enabled Boolean - 是否启用 true
└ createdAt LocalDateTime - 创建时间 2024-01-15T10:30:00
└ updatedAt LocalDateTime - 更新时间 2024-01-15T10:30:00

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": {
        "id": 1,
        "channelId": "cf_channel_001",
        "name": "主推流通道",
        "accountId": "5544eac7cfb260d4fec9467d49513cea",
        "liveInputId": "b51e49994b6fd9e56b6f1fdfcd339fe6",
        "customerSubdomain": "customer-pj89kn2ke2tcuh19",
        "mode": "WHIP",
        "whipUrl": "https://customer-pj89kn2ke2tcuh19.cloudflarestream.com/b51e49994b6fd9e56b6f1fdfcd339fe6/webRTC/publish",
        "rtmpsUrl": "rtmps://live.cloudflare.com:443/live/xxx",
        "hlsPlaybackUrl": "https://customer-pj89kn2ke2tcuh19.cloudflarestream.com/b51e49994b6fd9e56b6f1fdfcd339fe6/manifest/video.m3u8",
        "whepPlaybackUrl": "https://customer-pj89kn2ke2tcuh19.cloudflarestream.com/b51e49994b6fd9e56b6f1fdfcd339fe6/webRTC/play",
        "recordingEnabled": false,
        "enabled": true,
        "createdAt": "2024-01-15T10:30:00",
        "updatedAt": "2024-01-15T10:30:00"
    }
}

错误码

添加推流通道

维护人:TG Live

URL

描述:添加推流通道

ContentType:application/json

请求参数

Body Parameter
名称 类型 必填 最大长度 描述 示例值
channelId String - 通道 ID cf_channel_001
name String - 通道名称 主推流通道
accountId String - Cloudflare 账户 ID 5544eac7cf
apiToken String - Cloudflare API Token d_f4nGUKFlB66MMMIS3NfVlUbn0A0p4jlrW5BbZW
liveInputId String - Cloudflare Live Input ID b51e49994b
streamKey String - 流密钥 (用于 RTMPS) 8c108b4025d3278b188b443e8a6c5503kb51e49994b6fd9e56b6f1fdfcd339fe6
customerSubdomain String - 客户子域名 customer-pj89kn2ke2tcuh19
mode String - 推流模式: WHIP / RTMPS / SRT WHIP
recordingEnabled Boolean - 是否启用录制 false

请求示例

{
    "channelId": "cf_channel_001",
    "name": "主推流通道",
    "accountId": "5544eac7cfb260d4fec9467d49513cea",
    "apiToken": "d_f4nGUKFlB66MMMIS3NfVlUbn0A0p4jlrW5BbZW",
    "liveInputId": "b51e49994b6fd9e56b6f1fdfcd339fe6",
    "streamKey": "8c108b4025d3278b188b443e8a6c5503kb51e49994b6fd9e56b6f1fdfcd339fe6",
    "customerSubdomain": "customer-pj89kn2ke2tcuh19",
    "mode": "WHIP",
    "recordingEnabled": false
}

响应参数

名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data object 响应数据 (ActualType: StreamChannelInfoDTO)
└ id Long - 主键 ID 1
└ channelId String - 通道 ID cf_channel_001
└ name String - 通道名称 主推流通道
└ accountId String - Cloudflare 账户 ID 5544eac7cf
└ liveInputId String - Cloudflare Live Input ID b51e49994b
└ customerSubdomain String - 客户子域名 customer-pj89kn2ke2tcuh19
└ mode String - 推流模式: WHIP / RTMPS / SRT WHIP
└ whipUrl String - WHIP 推流地址 https://customer-pj89kn2ke2tcuh19.cloudflarestream.com/b51e49994b6fd9e56b6f1fdfcd339fe6/webRTC/publish
└ rtmpsUrl String - RTMPS 推流地址 rtmps://live.cloudflare.com:443/live/xxx
└ hlsPlaybackUrl String - HLS 播放地址 https://customer-pj89kn2ke2tcuh19.cloudflarestream.com/b51e49994b6fd9e56b6f1fdfcd339fe6/manifest/video.m3u8
└ whepPlaybackUrl String - WHEP 播放地址 (WebRTC) https://customer-pj89kn2ke2tcuh19.cloudflarestream.com/b51e49994b6fd9e56b6f1fdfcd339fe6/webRTC/play
└ recordingEnabled Boolean - 是否启用录制 false
└ enabled Boolean - 是否启用 true
└ createdAt LocalDateTime - 创建时间 2024-01-15T10:30:00
└ updatedAt LocalDateTime - 更新时间 2024-01-15T10:30:00

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": {
        "id": 1,
        "channelId": "cf_channel_001",
        "name": "主推流通道",
        "accountId": "5544eac7cfb260d4fec9467d49513cea",
        "liveInputId": "b51e49994b6fd9e56b6f1fdfcd339fe6",
        "customerSubdomain": "customer-pj89kn2ke2tcuh19",
        "mode": "WHIP",
        "whipUrl": "https://customer-pj89kn2ke2tcuh19.cloudflarestream.com/b51e49994b6fd9e56b6f1fdfcd339fe6/webRTC/publish",
        "rtmpsUrl": "rtmps://live.cloudflare.com:443/live/xxx",
        "hlsPlaybackUrl": "https://customer-pj89kn2ke2tcuh19.cloudflarestream.com/b51e49994b6fd9e56b6f1fdfcd339fe6/manifest/video.m3u8",
        "whepPlaybackUrl": "https://customer-pj89kn2ke2tcuh19.cloudflarestream.com/b51e49994b6fd9e56b6f1fdfcd339fe6/webRTC/play",
        "recordingEnabled": false,
        "enabled": true,
        "createdAt": "2024-01-15T10:30:00",
        "updatedAt": "2024-01-15T10:30:00"
    }
}

错误码

更新推流通道

维护人:TG Live

URL

描述:更新推流通道

ContentType:application/json

请求参数

Body Parameter
名称 类型 必填 最大长度 描述 示例值
id Long - 主键 ID 1
name String - 通道名称 主推流通道
accountId String - Cloudflare 账户 ID 5544eac7cf
apiToken String - Cloudflare API Token d_f4nGUKFlB66MMMIS3NfVlUbn0A0p4jlrW5BbZW
liveInputId String - Cloudflare Live Input ID b51e49994b
streamKey String - 流密钥 (用于 RTMPS) 8c108b4025d3278b188b443e8a6c5503kb51e49994b6fd9e56b6f1fdfcd339fe6
customerSubdomain String - 客户子域名 customer-pj89kn2ke2tcuh19
mode String - 推流模式: WHIP / RTMPS / SRT WHIP
recordingEnabled Boolean - 是否启用录制 false
enabled Boolean - 是否启用 true

请求示例

{
    "id": 1,
    "name": "主推流通道",
    "accountId": "5544eac7cfb260d4fec9467d49513cea",
    "apiToken": "d_f4nGUKFlB66MMMIS3NfVlUbn0A0p4jlrW5BbZW",
    "liveInputId": "b51e49994b6fd9e56b6f1fdfcd339fe6",
    "streamKey": "8c108b4025d3278b188b443e8a6c5503kb51e49994b6fd9e56b6f1fdfcd339fe6",
    "customerSubdomain": "customer-pj89kn2ke2tcuh19",
    "mode": "WHIP",
    "recordingEnabled": false,
    "enabled": true
}

响应参数

名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data object 响应数据 (ActualType: StreamChannelInfoDTO)
└ id Long - 主键 ID 1
└ channelId String - 通道 ID cf_channel_001
└ name String - 通道名称 主推流通道
└ accountId String - Cloudflare 账户 ID 5544eac7cf
└ liveInputId String - Cloudflare Live Input ID b51e49994b
└ customerSubdomain String - 客户子域名 customer-pj89kn2ke2tcuh19
└ mode String - 推流模式: WHIP / RTMPS / SRT WHIP
└ whipUrl String - WHIP 推流地址 https://customer-pj89kn2ke2tcuh19.cloudflarestream.com/b51e49994b6fd9e56b6f1fdfcd339fe6/webRTC/publish
└ rtmpsUrl String - RTMPS 推流地址 rtmps://live.cloudflare.com:443/live/xxx
└ hlsPlaybackUrl String - HLS 播放地址 https://customer-pj89kn2ke2tcuh19.cloudflarestream.com/b51e49994b6fd9e56b6f1fdfcd339fe6/manifest/video.m3u8
└ whepPlaybackUrl String - WHEP 播放地址 (WebRTC) https://customer-pj89kn2ke2tcuh19.cloudflarestream.com/b51e49994b6fd9e56b6f1fdfcd339fe6/webRTC/play
└ recordingEnabled Boolean - 是否启用录制 false
└ enabled Boolean - 是否启用 true
└ createdAt LocalDateTime - 创建时间 2024-01-15T10:30:00
└ updatedAt LocalDateTime - 更新时间 2024-01-15T10:30:00

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": {
        "id": 1,
        "channelId": "cf_channel_001",
        "name": "主推流通道",
        "accountId": "5544eac7cfb260d4fec9467d49513cea",
        "liveInputId": "b51e49994b6fd9e56b6f1fdfcd339fe6",
        "customerSubdomain": "customer-pj89kn2ke2tcuh19",
        "mode": "WHIP",
        "whipUrl": "https://customer-pj89kn2ke2tcuh19.cloudflarestream.com/b51e49994b6fd9e56b6f1fdfcd339fe6/webRTC/publish",
        "rtmpsUrl": "rtmps://live.cloudflare.com:443/live/xxx",
        "hlsPlaybackUrl": "https://customer-pj89kn2ke2tcuh19.cloudflarestream.com/b51e49994b6fd9e56b6f1fdfcd339fe6/manifest/video.m3u8",
        "whepPlaybackUrl": "https://customer-pj89kn2ke2tcuh19.cloudflarestream.com/b51e49994b6fd9e56b6f1fdfcd339fe6/webRTC/play",
        "recordingEnabled": false,
        "enabled": true,
        "createdAt": "2024-01-15T10:30:00",
        "updatedAt": "2024-01-15T10:30:00"
    }
}

错误码

删除推流通道

维护人:TG Live

URL

描述:删除推流通道

ContentType:application/x-www-form-urlencoded;charset=UTF-8

请求参数

Query Parameter
名称 类型 必填 最大长度 描述 示例值
id int64 - 推流通道主键 ID 1

响应参数

名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data object - 响应数据 (ActualType: Void)

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": {}
}

错误码

管理员认证

登录

维护人:TG Live

URL

描述:登录

ContentType:application/json

请求参数

Body Parameter
名称 类型 必填 最大长度 描述 示例值
username String 50 用户名
Validate[max: 50; ]
admin
password String 100 密码
Validate[max: 100; ]
123456

请求示例

{
    "username": "admin",
    "password": "123456"
}

响应参数

名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data object 响应数据 (ActualType: LoginResponse)
└ token String - JWT Token eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiJ9.xxx
└ tokenType String - Token 类型 Bearer
└ expiresIn Long - 过期时间(秒) 86400
└ admin AdminInfoDTO 用户信息
└ id Long - 用户 ID 1
└ username String - 用户名 admin
└ nickname String - 昵称 管理员
└ role String - 角色 ADMIN
└ lastLoginAt LocalDateTime - 最后登录时间 2026-01-07T10:00:00

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": {
        "token": "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiJ9.xxx",
        "tokenType": "Bearer",
        "expiresIn": 86400,
        "admin": {
            "id": 1,
            "username": "admin",
            "nickname": "管理员",
            "role": "ADMIN",
            "lastLoginAt": "2026-01-07T10:00:00"
        }
    }
}

错误码

登出

维护人:TG Live

URL

描述:登出

ContentType:application/x-www-form-urlencoded;charset=UTF-8

请求参数

响应参数

名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data object - 响应数据 (ActualType: Void)

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": {}
}

错误码

获取当前用户信息(直接从 Token 解析,不查询数据库)

维护人:TG Live

URL

描述:获取当前用户信息(直接从 Token 解析,不查询数据库)

ContentType:application/x-www-form-urlencoded;charset=UTF-8

请求参数

响应参数

名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data object 响应数据 (ActualType: AdminInfoDTO)
└ id Long - 用户 ID 1
└ username String - 用户名 admin
└ nickname String - 昵称 管理员
└ role String - 角色 ADMIN
└ lastLoginAt LocalDateTime - 最后登录时间 2026-01-07T10:00:00

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": {
        "id": 1,
        "username": "admin",
        "nickname": "管理员",
        "role": "ADMIN",
        "lastLoginAt": "2026-01-07T10:00:00"
    }
}

错误码

修改密码

维护人:TG Live

URL

描述:修改密码

ContentType:application/json

请求参数

Body Parameter
名称 类型 必填 最大长度 描述 示例值
oldPassword String - 旧密码 oldpassword
newPassword String 100 新密码(6-100 字符)
Validate[max: 100; ]
newpassword

请求示例

{
    "oldPassword": "oldpassword",
    "newPassword": "newpassword"
}

响应参数

名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data object - 响应数据 (ActualType: Void)

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": {}
}

错误码

统计

获取仪表盘统计数据

维护人:TG Live

URL

描述:获取仪表盘统计数据

ContentType:application/x-www-form-urlencoded;charset=UTF-8

请求参数

响应参数

名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data object 响应数据 (ActualType: DashboardStatsDTO)
└ machineTotal Long - 机器总数 10
└ machineEnabled Long - 启用的机器数 8
└ cameraTotal Long - 摄像头总数 20
└ cameraOnline Long - 在线摄像头数 15
└ cameraOffline Long - 离线摄像头数 5
└ channelTotal Long - 通道总数 40

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": {
        "machineTotal": 10,
        "machineEnabled": 8,
        "cameraTotal": 20,
        "cameraOnline": 15,
        "cameraOffline": 5,
        "channelTotal": 40
    }
}

错误码

本地视频推流 Controller

本地视频直接推送到 Cloudflare WHIP:

  • POST /stream/local/start 启动本地视频推流
  • POST /stream/local/stop 停止本地视频推流
  • GET /stream/local/{name} 获取推流状态
  • GET /stream/local/list 获取所有本地视频推流

启动本地视频推流

维护人:TG Live

URL

描述:启动本地视频推流

ContentType:application/json

请求参数

Body Parameter
名称 类型 必填 最大长度 描述 示例值
streamName String - 流名称(唯一标识)
videoPath String - 视频文件路径
loop Boolean - 是否循环播放 true
targetChannelId String - 目标推流通道 ID(可选,不传则使用默认通道)

请求示例

{
    "streamName": "string",
    "videoPath": "string",
    "loop": true,
    "targetChannelId": "string"
}

响应参数

名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data object 响应数据 (ActualType: LocalVideoStreamDTO)
└ streamName String - 流名称
└ sourceType String - 源类型:local_video 或 rtsp_camera
└ sourcePath String - 源路径(视频文件路径或 RTSP URL)
└ rtspUrl String - MediaMTX 提供的 RTSP URL
└ loop Boolean - 是否循环播放 true
└ streamTaskId String - 推流任务 ID(如果已推送到 Cloudflare)
└ playbackUrl String - 播放地址(Cloudflare HLS/WHEP)
└ status String - 状态

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": {
        "streamName": "string",
        "sourceType": "string",
        "sourcePath": "string",
        "rtspUrl": "string",
        "loop": true,
        "streamTaskId": "string",
        "playbackUrl": "string",
        "status": "string"
    }
}

错误码

停止本地视频推流

维护人:TG Live

URL

描述:停止本地视频推流

ContentType:application/x-www-form-urlencoded;charset=UTF-8

请求参数

Query Parameter
名称 类型 必填 最大长度 描述 示例值
streamName string - No comments found.

响应参数

名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data object - 响应数据 (ActualType: Void)

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": {}
}

错误码

获取本地视频推流状态

维护人:TG Live

URL

描述:获取本地视频推流状态

ContentType:application/x-www-form-urlencoded;charset=UTF-8

Path 参数

名称 必填 描述 示例值
streamName No comments found.

请求参数

响应参数

名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data object 响应数据 (ActualType: LocalVideoStreamDTO)
└ streamName String - 流名称
└ sourceType String - 源类型:local_video 或 rtsp_camera
└ sourcePath String - 源路径(视频文件路径或 RTSP URL)
└ rtspUrl String - MediaMTX 提供的 RTSP URL
└ loop Boolean - 是否循环播放 true
└ streamTaskId String - 推流任务 ID(如果已推送到 Cloudflare)
└ playbackUrl String - 播放地址(Cloudflare HLS/WHEP)
└ status String - 状态

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": {
        "streamName": "string",
        "sourceType": "string",
        "sourcePath": "string",
        "rtspUrl": "string",
        "loop": true,
        "streamTaskId": "string",
        "playbackUrl": "string",
        "status": "string"
    }
}

错误码

获取所有本地视频推流

维护人:TG Live

URL

描述:获取所有本地视频推流

ContentType:application/x-www-form-urlencoded;charset=UTF-8

请求参数

响应参数

名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data array 响应数据 (ActualType: List)
└ streamName String - 流名称
└ sourceType String - 源类型:local_video 或 rtsp_camera
└ sourcePath String - 源路径(视频文件路径或 RTSP URL)
└ rtspUrl String - MediaMTX 提供的 RTSP URL
└ loop Boolean - 是否循环播放 true
└ streamTaskId String - 推流任务 ID(如果已推送到 Cloudflare)
└ playbackUrl String - 播放地址(Cloudflare HLS/WHEP)
└ status String - 状态

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": [
        {
            "streamName": "string",
            "sourceType": "string",
            "sourcePath": "string",
            "rtspUrl": "string",
            "loop": true,
            "streamTaskId": "string",
            "playbackUrl": "string",
            "status": "string"
        }
    ]
}

错误码

推流服务 Controller

推流管理 API 接口:

  • POST /stream/start 启动推流任务
  • POST /stream/stop 停止推流任务
  • GET /stream/task/{taskId} 获取任务状态
  • GET /stream/tasks 获取机器推流任务列表
  • GET /stream/tasks/active 获取所有活动任务
  • GET /stream/channels 获取推流通道列表
  • POST /stream/task/{taskId}/switch 切换推流源

启动推流任务

维护人:TG Live

URL

描述:启动推流任务

ContentType:application/json

请求参数

Body Parameter
名称 类型 必填 最大长度 描述 示例值
machineId String - 机器 ID(必填) machine_001
cameraId String - 摄像头 ID(必填) hikvision_ptz
cameraChannelId String - 摄像头通道 ID(必填) hik_main
sourceRtspUrl String - 源 RTSP 地址(可选,如不传则从摄像头服务获取) rtsp://admin:password@192.168.1.101:554/stream1
targetChannelId String - 目标推流通道 ID(可选,如不传则使用默认通道) cf_channel_001

请求示例

{
    "machineId": "machine_001",
    "cameraId": "hikvision_ptz",
    "cameraChannelId": "hik_main",
    "sourceRtspUrl": "rtsp://admin:password@192.168.1.101:554/stream1",
    "targetChannelId": "cf_channel_001"
}

响应参数

名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data object 响应数据 (ActualType: StreamTaskDTO)
└ taskId String - 任务 ID task_abc123def456
└ machineId String - 机器 ID machine_001
└ cameraId String - 摄像头 ID hikvision_ptz
└ cameraChannelId String - 摄像头通道 ID hik_main
└ sourceRtspUrl String - 源 RTSP 地址 rtsp://admin:password@192.168.1.101:554/stream1
└ status String - 推流状态: IDLE, STARTING, STREAMING, STOPPED, ERROR STREAMING
└ statusDescription String - 状态描述 推流中
└ hlsPlaybackUrl String - HLS 播放地址 https://customer-xxx.cloudflarestream.com/xxx/manifest/video.m3u8
└ errorMessage String - 错误信息
└ retryCount int - 重试次数 0
└ createdAt LocalDateTime - 创建时间 2024-01-15T10:30:00
└ startedAt LocalDateTime - 开始推流时间 2024-01-15T10:30:05
└ stoppedAt LocalDateTime - 停止推流时间 yyyy-MM-dd HH:mm:ss

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": {
        "taskId": "task_abc123def456",
        "machineId": "machine_001",
        "cameraId": "hikvision_ptz",
        "cameraChannelId": "hik_main",
        "sourceRtspUrl": "rtsp://admin:password@192.168.1.101:554/stream1",
        "status": "STREAMING",
        "statusDescription": "推流中",
        "hlsPlaybackUrl": "https://customer-xxx.cloudflarestream.com/xxx/manifest/video.m3u8",
        "errorMessage": "string",
        "retryCount": 0,
        "createdAt": "2024-01-15T10:30:00",
        "startedAt": "2024-01-15T10:30:05",
        "stoppedAt": "yyyy-MM-dd HH:mm:ss"
    }
}

错误码

停止推流任务

维护人:TG Live

URL

描述:停止推流任务

ContentType:application/json

请求参数

Body Parameter
名称 类型 必填 最大长度 描述 示例值
taskId String - 任务 ID(与 machineId 二选一) task_abc123def456
machineId String - 机器 ID(与 taskId 二选一,停止该机器所有推流) machine_001

请求示例

{
    "taskId": "task_abc123def456",
    "machineId": "machine_001"
}

响应参数

名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data object - 响应数据 (ActualType: Void)

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": {}
}

错误码

获取任务状态

维护人:TG Live

URL

描述:获取任务状态

ContentType:application/x-www-form-urlencoded;charset=UTF-8

Path 参数

名称 必填 描述 示例值
taskId 任务 ID task_abc123def456

请求参数

响应参数

名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data object 响应数据 (ActualType: StreamTaskDTO)
└ taskId String - 任务 ID task_abc123def456
└ machineId String - 机器 ID machine_001
└ cameraId String - 摄像头 ID hikvision_ptz
└ cameraChannelId String - 摄像头通道 ID hik_main
└ sourceRtspUrl String - 源 RTSP 地址 rtsp://admin:password@192.168.1.101:554/stream1
└ status String - 推流状态: IDLE, STARTING, STREAMING, STOPPED, ERROR STREAMING
└ statusDescription String - 状态描述 推流中
└ hlsPlaybackUrl String - HLS 播放地址 https://customer-xxx.cloudflarestream.com/xxx/manifest/video.m3u8
└ errorMessage String - 错误信息
└ retryCount int - 重试次数 0
└ createdAt LocalDateTime - 创建时间 2024-01-15T10:30:00
└ startedAt LocalDateTime - 开始推流时间 2024-01-15T10:30:05
└ stoppedAt LocalDateTime - 停止推流时间 yyyy-MM-dd HH:mm:ss

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": {
        "taskId": "task_abc123def456",
        "machineId": "machine_001",
        "cameraId": "hikvision_ptz",
        "cameraChannelId": "hik_main",
        "sourceRtspUrl": "rtsp://admin:password@192.168.1.101:554/stream1",
        "status": "STREAMING",
        "statusDescription": "推流中",
        "hlsPlaybackUrl": "https://customer-xxx.cloudflarestream.com/xxx/manifest/video.m3u8",
        "errorMessage": "string",
        "retryCount": 0,
        "createdAt": "2024-01-15T10:30:00",
        "startedAt": "2024-01-15T10:30:05",
        "stoppedAt": "yyyy-MM-dd HH:mm:ss"
    }
}

错误码

获取机器推流任务列表

维护人:TG Live

URL

描述:获取机器推流任务列表

ContentType:application/x-www-form-urlencoded;charset=UTF-8

请求参数

Query Parameter
名称 类型 必填 最大长度 描述 示例值
machineId string - 机器 ID machine_001

响应参数

名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data array 响应数据 (ActualType: List)
└ taskId String - 任务 ID task_abc123def456
└ machineId String - 机器 ID machine_001
└ cameraId String - 摄像头 ID hikvision_ptz
└ cameraChannelId String - 摄像头通道 ID hik_main
└ sourceRtspUrl String - 源 RTSP 地址 rtsp://admin:password@192.168.1.101:554/stream1
└ status String - 推流状态: IDLE, STARTING, STREAMING, STOPPED, ERROR STREAMING
└ statusDescription String - 状态描述 推流中
└ hlsPlaybackUrl String - HLS 播放地址 https://customer-xxx.cloudflarestream.com/xxx/manifest/video.m3u8
└ errorMessage String - 错误信息
└ retryCount int - 重试次数 0
└ createdAt LocalDateTime - 创建时间 2024-01-15T10:30:00
└ startedAt LocalDateTime - 开始推流时间 2024-01-15T10:30:05
└ stoppedAt LocalDateTime - 停止推流时间 yyyy-MM-dd HH:mm:ss

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": [
        {
            "taskId": "task_abc123def456",
            "machineId": "machine_001",
            "cameraId": "hikvision_ptz",
            "cameraChannelId": "hik_main",
            "sourceRtspUrl": "rtsp://admin:password@192.168.1.101:554/stream1",
            "status": "STREAMING",
            "statusDescription": "推流中",
            "hlsPlaybackUrl": "https://customer-xxx.cloudflarestream.com/xxx/manifest/video.m3u8",
            "errorMessage": "string",
            "retryCount": 0,
            "createdAt": "2024-01-15T10:30:00",
            "startedAt": "2024-01-15T10:30:05",
            "stoppedAt": "yyyy-MM-dd HH:mm:ss"
        }
    ]
}

错误码

获取所有活动任务

维护人:TG Live

URL

描述:获取所有活动任务

ContentType:application/x-www-form-urlencoded;charset=UTF-8

请求参数

响应参数

名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data array 响应数据 (ActualType: List)
└ taskId String - 任务 ID task_abc123def456
└ machineId String - 机器 ID machine_001
└ cameraId String - 摄像头 ID hikvision_ptz
└ cameraChannelId String - 摄像头通道 ID hik_main
└ sourceRtspUrl String - 源 RTSP 地址 rtsp://admin:password@192.168.1.101:554/stream1
└ status String - 推流状态: IDLE, STARTING, STREAMING, STOPPED, ERROR STREAMING
└ statusDescription String - 状态描述 推流中
└ hlsPlaybackUrl String - HLS 播放地址 https://customer-xxx.cloudflarestream.com/xxx/manifest/video.m3u8
└ errorMessage String - 错误信息
└ retryCount int - 重试次数 0
└ createdAt LocalDateTime - 创建时间 2024-01-15T10:30:00
└ startedAt LocalDateTime - 开始推流时间 2024-01-15T10:30:05
└ stoppedAt LocalDateTime - 停止推流时间 yyyy-MM-dd HH:mm:ss

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": [
        {
            "taskId": "task_abc123def456",
            "machineId": "machine_001",
            "cameraId": "hikvision_ptz",
            "cameraChannelId": "hik_main",
            "sourceRtspUrl": "rtsp://admin:password@192.168.1.101:554/stream1",
            "status": "STREAMING",
            "statusDescription": "推流中",
            "hlsPlaybackUrl": "https://customer-xxx.cloudflarestream.com/xxx/manifest/video.m3u8",
            "errorMessage": "string",
            "retryCount": 0,
            "createdAt": "2024-01-15T10:30:00",
            "startedAt": "2024-01-15T10:30:05",
            "stoppedAt": "yyyy-MM-dd HH:mm:ss"
        }
    ]
}

错误码

获取推流通道列表

维护人:TG Live

URL

描述:获取推流通道列表

ContentType:application/x-www-form-urlencoded;charset=UTF-8

请求参数

响应参数

名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data array 响应数据 (ActualType: List)
└ channelId String - 通道 ID cf_channel_001
└ name String - 通道名称 主推流通道
└ mode String - 推流模式: WHIP, RTMPS WHIP
└ hlsPlaybackUrl String - HLS 播放地址 https://customer-xxx.cloudflarestream.com/xxx/manifest/video.m3u8
└ recordingEnabled boolean - 是否启用录制 false

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": [
        {
            "channelId": "cf_channel_001",
            "name": "主推流通道",
            "mode": "WHIP",
            "hlsPlaybackUrl": "https://customer-xxx.cloudflarestream.com/xxx/manifest/video.m3u8",
            "recordingEnabled": false
        }
    ]
}

错误码

切换推流源

维护人:TG Live

URL

描述:切换推流源

ContentType:application/json

请求参数

Body Parameter
名称 类型 必填 最大长度 描述 示例值
taskId String - 任务 ID task_abc123def456
newChannelId String - 新的摄像头通道 ID hik_main
newRtspUrl String - 新的 RTSP 地址 rtsp://admin:password@192.168.1.101:554/stream1

请求示例

{
    "taskId": "task_abc123def456",
    "newChannelId": "hik_main",
    "newRtspUrl": "rtsp://admin:password@192.168.1.101:554/stream1"
}

响应参数

名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data object 响应数据 (ActualType: StreamTaskDTO)
└ taskId String - 任务 ID task_abc123def456
└ machineId String - 机器 ID machine_001
└ cameraId String - 摄像头 ID hikvision_ptz
└ cameraChannelId String - 摄像头通道 ID hik_main
└ sourceRtspUrl String - 源 RTSP 地址 rtsp://admin:password@192.168.1.101:554/stream1
└ status String - 推流状态: IDLE, STARTING, STREAMING, STOPPED, ERROR STREAMING
└ statusDescription String - 状态描述 推流中
└ hlsPlaybackUrl String - HLS 播放地址 https://customer-xxx.cloudflarestream.com/xxx/manifest/video.m3u8
└ errorMessage String - 错误信息
└ retryCount int - 重试次数 0
└ createdAt LocalDateTime - 创建时间 2024-01-15T10:30:00
└ startedAt LocalDateTime - 开始推流时间 2024-01-15T10:30:05
└ stoppedAt LocalDateTime - 停止推流时间 yyyy-MM-dd HH:mm:ss

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": {
        "taskId": "task_abc123def456",
        "machineId": "machine_001",
        "cameraId": "hikvision_ptz",
        "cameraChannelId": "hik_main",
        "sourceRtspUrl": "rtsp://admin:password@192.168.1.101:554/stream1",
        "status": "STREAMING",
        "statusDescription": "推流中",
        "hlsPlaybackUrl": "https://customer-xxx.cloudflarestream.com/xxx/manifest/video.m3u8",
        "errorMessage": "string",
        "retryCount": 0,
        "createdAt": "2024-01-15T10:30:00",
        "startedAt": "2024-01-15T10:30:05",
        "stoppedAt": "yyyy-MM-dd HH:mm:ss"
    }
}

错误码

房间控制 Controller

房间播放 API 接口:

  • GET /room/{roomId}/play 获取播放信息(按需启动推流)
  • POST /room/{roomId}/stop 停止房间推流

获取房间播放信息

按需启动推流:

  • 检查 FFmpeg 是否在跑
  • 没跑则自动启动
  • 返回 WHEP URL (WebRTC 播放)

维护人:TG Live

URL

描述:获取房间播放信息

按需启动推流:

  • 检查 FFmpeg 是否在跑
  • 没跑则自动启动
  • 返回 WHEP URL (WebRTC 播放)

ContentType:application/x-www-form-urlencoded;charset=UTF-8

Path 参数

名称 必填 描述 示例值
roomId 房间 ID

请求参数

响应参数

名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data object 响应数据 (ActualType: RoomPlayResponse)
└ roomId String - 房间 ID
└ taskId String - 推流任务 ID
└ whepUrl String - WHEP 播放地址 (WebRTC)
└ status String - 推流状态
└ newlyStarted boolean - 是否为新启动的推流 true

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": {
        "roomId": "string",
        "taskId": "string",
        "whepUrl": "string",
        "status": "string",
        "newlyStarted": true
    }
}

错误码

停止房间推流

维护人:TG Live

URL

描述:停止房间推流

ContentType:application/x-www-form-urlencoded;charset=UTF-8

Path 参数

名称 必填 描述 示例值
roomId 房间 ID

请求参数

响应参数

名称 类型 必填 最大长度 描述 示例值
success Boolean - 请求是否成功 true
errCode String - 错误码(失败时返回)
errMessage String - 错误信息(失败时返回)
data object - 响应数据 (ActualType: Void)

响应示例

{
    "success": true,
    "errCode": "string",
    "errMessage": "string",
    "data": {}
}

错误码