1. 业务场景
1.1 摄像头管理
(摄像头参数更复杂,建议参考1.2,接口调用视频流类型相对简单)

1.1.1 添加摄像头
rtsp接口调用顺序:2.1 -> 2.4 -> 2.13 -> 2.6
onvif接口调用顺序:2.3 ->2.1-> 2.14 -> 2.13 -> 2.6
说明:
2.1:检测是否在线,获取图像长宽参数
2.3:获取onvif视频流地址
2.4:新增数据源
2.13:查询算法名称,然后根据算法名称获取算法配置文件,算法配置文件中包含算法参数
2.14:新增onvif数据源
2.6:编辑算法
1.1.2 查询摄像头
接口调用顺序:2.8
1.1.3 编辑摄像头算法
接口调用顺序:2.13 -> 2.6
说明:
2.13:查询算法名称,然后根据算法名称获取算法配置文件,算法配置文件中包含算法参数
2.6:编辑算法
1.1.4 编辑摄像头
rtsp接口调用顺序:2.8 -> 2.5
onvif接口调用顺序:2.8 -> 2.15
说明:
2.8:获取摄像头ID
2.5:保存编辑后的信息
2.15:保存onvif编辑后的信息
1.1.5 删除摄像头
接口调用顺序:2.8 -> 2.7
说明:
2.8:获取摄像头ID
2.7:删除摄像头
1.1.6 启用/停用摄像头
接口调用顺序:2.8 -> 2.20
说明:
2.8:获取摄像头ID
2.20:保存摄像头启用/停用状态
1.1.7 修改排序
接口调用顺序:2.8 -> 2.9
说明:
2.8:获取摄像头ID
2.9:修改排序
1.2 视频流管理
视频流管理前端示例代码(点击此处跳转)

1.2.1 添加视频流
接口调用顺序:2.1 -> 2.16 -> 2.13 -> 2.6
说明:
2.1:检测是否在线,获取图像长宽参数
2.16:新增视频流数据源
2.13:查询算法名称,然后根据算法名称获取算法配置文件,算法配置文件中包含算法参数
2.6:编辑算法
1.2.2 查询视频流
接口调用顺序:2.8
1.2.3 编辑视频流算法
接口调用顺序:2.13 -> 2.6
说明:
2.13:查询算法名称,然后根据算法名称获取算法配置文件,算法配置文件中包含算法参数
2.6:编辑算法
1.2.4 编辑视频流
接口调用顺序:2.8 -> 2.17
说明:
2.8:获取视频流ID
2.17:编辑视频流数据源
1.2.5 启用/停用视频流
接口调用顺序:2.8 -> 2.20
说明:
2.8:获取视频流ID
2.20:保存视频流启用/停用状态
1.2.6 删除视频流
接口调用顺序:2.8 -> 2.7
说明:
2.8:获取视频流ID
2.7:删除视频流
1.2.7 抓拍摄像头图像
接口调用顺序:2.8 -> 2.2
说明:
2.8:获取视频流ID
2.2:获取base64图片
1.2.8 修改排序
接口调用顺序:2.8 -> 2.9
说明:
2.8:获取视频流ID
2.9:修改排序
1.3 gb28181管理

1.3.1 查询SIP配置
接口调用顺序:2.26
说明:
2.26:查询国标接入服务SIP配置
1.3.2 清理不在线国标设备
1.3.3 查询未接入国标摄像头
接口调用顺序:2.21 -> 2.22
说明:
2.21:获取未接入国标摄像头设备ID
2.22:获取摄像头通道信息,视频流ID
1.3.4 查询已接入国标摄像头
接口调用顺序:2.8
1.3.5 修改排序
接口调用顺序:2.8 -> 2.9
说明:
2.8:获取摄像头ID
2.9:修改排序
1.3.6 编辑国标视频流算法
接口调用顺序:2.13 -> 2.6
说明:
2.13:查询算法名称,然后根据算法名称获取算法配置文件,算法配置文件中包含算法参数
2.6:编辑算法
1.3.7 启用/停用国标摄像头
接口调用顺序:2.8 -> 2.20
说明:
2.8:获取摄像头ID
2.20:保存摄像头启用/停用状态
1.3.8 删除摄像头
接口调用顺序:2.8 -> 2.7
说明:
2.8:获取摄像头ID
2.7:删除摄像头
1.3.9 抓拍摄像头图像
接口调用顺序:2.8 -> 2.2
说明:
2.8:获取摄像头ID
2.2:获取base64图片
1.3.10 编辑国标视频流
接口调用顺序:2.8 -> 2.25
说明:
2.8:获取摄像头ID
2.25:保存编辑后的信息

1.3.11 国标视频流接入
接口调用顺序:2.23 -> 2.24 -> 2.13 -> 2.6
说明:
2.23:检测是否在线,获取图像长宽参数
2.24:新增国标数据源
2.13:查询算法名称,然后根据算法名称获取算法配置文件,算法配置文件中包含算法参数
2.6:编辑算法
1.4 视频文件管理(建议直接从界面上传文件测试)

1.4.1 添加视频文件
接口调用顺序:2.10-> 2.11 -> 2.1 -> 2.18-> 2.13 -> 2.6
说明:
2.10:上传文件
2.11:获取流地址
2.1:检测是否在线,获取图像长宽参数
2.18:新增视频文件视频源
2.13:查询算法名称,然后根据算法名称获取算法配置文件,算法配置文件中包含算法参数,详见2.4请求参数说明
2.6:编辑算法
1.4.2 查询视频文件
接口调用顺序:2.8
1.4.3 编辑算法
接口调用顺序:2.13 -> 2.6
说明:
2.13:查询算法名称,然后根据算法名称获取算法配置文件,算法配置文件中包含算法参数
2.6:编辑算法
1.4.5 重新播放视频文件
接口调用顺序:2.8 -> 2.11
说明:
2.8:获取视频文件ID
2.11:视频文件转为视频流
1.4.6 启用/停用视频文件
接口调用顺序:2.8 -> 2.20
说明:
2.8:获取视频文件ID
2.20:保存视频文件启用/停用状态
1.4.7 删除视频文件
接口调用顺序:2.8 -> 2.7
说明:
2.8:获取视频文件ID
2.7:删除
1.4.8 抓拍视频文件图像
接口调用顺序:2.8 -> 2.11 -> 2.2
说明:
2.8:获取摄像头ID
2.11:文件转为视频流
2.2:获取base64图片
1.4.9 编辑视频文件
接口调用顺序:2.8 -> 2.19
说明:
2.8:获取视频文件ID
2.19:保存编辑后的信息
1.4.10 修改排序
接口调用顺序:2.8 -> 2.9
说明:
2.8:获取视频文件ID
2.9:修改排序
2. 原子接口
2.1. 检测是否在线
-
接口功能描述:新增数据源时需要传入告警图片大小、编码格式,需要先通过此接口获取;
-
接口路径:[GET]http://盒子IP:9092/stream/attr;
-
Header请求参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| Authorization | String | 是 | 'Bearer ' + token; token通过获取token接口获取 |
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| stream | String | 是 | 视频流地址 |
表. 请求参数
- 请求示例;
| 项目 | 详情 |
|---|---|
| 请求格式 | Query String |
| stream | rtsp://xxx/main/av_stream |
表. 请求参数
- 响应参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| error_code | Int | 是 | 返回响应码 0: 成功 -1: 客户端错误 -2: 服务端错误 |
| message | String | 是 | 返回响应信息 |
| data | Object | 是 | 如果数据源在线返回数据源信息,如果数据源不在线,返回空对象 |
- 响应示例。
| 项目 | 详情 |
|---|---|
| 报文格式 | JSON |
| 报文内容 | {
"error_code": 0,
"message": "视频流接入成功!",
"data": {
"app": "a80c9349-39f5-4b77-a221-13e326fc425c",
"stream": "690f032feb712e103c551c8e",//视频流ID
"url": "rtsp://127.0.0.1:554/a80c9349-39f5-4b77-a221-13e326fc425c/690f032feb712e103c551c8e",
"origin_ip": "192.168.1.14",
"origin_url": "rtsp://admin:Admin123@192.168.1.14:554/h264/ch1/main/av_stream",
"is_online": true,
"video": {
"codec": "h265",
"width": 1920,
"height": 1080,
"ready": true
},
"audio": {
"codec": "g711a",
"channels": 1,
"sample_rate": 8000,
"sample_bit": 16,
"ready": true
},
"image_size": {
"infer": 640,
"draw": [//图像长宽
1280,
720
]
}
}
} |
2.2. 获取数据源画面
- 接口功能描述:获取数据源画面,绘制检测区域时调用获取;
- 接口路径:[GET]http://盒子IP:9092/stream/image;
- Header请求参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| Authorization | String | 是 | 'Bearer ' + token; token通过获取token接口获取 |
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| source_id | String | 是 | 视频流ID |
表. 请求参数
- 请求示例;
| 项目 | 详情 |
|---|---|
| 请求格式 | Query String |
| source_id | 69115387eb712e56054f5a66 |
- 响应参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| error_code | Int | 是 | 返回响应码 0: 成功 -1: 客户端错误 -2: 服务端错误 |
| message | String | 是 | 返回响应信息 |
| data | String | 是 | 返回base64图片数据 |
- 响应示例。
| 项目 | 详情 |
|---|---|
| 报文格式 | JSON |
| 报文内容 | {
"error_code": 0,
"message": "获取图像成功!",
"data": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAUDBAQEAwUEBAQ......"
} |
2.3. onvif接入
- 接口功能描述:获取数据源信息,如品牌、码流地址等;
- 接口路径:[GET]http://盒子IP:9092/stream/onvif/camera_info;
- Header请求参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| Authorization | String | 是 | 'Bearer ' + token; token通过获取token接口获取 |
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| authentication | Object | 是 | ["用户名",“密码”] |
| ip | String | 是 | 数据源IP地址 |
| port | Int | 是 | onvif协议端口,默认80 |
表. 请求参数
- 请求示例;
| 项目 | 详情 |
|---|---|
| 请求格式 | Query String |
| authentication | ["admin","Admin123"] |
| ip | 192.168.1.201 |
| port | 80 |
- 响应参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| error_code | Int | 是 | 返回响应码 0: 成功 -1: 客户端错误 -2: 服务端错误 |
| message | String | 是 | 返回响应信息 |
| data | Null/Object | 是 | null |
- 响应示例。
| 项目 | 详情 |
|---|---|
| 报文格式 | JSON |
| 报文内容 | {
"error_code": 0,
"message": "获取摄像头信息成功!",
"data": {
"Manufacturer": "HIKVISION",
"Model": "DS-2CD3T26WDA4-L",
"FirmwareVersion": "V5.7.14",
"SerialNumber": "DS-2CD3T26WDA4-L20240106AACHAZ1202912",
"HardwareId": "88",
"profiles": [
{
"name": "mainStream",
"width": 1920,
"height": 1080,
"frame_rate": 25,
"bit_rate": 2048,
"rtsp": "rtsp://admin:Admin123@192.168.1.14:554/Streaming/Channels/101?transportmode=unicast&profile=Profile_1"
},
{
"name": "subStream",
"width": 640,
"height": 360,
"frame_rate": 25,
"bit_rate": 512,
"rtsp": "rtsp://admin:Admin123@192.168.1.14:554/Streaming/Channels/102?transportmode=unicast&profile=Profile_2"
}
]
}
} |
2.4. 新增摄像头数据源
- 接口功能描述:新增数据源;
- 接口路径:[POST] http://盒子IP:9092/ks/source;
- Header请求参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| Authorization | String | 是 | 'Bearer ' + token; token通过获取token接口获取 |
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| id | String | 否 | 数据源标识,可以传,不传则自动生成。 |
| desc | String | 是 | 描述,注意同一个盒子不同数据源描述不可重复 |
| type | String | 是 | 摄像头:camera 视频流:stream 视频文件:video |
| stream | object | 否 | 从2.1接口中获取stream对象数据
|
| detail | object | 是 | "ipv4": "摄像头IP地址", "protocol": "视频流协议", "rtsptype": "gen", "brand": "2",//2:海康,9:大华,4:宇视,1:华为 "stream": "视频流后缀", "username": "用户名", "password": "密码", "stream_url": "视频流完整url" |
| video_record | Int | 是 | 是否录制视频,1录制,0不录制 |
表. 请求参数
- 请求示例;
| 项目 | 详情 |
|---|---|
| 请求格式 | JSON |
| 报文内容 |
{
"id": "690f06f5eb712e103c551cf2",
"desc": "111222",
"type": "camera",
"stream": {
"app": "a80c9349-39f5-4b77-a221-13e326fc425c",
"stream": "690f06f5eb712e103c551cf2",
"url": "rtsp://127.0.0.1:554/a80c9349-39f5-4b77-a221-13e326fc425c/690f06f5eb712e103c551cf2",
"origin_ip": "192.168.1.14",
"origin_url": "rtsp://admin:Admin123@192.168.1.14:554/h264/ch1/main/av_stream",
"is_online": true,
"video": {
"codec": "h265",
"width": 1920,
"height": 1080,
"ready": true
},
"audio": {
"codec": "g711a",
"channels": 1,
"sample_rate": 8000,
"sample_bit": 16,
"ready": true
},
"image_size": {
"infer": 640,
"draw": [1280, 720]
}
},
"video_record": 0,
"detail": {
"ipv4": "192.168.1.14",
"protocol": "rtsp",
"rtsptype": "gen",
"brand": "2",
"stream": ":554/h264/ch1/main/av_stream",
"username": "admin",
"password": "Admin123",
"stream_url": "rtsp://admin:Admin123@192.168.1.14:554/h264/ch1/main/av_stream"
}
}
|
- 响应参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| error_code | Int | 是 | 返回响应码 0: 成功 -1: 客户端错误 -2: 服务端错误 |
| message | String | 是 | 返回响应信息 |
| data | Null/Object | 是 | null |
- 响应示例;
| 项目 | 详情 |
|---|---|
| 报文格式 | JSON |
| 报文内容 | { "data": null, "error_code": 0, "message": "添加数据源成功!" } |
2.5. 编辑摄像头数据源
- 接口功能描述:编辑数据源;
- 接口路径:[PUT] http://盒子IP:9092/ks/source;
- Header请求参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| Authorization | String | 是 | 'Bearer ' + token; token通过获取token接口获取 |
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| id | String | 是 | 数据源标识,可以传,不传则自动生成。 |
| desc | String | 否 | 描述,注意同一个盒子不同数据源描述不可重复 |
| type | String | 否 | 摄像头:camera 视频流:stream 视频文件:video |
| stream | object | 否 | 从2.1接口中获取stream对象数据 |
| detail | object | 否 |
"ipv4": "摄像头IP地址", "protocol": "视频流协议", "rtsptype": "gen", "brand": "2", "stream": "视频流后缀", "username": "用户名", "password": "密码", "stream_url": "视频流完整url" |
| video_record | Int | 否 | 是否录制视频,1录制,0不录制 |
表. 请求参数
- 请求示例;
| 项目 | 详情 |
|---|---|
| 请求格式 | JSON |
| 报文内容 |
{
"id": "690f06f5eb712e103c551cf2",
"desc": "111222",
"type": "camera",
"stream": {
"app": "a80c9349-39f5-4b77-a221-13e326fc425c",
"stream": "690f06f5eb712e103c551cf2",
"url": "rtsp://127.0.0.1:554/a80c9349-39f5-4b77-a221-13e326fc425c/690f06f5eb712e103c551cf2",
"origin_ip": "192.168.1.14",
"origin_url": "rtsp://admin:Admin123@192.168.1.14:554/h264/ch1/main/av_stream",
"is_online": true,
"video": {
"codec": "h265",
"width": 1920,
"height": 1080,
"ready": true
},
"audio": {
"codec": "g711a",
"channels": 1,
"sample_rate": 8000,
"sample_bit": 16,
"ready": true
},
"image_size": {
"infer": 640,
"draw": [1280, 720]
}
},
"video_record": 0,
"detail": {
"ipv4": "192.168.1.14",
"protocol": "rtsp",
"rtsptype": "gen",
"brand": "2",
"stream": ":554/h264/ch1/main/av_stream",
"username": "admin",
"password": "Admin123",
"stream_url": "rtsp://admin:Admin123@192.168.1.14:554/h264/ch1/main/av_stream"
}
}
|
- 响应参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| error_code | Int | 是 | 返回响应码 0: 成功 -1: 客户端错误 -2: 服务端错误 |
| message | String | 是 | 返回响应信息 |
| data | Null/Object | 是 | null |
- 响应示例;
| 项目 | 详情 |
|---|---|
| 报文格式 | JSON |
| 报文内容 | { "data": null, "error_code": 0, "message": "更新数据源成功!" } |
2.6. 编辑算法
- 接口功能描述:配置相关算法、检测区域等;
- 接口路径:[PUT] http://盒子IP:9092/ks/source;
- Header请求参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| Authorization | String | 是 | 'Bearer ' + token; token通过获取token接口获取 |
| id | String | 是 | 视频流ID |
| alg | Object | 是 | 算法信息 |
表. 请求参数
- 请求示例;
| 项目 | 详情 |
|---|---|
| 请求格式 | JSON |
| 报文内容 |
{
"alg": {
"helmet": {
"alert_window": {
"type": "interval_threshold_window",
"interval": 5,
"length": 5,
"threshold": 3
},
"bbox": {
"polygons": [],
"lines": []
},
"plan": {
"1": [[0, 86400]],
"2": [[0, 86400]],
"3": [[0, 86400]],
"4": [[0, 86400]],
"5": [[0, 86400]],
"6": [[0, 86400]],
"7": [[0, 86400]]
},
"hazard_level": "",
"alg_type": "general",
"model_args": {
"zql_helmet_classify": {
"conf_thres": 0.7
},
"zql_helmet": {
"conf_thres": 0.45
},
"zql_person": {
"conf_thres": 0.6
}
},
"reserved_args": {
"display_name": "未佩戴安全帽检测",
"sound_text": "未佩戴安全帽检测告警",
"extra_model": {
"zql_helmet_classify": 1
}
}
}
},
"id": "6910517f1271cb0fdba593a3"
}
|
- 响应参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| error_code | Int | 是 | 返回响应码 0: 成功 -1:失败 |
| message | String | 是 | 返回响应信息 |
| data | Object | 是 | 返回数据 |
- 响应示例。
| 项目 | 详情 |
|---|---|
| 报文格式 | JSON |
| 报文内容 | { "data": null, "error_code": 0, "message": "更新数据源成功!" } |
2.7. 删除数据源
- 接口功能描述:删除数据源;
- 接口路径:[DELETE] http://盒子IP:9092/ks/source;
- Header请求参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| Authorization | String | 是 | 'Bearer ' + token; token通过获取token接口获取 |
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| id | String | 是 | 数据源ID |
表. 请求参数
- 请求示例;
| 项目 | 详情 |
|---|---|
| 请求格式 | JSON |
| 报文格式 | { "id": "65a78309522e4b4eec7605e0" } |
- 响应参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| error_code | Int | 是 | 返回响应码 0: 成功 -1: 客户端错误 -2: 服务端错误 |
| message | String | 是 | 返回响应信息 |
| data | Object | 是 | 返回数据 |
- 响应示例;
| 项目 | 详情 |
|---|---|
| 报文格式 | JSON |
| 报文内容 | { "data": null, "error_code": 0, "message": "删除数据源成功!" } |
2.8. 查询数据源
- 接口功能描述:查询数据源,不传参表示查询所有数据源;
- 接口路径:[GET] http://盒子IP:9092/ks/source;
- Header请求参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| Authorization | String | 是 | 'Bearer ' + token; token通过获取token接口获取 |
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| id | String | 否 | 数据源ID |
表. 请求参数
- 响应参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| error_code | Int | 是 | 返回响应码 0: 成功 -1: 客户端错误 -2: 服务端错误 |
| message | String | 是 | 返回响应信息 |
| data | Object | 是 | 返回数据 |
- 响应示例;
| 项目 | 详情 |
|---|---|
| 报文格式 | JSON |
| 报文内容 |
{
"error_code": 0,
"message": "查询数据源成功!",
"data": [
{
"id": "690eeda9eb712e103c551a63",
"desc": "111.mp4",
"index": 0,
"detail": {
"stream_url": "rtmp://__defaultVhost__/a80c9349-39f5-4b77-a221-13e326fc425c/690eeda9eb712e103c551a63?sign=95e6a77218a3971050fe41d3d9e8e6ed",
"performance_mode": false
},
"type": "video",
"stream": {
"app": "a80c9349-39f5-4b77-a221-13e326fc425c",
"url": "rtsp://127.0.0.1:554/a80c9349-39f5-4b77-a221-13e326fc425c/690eeda9eb712e103c551a63",
"audio": {
"codec": "aac",
"ready": true,
"channels": 2,
"sample_bit": 16,
"sample_rate": 44100
},
"video": {
"codec": "h264",
"ready": true,
"width": 1280,
"height": 720
},
"stream": "690eeda9eb712e103c551a63",
"is_online": false,
"origin_ip": "127.0.0.1",
"image_size": {
"draw": [1280, 720],
"infer": 640
},
"origin_url": "rtmp://__defaultVhost__/a80c9349-39f5-4b77-a221-13e326fc425c/690eeda9eb712e103c551a63?sign=95e6a77218a3971050fe41d3d9e8e6ed"
},
"alg": {
"face": {
"bbox": {
"lines": [],
"polygons": []
},
"plan": {
"1": [[0, 86400]],
"2": [[0, 86400]],
"3": [[0, 86400]],
"4": [[0, 86400]],
"5": [[0, 86400]],
"6": [[0, 86400]],
"7": [[0, 86400]]
},
"alg_type": "match_face",
"model_args": {
"zql_face": {
"conf_thres": 0.9
}
},
"alert_window": {
"type": "interval_threshold_window",
"length": 1,
"interval": 1,
"threshold": 1
},
"hazard_level": "",
"reserved_args": {
"show": "false",
"group_id": "690eea62eb712e0cc8fc621b",
"threshold": 0.2,
"group_type": "whitelist",
"similarity": 0.65,
"sound_text": "人脸识别告警",
"display_name": "人脸识别"
}
}
},
"video_record": 0,
"status": 1
}
]
}
|
2.9. 修改数据源排序
- 接口功能描述:修改数据源排序,用于控制界面显示数据源的顺序;
- 接口路径:[PUT] http://盒子IP:9092/ks/source/index;
- Header请求参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| Authorization | String | 是 | 'Bearer ' + token; token通过获取token接口获取 |
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| id | String | 是 | 数据源ID |
| action | String | 是 | 动作,top表示置顶,up表示向上偏移一位,down表示向下偏移一位 |
表. 请求参数
- 响应参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| error_code | Int | 是 | 返回响应码 0: 成功 -1: 客户端错误 -2: 服务端错误 |
| message | String | 是 | 返回响应信息 |
| data | Object | 是 | 返回数据 |
- 响应示例;
| 项目 | 详情 |
|---|---|
| 报文格式 | JSON |
| 报文内容 |
2.10. 上传文件
- 接口功能描述:上传mp4文件;
- 调用时机:选择mp4文件后,先上传文件;
- 接口路径:[POST] http://盒子IP:9092/stream/video_file;
- Header请求参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| Authorization | String | 是 | 'Bearer ' + token; token通过获取token接口获取 |
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| video | File | 是 | mp4视频文件 |
表. 请求参数
- 请求示例;
| 项目 | 详情 |
|---|---|
| 请求格式 | Form Data |
| video | (binary) |
- 响应参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| error_code | Int | 是 | 返回响应码 0: 成功 -1: 客户端错误 -2: 服务端错误 |
| message | String | 是 | 返回响应信息 |
| data | String | 是 | 返回视频ID |
- 响应示例
| 项目 | 详情 |
|---|---|
| 报文格式 | JSON |
| 报文内容 | { "data": "68820b101271cb2f45f465bc", "error_code": 0, "message": "上传视频文件成功!" } |
2.11. 视频文件转为流地址
- 接口功能描述:视频文件转为流地址;
- 调用时机:上传文件后调用,用于生成流地址;
- 接口路径:[GET] http://盒子IP:9092/stream/attr/video_file;
- Header请求参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| Authorization | String | 是 | 'Bearer ' + token; token通过获取token接口获取 |
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| source_id | String | 是 | 数据源ID数组 |
表. 请求参数
- 请求示例;
| 项目 | 详情 |
|---|---|
| 请求格式 | Query String |
| source_id | 68820b101271cb2f45f465bc |
- 响应参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| error_code | Int | 是 | 返回响应码 0: 成功 -1: 客户端错误 -2: 服务端错误 |
| message | String | 是 | 返回响应信息 |
| data | String | 是 | 流地址 |
- 响应示例
| 项目 | 详情 |
|---|---|
| 报文格式 | JSON |
| 报文内容 |
{
"error_code": 0,
"message": "视频流(视频文件)接入成功!",
"data": {
"app": "a80c9349-39f5-4b77-a221-13e326fc425c",
"stream": "69116de6eb712e56054f5d0d",
"url": "rtsp://127.0.0.1:554/a80c9349-39f5-4b77-a221-13e326fc425c/69116de6eb712e56054f5d0d",
"origin_ip": "127.0.0.1",
"origin_url": "rtmp://__defaultVhost__/a80c9349-39f5-4b77-a221-13e326fc425c/69116de6eb712e56054f5d0d?sign=95e6a77218a3971050fe41d3d9e8e6ed",
"is_online": true,
"video": {
"codec": "h264",
"width": 1920,
"height": 1080,
"ready": true
},
"audio": {
"codec": "aac",
"channels": 2,
"sample_rate": 44100,
"sample_bit": 16,
"ready": true
},
"image_size": {
"infer": 640,
"draw": [
1280,
720
]
}
}
}
|
2.12. 获取视频文件路径地址
- 接口功能描述:视频文件转为流地址;
- 调用时机:上传文件后调用,用于生成流地址;
- 接口路径:[GET] http://盒子IP:9092/ks/source/video;
- Header请求参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| Authorization | String | 是 | 'Bearer ' + token; token通过获取token接口获取 |
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| id | String | 是 | 视频文件ID |
表. 请求参数
- 请求示例;
| 项目 | 详情 |
|---|---|
| 请求格式 | Query String |
| id | 68820b101271cb2f45f465bc |
- 响应参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| error_code | Int | 是 | 返回响应码 0: 成功 -1: 客户端错误 -2: 服务端错误 |
| message | String | 是 | 返回响应信息 |
| data | String | 是 | 文件所在路径 |
- 响应示例
| 项目 | 详情 |
|---|---|
| 报文格式 | JSON |
| 报文内容 | { "data": "/home/ema/ks/ks968/data/source/video/684abd7b1271cb0b289c7d6a.mp4", "error_code": 0, "message": "下载视频文件成功!" } |
2.13. 算法查询
- 接口功能描述:对盒子算法查询;
- 接口路径:[GET] http://盒子IP:9092/ks/alg;
- Header请求参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| Authorization | String | 是 | 'Bearer ' + token; token通过获取token接口获取 |
| 项目 | 详情 |
|---|---|
| 请求格式 | Query String |
- 响应参数说明;
| 参数名称 | 数据类型 | 说明 |
|---|---|---|
| error_code | Int | 返回响应码 0: 成功 -1: 客户端错误 -2: 服务端错误 |
| message | String | 返回响应信息 |
| data | Object | 返回数据,具体字段看下发接口 |
- 响应示例。
| 项目 | 详情 |
|---|---|
| 报文格式 | JSON |
| 报文内容 |
{
"error_code": 0,
"message": "查询算法成功!",
"data": [
{
"id": 22,
"name": "helmet",
"config": {
"desc": "适用于工地、工厂场景下未佩戴安全帽检测;支持红色、黄色、蓝色、白色安全帽检测;画面需可分辨头部及安全帽特征;人员头部及安全帽目标不小于画面大小5%;识别距离小于15m最佳(200万@6mm)",
"model": {
"zql_helmet": {
"label": {
"label_map": {
"head": "未佩戴安全帽",
"helmet": "佩戴安全帽"
},
"class2label": {
"0": "head",
"1": "helmet"
}
}
},
"zql_person": {
"label": {
"label_map": {
"person": "人"
},
"class2label": {
"0": "person"
}
}
},
"zql_helmet_classify": {
"label": {
"class2label": {
"0": "head",
"1": "helmet",
"2": "other"
}
},
"inactive": true
}
},
"group_name": "人员管理",
"alert_label": [
"未佩戴安全帽"
],
"display_name": "未佩戴安全帽检测",
"process_time": 10
},
"version": "ks968-20251027"
}
]
}
|
2.14. 新增onvif数据源
- 接口功能描述:新增数据源;
- 接口路径:[POST] http://盒子IP:9092/ks/source;
- Header请求参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| Authorization | String | 是 | 'Bearer ' + token; token通过获取token接口获取 |
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| id | String | 否 | 数据源标识,可以传,不传则自动生成。 |
| desc | String | 是 | 描述,注意同一个盒子不同数据源描述不可重复 |
| type | String | 是 | 摄像头:camera 视频流:stream 视频文件:video |
| stream | object | 否 | 从2.1接口中获取到的stream对象数据
|
| detail | object | 是 | "ipv4": "摄像头IP地址", "protocol": "onvif", "port": 80, "username": "用户名", "password": "密码", "stream_url": "从2.3接口中获取origin_url" |
| video_record | Int | 是 | 是否录制视频,1录制,0不录制 |
表. 请求参数
- 请求示例;
| 项目 | 详情 |
|---|---|
| 请求格式 | JSON |
| 报文内容 |
{
"id": "6912cdabeb712e101f0d404a",
"desc": "1111",
"type": "camera",
"stream": {
"app": "a80c9349-39f5-4b77-a221-13e326fc425c",
"stream": "6912cdabeb712e101f0d404a",
"url": "rtsp://127.0.0.1:554/a80c9349-39f5-4b77-a221-13e326fc425c/6912cdabeb712e101f0d404a",
"origin_ip": "192.168.1.14",
"origin_url": "rtsp://admin:Admin123@192.168.1.14:554/Streaming/Channels/101?transportmode=unicast&profile=Profile_1",
"is_online": true,
"video": {
"codec": "h265",
"width": 1920,
"height": 1080,
"ready": true
},
"audio": {
"codec": "g711a",
"channels": 1,
"sample_rate": 8000,
"sample_bit": 16,
"ready": true
},
"image_size": {
"infer": 640,
"draw": [1280, 720]
}
},
"video_record": 0,
"detail": {
"ipv4": "192.168.1.14",
"protocol": "onvif",
"port": 80,
"username": "admin",
"password": "Admin123",
"stream_url": "rtsp://admin:Admin123@192.168.1.14:554/Streaming/Channels/101?transportmode=unicast&profile=Profile_1"
}
}
|
- 响应参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| error_code | Int | 是 | 返回响应码 0: 成功 -1: 客户端错误 -2: 服务端错误 |
| message | String | 是 | 返回响应信息 |
| data | Null/Object | 是 | null |
- 响应示例;
| 项目 | 详情 |
|---|---|
| 报文格式 | JSON |
| 报文内容 | { "data": null, "error_code": 0, "message": "添加数据源成功!" } |
2.15. 编辑onvif数据源
- 接口功能描述:编辑数据源;
- 接口路径:[PUT] http://盒子IP:9092/ks/source;
- Header请求参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| Authorization | String | 是 | 'Bearer ' + token; token通过获取token接口获取 |
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| Authorization | String | 是 | 'Bearer ' + token; token通过获取token接口获取 |
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| id | String | 否 | 数据源标识,可以传,不传则自动生成。 |
| desc | String | 是 | 描述,注意同一个盒子不同数据源描述不可重复 |
| type | String | 是 | 摄像头:camera 视频流:stream 视频文件:video |
| stream | object | 否 | 从2.1接口中获取stream对象数据 |
| detail | object | 是 | "ipv4": "摄像头IP地址", "protocol": "onvif", "port": 80, "username": "用户名", "password": "密码", "stream_url": "从2.3接口中获取origin_url" |
| video_record | Int | 是 | 是否录制视频,1录制,0不录制 |
- 请求示例;
| 项目 | 详情 |
|---|---|
| 请求格式 | JSON |
| 报文内容 |
{
"id": "6912cdabeb712e101f0d404a",
"desc": "1111",
"type": "camera",
"stream": {
"app": "a80c9349-39f5-4b77-a221-13e326fc425c",
"stream": "6912cdabeb712e101f0d404a",
"url": "rtsp://127.0.0.1:554/a80c9349-39f5-4b77-a221-13e326fc425c/6912cdabeb712e101f0d404a",
"origin_ip": "192.168.1.14",
"origin_url": "rtsp://admin:Admin123@192.168.1.14:554/Streaming/Channels/101?transportmode=unicast&profile=Profile_1",
"is_online": true,
"video": {
"codec": "h265",
"width": 1920,
"height": 1080,
"ready": true
},
"audio": {
"codec": "g711a",
"channels": 1,
"sample_rate": 8000,
"sample_bit": 16,
"ready": true
},
"image_size": {
"infer": 640,
"draw": [1280, 720]
}
},
"video_record": 0,
"detail": {
"ipv4": "192.168.1.14",
"protocol": "onvif",
"port": 80,
"username": "admin",
"password": "Admin123",
"stream_url": "rtsp://admin:Admin123@192.168.1.14:554/Streaming/Channels/101?transportmode=unicast&profile=Profile_1"
}
}
|
- 响应参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| error_code | Int | 是 | 返回响应码 0: 成功 -1: 客户端错误 -2: 服务端错误 |
| message | String | 是 | 返回响应信息 |
| data | Null/Object | 是 | null |
- 响应示例;
| 项目 | 详情 |
|---|---|
| 报文格式 | JSON |
| 报文内容 | { "data": null, "error_code": 0, "message": "更新数据源成功!" } |
2.16. 新增视频流数据源
- 接口功能描述:新增数据源;
- 接口路径:[POST] http://盒子IP:9092/ks/source;
- Header请求参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| Authorization | String | 是 | 'Bearer ' + token; token通过获取token接口获取 |
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| id | String | 是 | 数据源标识,可以传,不传则自动生成。 |
| desc | String | 是 | 描述,注意同一个盒子不同数据源描述不可重复 |
| type | String | 是 | 摄像头:camera 视频流:stream 视频文件:video |
| stream | object | 否 | 从2.1接口中获取stream对象数据 |
| detail | object | 是 | "username": "", "password": "", "stream_url": "视频流地址" |
| video_record | Int | 是 | 是否录制视频,1录制,0不录制 |
表. 请求参数
- 请求示例;
| 项目 | 详情 |
|---|---|
| 请求格式 | JSON |
| 报文内容 |
{
"id": "6912d10eeb712e101f0d40a3",
"desc": "1111333",
"type": "stream",
"stream": {
"app": "a80c9349-39f5-4b77-a221-13e326fc425c",
"stream": "6912d10eeb712e101f0d40a3",
"url": "rtsp://127.0.0.1:554/a80c9349-39f5-4b77-a221-13e326fc425c/6912d10eeb712e101f0d40a3",
"origin_ip": "192.168.1.68",
"origin_url": "rtmp://192.168.1.68:1935/live/tt",
"is_online": true,
"video": {
"codec": "h264",
"width": 1280,
"height": 720,
"ready": true
},
"audio": {
"codec": "aac",
"channels": 2,
"sample_rate": 48000,
"sample_bit": 16,
"ready": true
},
"image_size": {
"infer": 640,
"draw": [1280, 720]
}
},
"video_record": 0,
"detail": {
"username": "",
"password": "",
"stream_url": "rtmp://192.168.1.68:1935/live/tt"
}
}
|
- 响应参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| error_code | Int | 是 | 返回响应码 0: 成功 -1: 客户端错误 -2: 服务端错误 |
| message | String | 是 | 返回响应信息 |
| data | Null/Object | 是 | null |
- 响应示例;
| 项目 | 详情 |
|---|---|
| 报文格式 | JSON |
| 报文内容 | { "data": null, "error_code": 0, "message": "添加数据源成功!" } |
2.17. 编辑视频流数据源
- 接口功能描述:编辑数据源;
- 接口路径:[PUT] http://盒子IP:9092/ks/source;
- Header请求参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| Authorization | String | 是 | 'Bearer ' + token; token通过获取token接口获取 |
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| Authorization | String | 是 | 'Bearer ' + token; token通过获取token接口获取 |
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| id | String | 是 | 数据源标识,可以传,不传则自动生成。 |
| desc | String | 否 | 描述,注意同一个盒子不同数据源描述不可重复 |
| type | String | 否 | 摄像头:camera 视频流:stream 视频文件:video |
| stream | object | 否 | 从2.1接口中获取stream对象数据 |
| detail | object | 否 | "username": "", "password": "", "stream_url": "视频流地址" |
| video_record | Int | 否 | 是否录制视频,1录制,0不录制 |
- 请求示例;
| 项目 | 详情 |
|---|---|
| 请求格式 | JSON |
| 报文内容 |
{
"id": "6912d10eeb712e101f0d40a3",
"desc": "1111333",
"type": "stream",
"stream": {
"app": "a80c9349-39f5-4b77-a221-13e326fc425c",
"stream": "6912d10eeb712e101f0d40a3",
"url": "rtsp://127.0.0.1:554/a80c9349-39f5-4b77-a221-13e326fc425c/6912d10eeb712e101f0d40a3",
"origin_ip": "192.168.1.68",
"origin_url": "rtmp://192.168.1.68:1935/live/tt",
"is_online": true,
"video": {
"codec": "h264",
"width": 1280,
"height": 720,
"ready": true
},
"audio": {
"codec": "aac",
"channels": 2,
"sample_rate": 48000,
"sample_bit": 16,
"ready": true
},
"image_size": {
"infer": 640,
"draw": [1280, 720]
}
},
"video_record": 0,
"detail": {
"username": "",
"password": "",
"stream_url": "rtmp://192.168.1.68:1935/live/tt"
}
}
|
- 响应参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| error_code | Int | 是 | 返回响应码 0: 成功 -1: 客户端错误 -2: 服务端错误 |
| message | String | 是 | 返回响应信息 |
| data | Null/Object | 是 | null |
- 响应示例;
| 项目 | 详情 |
|---|---|
| 报文格式 | JSON |
| 报文内容 | { "data": null, "error_code": 0, "message": "更新数据源成功!" } |
2.18. 新增视频文件数据源
- 接口功能描述:新增数据源;
- 接口路径:[POST] http://盒子IP:9092/ks/source;
- Header请求参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| Authorization | String | 是 | 'Bearer ' + token; token通过获取token接口获取 |
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| id | String | 是 | 数据源标识,可以传,不传则自动生成。 |
| desc | String | 是 | 描述,注意同一个盒子不同数据源描述不可重复 |
| type | String | 是 | 摄像头:camera 视频流:stream 视频文件:video |
| stream | object | 否 | 从2.1接口中获取stream对象数据 |
| detail | object | 是 | "performance_mode": "false",//性能模式是否开启 "stream_url": "视频流地址" |
| video_record | Int | 是 | 是否录制视频,1录制,0不录制 |
表. 请求参数
- 请求示例;
| 项目 | 详情 |
|---|---|
| 请求格式 | JSON |
| 报文内容 |
{
"id": "6912d2aceb712e101f0d40ce",
"desc": "3.mp4",
"type": "video",
"stream": {
"app": "a80c9349-39f5-4b77-a221-13e326fc425c",
"stream": "6912d2aceb712e101f0d40ce",
"url": "rtsp://127.0.0.1:554/a80c9349-39f5-4b77-a221-13e326fc425c/6912d2aceb712e101f0d40ce",
"origin_ip": "127.0.0.1",
"origin_url": "rtmp://__defaultVhost__/a80c9349-39f5-4b77-a221-13e326fc425c/6912d2aceb712e101f0d40ce?sign=95e6a77218a3971050fe41d3d9e8e6ed",
"is_online": true,
"video": {
"codec": "h264",
"width": 640,
"height": 360,
"ready": true
},
"audio": {
"codec": "aac",
"channels": 2,
"sample_rate": 44100,
"sample_bit": 16,
"ready": true
},
"image_size": {
"infer": 640,
"draw": [
1280,
720
]
}
},
"video_record": 0,
"detail": {
"performance_mode": false,
"stream_url": "rtmp://__defaultVhost__/a80c9349-39f5-4b77-a221-13e326fc425c/6912d2aceb712e101f0d40ce?sign=95e6a77218a3971050fe41d3d9e8e6ed"
}
}
|
- 响应参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| error_code | Int | 是 | 返回响应码 0: 成功 -1: 客户端错误 -2: 服务端错误 |
| message | String | 是 | 返回响应信息 |
| data | Null/Object | 是 | null |
- 响应示例;
| 项目 | 详情 |
|---|---|
| 报文格式 | JSON |
| 报文内容 | { "data": null, "error_code": 0, "message": "添加数据源成功!" } |
2.19. 编辑视频文件数据源
- 接口功能描述:编辑数据源;
- 接口路径:[PUT] http://盒子IP:9092/ks/source;
- Header请求参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| Authorization | String | 是 | 'Bearer ' + token; token通过获取token接口获取 |
- Body请求参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| id | String | 是 | 数据源标识,可以传,不传则自动生成。 |
| desc | String | 否 | 描述,注意同一个盒子不同数据源描述不可重复 |
| type | String | 否 | 摄像头:camera 视频流:stream 视频文件:video |
| stream | object | 否 | 从2.1接口中获取stream对象数据 |
| detail | object | 否 | "performance_mode": "false",//性能模式是否开启 "stream_url": "视频流地址" |
| video_record | Int | 是 | 是否录制视频,1录制,0不录制 |
- 请求示例;
| 项目 | 详情 |
|---|---|
| 请求格式 | JSON |
| 报文内容 |
{
"id": "6912d2aceb712e101f0d40ce",
"desc": "3.mp4",
"type": "video",
"stream": {
"app": "a80c9349-39f5-4b77-a221-13e326fc425c",
"stream": "6912d2aceb712e101f0d40ce",
"url": "rtsp://127.0.0.1:554/a80c9349-39f5-4b77-a221-13e326fc425c/6912d2aceb712e101f0d40ce",
"origin_ip": "127.0.0.1",
"origin_url": "rtmp://__defaultVhost__/a80c9349-39f5-4b77-a221-13e326fc425c/6912d2aceb712e101f0d40ce?sign=95e6a77218a3971050fe41d3d9e8e6ed",
"is_online": true,
"video": {
"codec": "h264",
"width": 640,
"height": 360,
"ready": true
},
"audio": {
"codec": "aac",
"channels": 2,
"sample_rate": 44100,
"sample_bit": 16,
"ready": true
},
"image_size": {
"infer": 640,
"draw": [
1280,
720
]
}
},
"video_record": 0,
"detail": {
"performance_mode": false,
"stream_url": "rtmp://__defaultVhost__/a80c9349-39f5-4b77-a221-13e326fc425c/6912d2aceb712e101f0d40ce?sign=95e6a77218a3971050fe41d3d9e8e6ed"
}
}
|
- 响应参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| error_code | Int | 是 | 返回响应码 0: 成功 -1: 客户端错误 -2: 服务端错误 |
| message | String | 是 | 返回响应信息 |
| data | Null/Object | 是 | null |
- 响应示例;
| 项目 | 详情 |
|---|---|
| 报文格式 | JSON |
| 报文内容 | { "data": null, "error_code": 0, "message": "更新数据源成功!" } |
2.20. 开关数据源
- 接口功能描述:编辑数据源;
- 接口路径:[PUT] http://盒子IP:9092/ks/source;
- Header请求参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| Authorization | String | 是 | 'Bearer ' + token; token通过获取token接口获取 |
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| id | String | 否 | 数据源标识。 |
| status | Int | 是 | 是否停用视频源,-1停用,1启用 |
表. 请求参数
- 请求示例;
| 项目 | 详情 |
|---|---|
| 请求格式 | JSON |
| 报文内容 |
{
"id": "690f06f5eb712e103c551cf2",
"status": -1,
|
- 响应参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| error_code | Int | 是 | 返回响应码 0: 成功 -1: 客户端错误 -2: 服务端错误 |
| message | String | 是 | 返回响应信息 |
| data | Null/Object | 是 | null |
- 响应示例;
| 项目 | 详情 |
|---|---|
| 报文格式 | JSON |
| 报文内容 | { "data": null, "error_code": 0, "message": "更新数据源成功!" } |
2.21. 国标设备查询
- 接口功能描述:对盒子算法查询;
- 接口路径:[GET] http://盒子IP:9092/stream/gb28181/device;
- Header请求参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| Authorization | String | 是 | 'Bearer ' + token; token通过获取token接口获取 |
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| page | Int | 是 | 页码 |
| size | Int | 是 | 每页数量 |
- 响应参数说明;
| 参数名称 | 数据类型 | 说明 |
|---|---|---|
| error_code | Int | 返回响应码 0: 成功 -1: 客户端错误 -2: 服务端错误 |
| message | String | 返回响应信息 |
| data | Object | 返回数据,具体字段看下发接口 |
- 响应示例。
| 项目 | 详情 |
|---|---|
| 报文格式 | JSON |
| 报文内容 |
{
"error_code": 0,
"message": "查询设备成功!",
"data": {
"code": 0,
"msg": "成功",
"data": {
"total": 1,
"list": [
{
"id": 4,
"deviceId": "34020000001320000019",//用来查询国标设备通道
"name": null,
"manufacturer": null,
"model": null,
"firmware": null,
"transport": "TCP",
"streamMode": "TCP-PASSIVE",
"ip": "192.168.1.9",
"port": 54107,
"hostAddress": "192.168.1.9:54107",
"onLine": true,
"registerTime": "2025-11-10 08:58:46",
"keepaliveTime": "2025-11-10 09:04:17",
"heartBeatInterval": 60,
"heartBeatCount": 3,
"positionCapability": 0,
"channelCount": 1,
"expires": 3600,
"createTime": "2025-11-07 10:41:33",
"updateTime": "2025-11-10 09:04:17",
"mediaServerId": "auto",
"charset": "GB2312",
"subscribeCycleForCatalog": 0,
"subscribeCycleForMobilePosition": 0,
"mobilePositionSubmissionInterval": 5,
"subscribeCycleForAlarm": 0,
"ssrcCheck": false,
"geoCoordSys": "WGS84",
"password": null,
"sdpIp": null,
"localIp": "192.168.1.159",
"asMessageChannel": false,
"sipTransactionInfo": null,
"broadcastPushAfterAck": false,
"serverId": "000000"
}
],
"pageNum": 1,
"pageSize": 10000,
"size": 1,
"startRow": 1,
"endRow": 1,
"pages": 1,
"prePage": 0,
"nextPage": 0,
"isFirstPage": true,
"isLastPage": true,
"hasPreviousPage": false,
"hasNextPage": false,
"navigatePages": 8,
"navigatepageNums": [
1
],
"navigateFirstPage": 1,
"navigateLastPage": 1
}
}
}
|
2.22. 国标设备通道查询
- 接口功能描述:对盒子算法查询;
- 接口路径:[GET] http://盒子IP:9092/stream/gb28181/device/channel;
- Header请求参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| Authorization | String | 是 | 'Bearer ' + token; token通过获取token接口获取 |
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| page | Int | 是 | 页码 |
| size | Int | 是 | 每页数量 |
| device_id | Int | 是 | 国标设备ID, 国标设备查询中获取 |
- 响应参数说明;
| 参数名称 | 数据类型 | 说明 |
|---|---|---|
| error_code | Int | 返回响应码 0: 成功 -1: 客户端错误 -2: 服务端错误 |
| message | String | 返回响应信息 |
| data | Object | 返回数据,具体字段看下发接口 |
- 响应示例。
| 项目 | 详情 |
|---|---|
| 报文格式 | JSON |
| 报文内容 |
{
"error_code": 0,
"message": "查询设备通道成功!",
"data": {
"code": 0,
"msg": "成功",
"data": {
"total": 1,
"list": [
{
"gbId": 0,
"gbDeviceId": null,
"gbName": null,
"gbManufacturer": null,
"gbModel": null,
"gbOwner": null,
"gbCivilCode": null,
"gbBlock": null,
"gbAddress": null,
"gbParental": null,
"gbParentId": null,
"gbSafetyWay": null,
"gbRegisterWay": null,
"gbCertNum": null,
"gbCertifiable": null,
"gbErrCode": null,
"gbEndTime": null,
"gbSecrecy": null,
"gbIpAddress": null,
"gbPort": null,
"gbPassword": null,
"gbStatus": null,
"gbLongitude": null,
"gbLatitude": null,
"gpsAltitude": null,
"gpsSpeed": null,
"gpsDirection": null,
"gpsTime": null,
"gbBusinessGroupId": null,
"gbPtzType": null,
"gbPositionType": null,
"gbRoomType": null,
"gbUseType": null,
"gbSupplyLightType": null,
"gbDirectionType": null,
"gbResolution": null,
"gbDownloadSpeed": null,
"gbSvcSpaceSupportMod": null,
"gbSvcTimeSupportMode": null,
"recordPLan": null,
"dataType": 1,
"dataDeviceId": 4,
"createTime": "2025-11-07 10:41:33",
"updateTime": "2025-11-08 02:00:39",
"id": 5,
"parentDeviceId": "34020000001320000019",
"parentName": null,
"deviceId": "34020000001320000009",
"name": "14",
"manufacturer": "Hikvision",
"model": "IP Camera",
"owner": "Owner",
"civilCode": null,
"block": null,
"address": "Address",
"parental": 0,
"parentId": null,
"safetyWay": 0,
"registerWay": 1,
"certNum": null,
"certifiable": null,
"errCode": null,
"endTime": null,
"secrecy": 0,
"ipAddress": null,
"port": null,
"password": null,
"status": "ON",
"longitude": null,
"latitude": null,
"ptzType": null,
"positionType": null,
"roomType": null,
"useType": null,
"supplyLightType": null,
"directionType": null,
"resolution": null,
"businessGroupId": null,
"downloadSpeed": null,
"svcSpaceSupportMod": null,
"svcTimeSupportMode": null,
"ptzTypeText": null,
"subCount": 0,
"streamId": "34020000001320000019_34020000001320000009",//流ID,APP ID默认是rtp
"hasAudio": false,
"streamIdentification": null,
"channelType": 0
}
],
"pageNum": 1,
"pageSize": 10000,
"size": 1,
"startRow": 1,
"endRow": 1,
"pages": 1,
"prePage": 0,
"nextPage": 0,
"isFirstPage": true,
"isLastPage": true,
"hasPreviousPage": false,
"hasNextPage": false,
"navigatePages": 8,
"navigatepageNums": [
1
],
"navigateFirstPage": 1,
"navigateLastPage": 1
}
}
}
|
2.23. 国标设备接入
- 接口功能描述:国标设备接入;
- 接口路径:[GET] http://盒子IP:9092/stream/attr/gb28181;
- Header请求参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| Authorization | String | 是 | 'Bearer ' + token; token通过获取token接口获取 |
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| source_id | Int | 是 | streamId, 从查询设备国标通道中获取 |
- 响应参数说明;
| 参数名称 | 数据类型 | 说明 |
|---|---|---|
| error_code | Int | 返回响应码 0: 成功 -1: 客户端错误 -2: 服务端错误 |
| message | String | 返回响应信息 |
| data | Object | 返回数据,具体字段看下发接口 |
- 响应示例。
| 项目 | 详情 |
|---|---|
| 报文格式 | JSON |
| 报文内容 |
{
"error_code": 0,
"message": "视频流(gb28181)接入成功!",
"data": {
"app": "rtp",
"stream": "34020000001320000019_34020000001320000009",
"url": "rtsp://127.0.0.1:554/rtp/34020000001320000019_34020000001320000009",
"origin_ip": "192.168.1.9",
"origin_url": "rtp://__defaultVhost__/rtp/34020000001320000019_34020000001320000009",
"is_online": true,
"video": {
"codec": "h264",
"width": 1920,
"height": 1080,
"ready": true
},
"audio": null,
"image_size": {
"infer": 640,
"draw": [
1280,
720
]
}
}
}
|
2.24. 新增国标数据源
- 接口功能描述:编辑国标数据源;
- 接口路径:[POST] http://盒子IP:9092/ks/source;
- Header请求参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| Authorization | String | 是 | 'Bearer ' + token; token通过获取token接口获取 |
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| id | String | 否 | 数据源标识,可以传,不传则自动生成。 |
| desc | String | 是 | 描述,注意同一个盒子不同数据源描述不可重复 |
| type | String | 是 | 摄像头:camera 视频流:stream 视频文件:video |
| stream | object | 否 | 填写2.23接口中获取到的stream对象数据 |
| detail | object | 是 |
"stream_url": "国标流播放url rtp://__defaultVhost__/rtp/视频流ID",视频流ID是从2.17接口中获取 "deviceId": "streamId", |
| video_record | Int | 是 | 是否录制视频,1录制,0不录制 |
表. 请求参数
- 请求示例;
| 项目 | 详情 |
|---|---|
| 请求格式 | JSON |
| 报文内容 |
{
"id": "34020000001320000019_34020000001320000009",
"desc": "null_14",
"type": "gb28181",
"stream": {
"app": "rtp",
"stream": "34020000001320000019_34020000001320000009",
"url": "rtsp://127.0.0.1:554/rtp/34020000001320000019_34020000001320000009",
"origin_ip": "192.168.1.9",
"origin_url": "rtp://__defaultVhost__/rtp/34020000001320000019_34020000001320000009",
"is_online": true,
"video": {
"codec": "h264",
"width": 1920,
"height": 1080,
"ready": true
},
"audio": null,
"image_size": {
"infer": 640,
"draw": [
1280,
720
]
}
},
"video_record": 0,
"detail": {
"stream_url": "rtp://__defaultVhost__/rtp/34020000001320000019_34020000001320000009",
"deviceId": "34020000001320000019_34020000001320000009"
}
}
|
- 响应参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| error_code | Int | 是 | 返回响应码 0: 成功 -1: 客户端错误 -2: 服务端错误 |
| message | String | 是 | 返回响应信息 |
| data | Null/Object | 是 | null |
- 响应示例;
| 项目 | 详情 |
|---|---|
| 报文格式 | JSON |
| 报文内容 | { "data": null, "error_code": 0, "message": "添加数据源成功!" } |
2.25. 编辑国标数据源
- 接口功能描述:编辑国标数据源;
- 接口路径:[PUT] http://盒子IP:9092/ks/source;
- Header请求参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| Authorization | String | 是 | 'Bearer ' + token; token通过获取token接口获取 |
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| id | String | 否 | 数据源标识,可以传,不传则自动生成。 |
| desc | String | 是 | 描述,注意同一个盒子不同数据源描述不可重复 |
| type | String | 是 | 摄像头:camera 视频流:stream 视频文件:video |
| stream | object | 否 | 填写2.18接口中获取到的stream对象数据 |
| detail | object | 是 |
"stream_url": "国标流播放url rtp://__defaultVhost__/rtp/视频流ID",视频流ID是从2.17接口中获取 "deviceId": "streamId", |
| video_record | Int | 是 | 是否录制视频,1录制,0不录制 |
表. 请求参数
- 请求示例;
| 项目 | 详情 |
|---|---|
| 请求格式 | JSON |
| 报文内容 |
{
"id": "34020000001320000019_34020000001320000009",
"desc": "null_14",
"type": "gb28181",
"stream": {
"app": "rtp",
"stream": "34020000001320000019_34020000001320000009",
"url": "rtsp://127.0.0.1:554/rtp/34020000001320000019_34020000001320000009",
"origin_ip": "192.168.1.9",
"origin_url": "rtp://__defaultVhost__/rtp/34020000001320000019_34020000001320000009",
"is_online": true,
"video": {
"codec": "h264",
"width": 1920,
"height": 1080,
"ready": true
},
"audio": null,
"image_size": {
"infer": 640,
"draw": [
1280,
720
]
}
},
"video_record": 0,
"detail": {
"stream_url": "rtp://__defaultVhost__/rtp/34020000001320000019_34020000001320000009",
"deviceId": "34020000001320000019_34020000001320000009"
}
}
|
- 响应参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| error_code | Int | 是 | 返回响应码 0: 成功 -1: 客户端错误 -2: 服务端错误 |
| message | String | 是 | 返回响应信息 |
| data | Null/Object | 是 | null |
- 响应示例;
| 项目 | 详情 |
|---|---|
| 报文格式 | JSON |
| 报文内容 | { "data": null, "error_code": 0, "message": "更新数据源成功!" } |
2.26. 国标SIP配置查询
- 接口功能描述:国标设备接入;
- 接口路径:[GET] http://盒子IP:9092/stream/gb28181/sip_config;
- Header请求参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| Authorization | String | 是 | 'Bearer ' + token; token通过获取token接口获取 |
- Query请求参数说明:无
- 请求示例;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| source_id | Int | 是 | streamId, 从查询设备国标通道中获取 |
- 响应参数说明;
| 参数名称 | 数据类型 | 说明 |
|---|---|---|
| error_code | Int | 返回响应码 0: 成功 -1: 客户端错误 -2: 服务端错误 |
| message | String | 返回响应信息 |
| data | Object | 返回数据,具体字段看下发接口 |
- 响应示例。
| 项目 | 详情 |
|---|---|
| 报文格式 | JSON |
| 报文内容 |
{
"error_code": 0,
"message": "获取sip配置成功!",
"data": {
"port": 11000, //SIP认证端口
"domain": "3701020049",//SIPdomain
"id": "37010200492000000001",//服务端SIP ID
"password": "Ssbmyl@202010" //SIP认证密码
}
}
|
真诚点赞 诚不我欺
回复