1.业务接口
1.1 播放实时画面以及实时检测结果可视化
视频流播放以及实时检测结果可视化前端示例代码(点击此处跳转)
接口调用顺序: 2.1 -> 2.2 -> 2.3 ->2.4
说明:
2.1:获取画面播放相关的端口号
2.2:获取视频列表,仅status为1的视频可以播放实时画面
2.3:获取播放链接
2.4:订阅mqtt实时检测消息,获取正在播放的实时画面的实时检测结果
1.2 实时告警
接口调用顺序:2.5
1.3 最近7日告警趋势
接口调用顺序:2.6
示例:http://盒子IP:9091/ks/alert/count?group_by=alert_time&start_time=1752595200
1.4 告警类型排行
接口调用顺序:2.6
示例:http://盒子IP:9091/ks/alert/count?group_by=alg_ch_name
1.5 告警统计
接口调用顺序:2.6
本周告警示例:http://盒子IP:9091/ks/alert/count?start_time=1748707200
1.6 接入状态
接口调用顺序:
2.2可获取所有视频状态,status为1表示启用状态
2.1可获取上限数,max_source
1.7 今日告警统计
接口调用顺序:2.6
示例:http://盒子IP:9091/ks/alert/count?start_time=1753113600&group_by=alert_time
2.原子接口
2.1. 获取系统参数
- 接口功能描述:获取系统参数;
- 接口路径:[GET] http://设备IP:9091/ks/system/args;
- 请求参数: 无
- 响应参数说明;
参数名称 | 数据类型 | 说明 |
---|---|---|
error_code | Int | 返回响应码 0: 成功 -1: 客户端错误 -2: 服务端错误 |
message | String | 返回响应信息 |
data | Object | 以对象形式返回系统参数,包括安全策略、端口映射等,远程隧道开启时,map.local中的端口不能使用,应使用远程隧道中配置的端口 |
表. 请求参数
- 响应示例。
项目 | 详情 |
---|---|
报文格式 | JSON |
报文内容 | { "error_code": 0, "message": { "zh": "查询系统参数成功!", "en": "Query system parameters successful!" }, "data": { "infer_freq": 9.9, // 检测频率 "max_source": 8, // 最大接入路数 "login": { "lockout": { "enable": false, "max_attempts": 5, "time": 1800 }, "captcha": { "enable": false, "expire": 60 }, "login_free": false }, "video_range": [ -5, 5 ], "stream_protocol": { "local": "default", "proxy": "default" }, "map": { "local": { "http_server": 9092, "srs_server": 1935,//播放webrtc时使用 "srs_http_api": 1985,//播放webrtc时使用 "srs_http_server": 8080,//播放flv时使用 "websocket": 8083 }, "proxy": { "srs_server": 11935, "srs_http_api": 11985, "srs_http_server": 18080 } } } } |
2.2. 查询数据源
- 接口功能描述:查询数据源,不传参表示查询所有数据源;
- 接口路径:[GET] http://设备IP:9091/ks/source;
- 请求参数说明;
参数名称 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
id | String | 否 | 数据源ID |
表. 请求参数
- 响应参数说明;
参数名称 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
error_code | Int | 是 | 返回响应码 0: 成功 -1: 客户端错误 -2: 服务端错误 |
message | String | 是 | 返回响应信息 |
data | Object | 是 | 返回数据 |
- 响应示例;
项目 | 详情 |
---|---|
报文格式 | JSON |
报文内容 | { "error_code": 0, "message": { "zh": "查询数据源成功!", "en": "Query source successful!" }, "data": [ { "id": "66dec1855dc58a0b1dd9ed5d", "index": 1, "ipv4": "", "desc": "vivie", "type": "stream", "encoding": "h264", "info": "{\"rtsp_transport\": \"tcp\"}", "stream": "rtmp://192.168.1.68/live/vivie", "infer_size": 640, "draw_size": [ 1280, 720 ], "alg": { "car_counting": { "reserved_args": { "ch_name": "车辆计数", "sound_text": "车辆计数告警", "strategy": "center" }, "alert_window": { "type": "threshold_window", "length": 1, "threshold": 1 }, "bbox": { "polygons": [], "lines": [ { "id": "line_34657b8a-8edc-4c02-80ef-a3d5707456d6", "name": "A", "line": [ [25,393], [1216,390] ], "direction": "u+", "action": { "count": "统计" } } ] }, "plan": { "1": [[0,86399]], "2": [[0,86399]], "3": [[0,86399]], "4": [[0,86399]], "5": [[0,86399]], "6": [[0,86399]], "7": [[0,86399]] }, "hazard_level": "", "alg_type": "cross_line_counting", "model_args": { "common": { "conf_thres": 0.5 } } } }, "video_record": 0, "status": 1 } ] } |
2.3. 订阅实时视频流
- 接口功能描述:订阅实时画面,获取实时画面播放地址;
- 接口路径:[GET] http://设备IP:9089/ks/stream/live/subscribe;
- 请求参数说明;
参数名称 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
source_id | String | 是 | 数据源ID |
表. 请求参数
- 请求示例;
项目 | 详情 |
---|---|
请求格式 | Query String |
source_id | 6593d066522e4b1f0c6b95f6 |
- 响应参数说明;
参数名称 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
error_code | Int | 是 | 返回响应码 0: 成功 -1: 客户端错误 -2: 服务端错误 |
message | String | 是 | 返回响应信息 |
data | Object | 是 | 返回视频流地址 |
- 响应示例;
项目 | 详情 |
---|---|
报文格式 | JSON |
报文内容 | { "data": "webrtc://192.168.1.88/live/d847a577-3e04-42bd-8cb9-c630b5dfbfc8/65ae0cc0522e4b4c6fee314d", "error_code": 0, "message": { "zh": "订阅实时视频流成功!", "en": "Subscribe stream successful!" } } |
2.4. 实时分析结果
- 接口功能描述:实时订阅实时分析结果(播放流时产生MQTT消息),用于前端播放时实时画框;
- topic: ks/sink_local_result
- 对应平台位置:【实时画面】
- 响应示例。
项目 | 详情 |
---|---|
报文格式 | JSON |
报文内容 | { "msg_id": "uuid", "msg_type": "result", "time": "2024-01-23 10:25:36.216528", "data": { "time": "1705976735.391402", "hit": false, "hazard_level": "", //危险等级 "source": { "id": "摄像头id", "ipv4": "摄像头ip", "desc": "摄像头描述" }, "alg": { "type": "算法类型", "name": "算法英文名称", "ch_name": "算法中文名称", }, "reserved_data": { "bbox": { "rectangles": [{ //左上角、右下角坐标 "xyxy": [680, 198, 1178, 696], "color": [0, 0, 255], //BGR颜色 "conf": 0.91, //置信度 "label": "未佩戴安全帽", //标签 "ext": {} //扩展字段 } ] //矩形数组 "polygons": { "xxxxxx": { //多边形id "name": "离岗检测", //多边形名称 "color": [0, 0, 255], //BGR颜色 "polygon": [ //顶点坐标 [568, 205], [920, 140], [843, 471], [576, 471] ], "ext": {} //扩展字段 } } //多边形对象 "lines": { "xxxxxx": { //线段id "name": "线段1", //线段名称 //顶点坐标 "line": [[680, 198], [1178, 696]], "color": [0, 0, 255], //BGR颜色 "ext": {} //扩展字段 } } //线段对象 } } } } |
2.5. 实时告警信息
- 接口功能描述:实时订阅盒子告警;
- topic:ks/sink_local_alert;
- 对应平台位置:【实时画面】右侧【最新告警】模块
- 响应示例。
项目 | 详情 |
---|---|
报文格式 | JSON |
报文内容 | { "msg_id": "uuid", "msg_type": "alert", "time": "发送时间", "data": { "id": "告警id", "alert_time": "时间戳", "source_id": "摄像头ID,对应新增摄像头的ID", "source_ipv4": "摄像头IP", "source_desc": "摄像头描述", "alg_name": "算法英文名称", "alg_ch_name": "算法中文名称", "image": "图片路径,访问需要加上代理http://设备IP:9092/staticdata+图片路径", "reserved_data": "人脸告警才有数据", "hazard_level": "危害等级", "status": "摄像头状态"// 1: 启用,-1:停用 } } |
reserved_data | { group:{ "id": "666825ae5dc58a319bb9c1e8", "name": "分组名称", }, face:[{ "id": "6594e027522e4bbbcfe12194(唯一ID)", "name": "姓名", "age": "年龄", "sex": "性别", "desc": "描述", "update_time": "时间戳", "lib_image": "底库人脸图片", "cap_image": "抓拍人脸图片", "conf": "比对置信度" } ]} |
2.6. 告警统计
- 接口功能描述:获取首页告警统计;
- 接口路径:[GET] http://设备IP:9091/ks/alert/count;
- 请求参数说明:
参数名称 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
group_by | String | 否 | 对查询结果分组 alert_time为根据时间分组; alg_ch_name为根据算法名称分组 |
start_time | Int | 否 | 开始时间秒数 |
表. 请求参数
- 请求示例;
项目 | 详情 |
---|---|
请求格式 | Query String |
start_time | 1753113600 |
group_by | alert_time |
- 响应参数说明;
参数名称 | 数据类型 | 说明 |
---|---|---|
error_code | Int | 返回响应码 0: 成功 -1: 客户端错误 -2: 服务端错误 |
message | String | 返回响应信息 |
data | Object或Int | 告警统计数据 |
表. 请求参数
- 响应示例。
项目 | 详情 |
---|---|
报文格式 | JSON |
报文内容 | { "error_code": 0, "message": { "zh": "查询告警成功!", "en": "Query alert successful!" }, "data": { "2025-07-22": { "1": 110,// 未处理告警数 "2": 6,// 已确认告警数 "3": 10,// 误报告警数 } } } |
真诚点赞 诚不我欺
回复