具备对视频监控设备(硬盘录像机或视频监控系统、摄像机)、视频分析设备,新增、配置、删除、查询等操作。
1. 检测是否在线
- 接口功能描述:新增数据源时需要传入告警图片大小、编码格式,需要先通过此接口获取;
- 接口路径:[GET]http://设备IP:9089/ks/stream/attr;
- 请求参数说明;
参数名称 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
stream | String | 是 | 视频流地址 |
draw_size | Int | 是 | 默认填入1280即可 |
rtsp_transport | String | 否 | 可选参数,缺省值为“tcp”,建议与新增数据源接口中的参数info-> rtsp_transport的值保持一致 |
表. 请求参数
- 请求示例;
项目 | 详情 |
---|---|
请求格式 | Query String |
stream | rtsp://xxx/main/av\_stream |
draw_size | 1280 |
rtsp_transport | tcp |
表. 请求参数
- 响应参数说明;
参数名称 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
error_code | Int | 是 | 返回响应码 0: 成功 -1: 客户端错误 -2: 服务端错误 |
message | String | 是 | 返回响应信息 |
data | Object | 是 | 如果数据源在线返回数据源信息,如果数据源不在线,返回空对象 |
- 响应示例。
项目 | 详情 |
---|---|
报文格式 | JSON |
报文内容 | { "data": { "codec": "h265", "fps": 25, "size": [1280, 720] }, "error_code": 0, "message": { "zh": "获取流状态成功!", "en": "Get stream status successful!" } } |
2. 获取数据源画面
- 接口功能描述:获取数据源画面,绘制检测区域时调用获取;
- 接口路径:[GET]http://设备IP:9089/ks/stream/image;
- 请求参数说明;
参数名称 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
stream | String | 是 | 视频流地址 |
draw_size | String | 是 | 通过检测是否在线接口获取到的size,如[1280,720] |
表. 请求参数
- 请求示例;
项目 | 详情 |
---|---|
请求格式 | Query String |
stream | rtsp://xxx/main/av\_stream |
draw_size | [1280,720] |
- 响应参数说明;
参数名称 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
error_code | Int | 是 | 返回响应码 0: 成功 -1: 客户端错误 -2: 服务端错误 |
message | String | 是 | 返回响应信息 |
data | String | 是 | 返回base64图片数据 |
- 响应示例。
项目 | 详情 |
---|---|
报文格式 | JSON |
报文内容 | { "data": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQEBAQ…", "error_code": 0, "message": { "zh": "获取图像成功!", "en": "Get image successful!" } } |
3. onvif
- 接口功能描述:获取数据源信息,如品牌、码流地址等;
- 接口路径:[GET]http://设备IP:9091/ks/source/onvif;
- 请求参数说明;
参数名称 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
username | String | 是 | 数据源onvif用户 |
password | String | 是 | 数据源onvif密码 |
ip | String | 是 | 数据源IP地址 |
port | Int | 是 | onvif协议端口,默认80 |
表. 请求参数
- 请求示例;
项目 | 详情 |
---|---|
请求格式 | Query String |
username | admin |
password | Admin123 |
ip | 192.168.1.201 |
port | 80 |
- 响应参数说明;
参数名称 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
error_code | Int | 是 | 返回响应码 0: 成功 -1: 客户端错误 -2: 服务端错误 |
message | String | 是 | 返回响应信息 |
data | Null/Object | 是 | null |
- 响应示例。
项目 | 详情 |
---|---|
报文格式 | JSON |
报文内容 | { "data": { ... }, "error_code": 0, "message": { "zh": "通过onvif获取摄像头信息成功!", "en": "Get camera information by onvif successful!" } } |
4. 新增数据源
- 接口功能描述:新增数据源并配置相关算法、检测区域等;
- 接口路径:[POST] http://设备IP:9091/ks/source;
- 请求参数说明;
参数名称 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
id | String | 否 | 数据源标识,可以传,不传则自动生成。注意:当协议为gb28181时,必须传id,且id为SIP用户名,比如:34020000002000000002 |
type | String | 是 | 摄像头:camera 视频流:stream |
desc | String | 是 | 描述,注意同一个盒子不同数据源描述不可重复 |
ipv4 | String | 否 | 当type为camera时必须填入数据源IP,当type为stream时IP非必填 |
stream | String | 是 | 流地址 |
info | Object | 否 | 当type为camera,且protocol为rtsp时,参数格式如下: { "protocol": "rtsp", "rtsptype": "input", //或者"gen",表示根据品牌自动生成rtsp流 "brand": "2", //品牌:"2":海康威视,"9":大华,"4":宇视,"1":华为 "stream": "554/h264/ch1/main/av_stream", "username": "admin", "password": "123456", "rtsp_transport": "tcp" //或者"" } |
当type为camera,且protocol为onvif时,参数格式如下: { "protocol": "onvif", "port": 80, "username": "admin", "password": "123456", "rtsp_transport": "tcp" //或者"" } | |||
当type为camera,且protocol为gb28181时,参数格式如下: { "protocol": "gb28181", "rtsp_transport": "tcp" //或者"" } | |||
当type为stream时参数格式如下: { "rtsp_transport": "tcp" //或者"" } | |||
draw_size | Array | 是 | 告警图片大小[宽, 高],检测是否在线接口返回的size |
encoding | String | 是 | h264或h265,检测是否在线接口返回的codec |
video_record | Int | 是 | 是否录制视频,1录制,0不录制 |
alg | Object | 否 | 获取算法配置文件(json格式),并填入配置文件中basicParams字段的内容,basicParams字段中给出参数的格式以及默认值,用户如果不想使用默认值作为参数,可以参考白皮书“9.4.5.4”章节,修改参数。获取算法配置文件的接口(GET):http://服务器IP:9092/algsjson/算法名称.json,其中算法名称为算法英文名称。 |
表. 请求参数
- 请求示例;
项目 | 详情 |
---|---|
请求格式 | JSON |
报文内容 | { "type": "camera", "desc": "描述", "ipv4": "192.168.1.33", "stream": "rtsp://admin:Admin123@192.168.1.252:554/h264/ch1/main/av\_stream", "info": { "protocol": "rtsp", "rtsptype": "gen", "brand": "2", "username": "admin", "password": "123456", "stream": "554/h264/ch1/main/av_stream", "rtsp_transport": "tcp" }, "draw_size": [1280, 720], "encoding": "h264", "video_record": 0, "alg": { "helmet": { "alert_window": { "interval": 5, "length": 5, "threshold": 3, "type": "interval_threshold_window" }, "bbox": { "polygons": [{ "id": "27d590b2-3bc4-4bfb", "name": "test", "polygon": [ [391, 598], [403, 451], [711, 440], [650, 591] ] } ] }, "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": "general", "model_args": { "helmet_classify": { "conf_thres": 0.7 }, "helmet": { "conf_thres": 0.35 }, "person": { "conf_thres": 0.6 } }, "reserved_args": { "ch_name": "测试算法", "sound_text": "测试检测报警" } } } } |
- 响应参数说明;
参数名称 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
error_code | Int | 是 | 返回响应码 0: 成功 -1: 客户端错误 -2: 服务端错误 |
message | String | 是 | 返回响应信息 |
data | Null/Object | 是 | null |
- 响应示例;
项目 | 详情 |
---|---|
报文格式 | JSON |
报文内容 | { "data": null, "error_code": 0, "message": { "zh": "添加数据源成功!", "en": "Add source successful!" } } |
5. 编辑数据源
- 接口功能描述:编辑数据源信息;
- 接口路径:[PUT] http://设备IP:9091/ks/source;
- 请求参数说明;
参数名称 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
id | String | 是 | 参考“新增数据源”章节 |
type | String | 否 | 参考“新增数据源”章节 |
desc | String | 否 | 参考“新增数据源”章节 |
ipv4 | String | 否 | 参考“新增数据源”章节 |
stream | String | 否 | 参考“新增数据源”章节 |
info | Object | 否 | 参考“新增数据源”章节 |
draw_size | Array | 否 | 参考“新增数据源”章节 |
alg | Object | 否 | 参考“新增数据源”章节 |
video_record | Number | 否 | 参考“新增数据源”章节 |
status | Bool | 否 | -1:停用,1:启用 |
表. 请求参数
- 请求示例;
项目 | 详情 |
---|---|
请求格式 | JSON |
报文内容 | 参考“新增数据源”章节 |
- 响应参数说明;
参数名称 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
error_code | Int | 是 | 返回响应码 0: 成功 -1:失败 |
message | String | 是 | 返回响应信息 |
data | Object | 是 | 返回数据 |
- 响应示例。
项目 | 详情 |
---|---|
报文格式 | JSON |
报文内容 | { "data": null, "error_code": 0, "message": { "zh": "更新数据源成功!", "en": "Update source successful!" } } |
6. 删除数据源
- 接口功能描述:删除数据源;
- 接口路径:[DELETE] http://设备IP:9091/ks/source;
- 请求参数说明;
参数名称 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
id | String | 是 | 数据源ID |
表. 请求参数
- 请求示例;
项目 | 详情 |
---|---|
请求格式 | JSON |
报文格式 | { "id": "65a78309522e4b4eec7605e0" } |
- 响应参数说明;
参数名称 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
error_code | Int | 是 | 返回响应码 0: 成功 -1: 客户端错误 -2: 服务端错误 |
message | String | 是 | 返回响应信息 |
data | Object | 是 | 返回数据 |
- 响应示例;
项目 | 详情 |
---|---|
报文格式 | JSON |
报文内容 | { "data": null, "error_code": 0, "message": { "zh": "删除数据源成功!", "en": "Delete source successful!" } } |
7. 查询数据源
- 接口功能描述:查询数据源,不传参表示查询所有数据源;
- 接口路径:[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 } ] } |
8. 修改数据源排序
- 接口功能描述:修改数据源排序,用于控制界面显示数据源的顺序;
- 接口路径:[PUT] http://设备IP:9091/ks/source/index;
- 请求参数说明;
参数名称 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
id | String | 是 | 数据源ID |
offset | Int | 是 | 偏移量,-1表示向上偏移一位,1表示向下偏移一位 |
表. 请求参数
- 响应参数说明;
参数名称 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
error_code | Int | 是 | 返回响应码 0: 成功 -1: 客户端错误 -2: 服务端错误 |
message | String | 是 | 返回响应信息 |
data | Object | 是 | 返回数据 |
- 响应示例;
项目 | 详情 |
---|---|
报文格式 | JSON |
报文内容 |
9. 订阅实时视频流
获取视频流播放前端示例代码(点击此处跳转)
- 接口功能描述:订阅实时画面,获取实时画面播放地址;
- 接口路径:[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!" } } |
10. 取消订阅实时视频流
- 接口功能描述:取消订阅实时画面;
- 调用时机:调用编辑数据源接口之前调用此接口;
- 接口路径:[GET] http://设备IP:9089/ks/stream/live/unsubscribe;
- 请求参数说明;
参数名称 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
source_ids | Array | 是 | 数据源ID数组 |
表. 请求参数
- 请求示例;
项目 | 详情 |
---|---|
请求格式 | Query String |
source_ids | ["6593d066522e4b1f0c6b95f6"] |
- 响应参数说明;
参数名称 | 数据类型 | 是否必须 | 说明 |
---|---|---|---|
error_code | Int | 是 | 返回响应码 0: 成功 -1: 客户端错误 -2: 服务端错误 |
message | String | 是 | 返回响应信息 |
data | Object | 是 | 返回数据 |
- 响应示例
项目 | 详情 |
---|---|
报文格式 | JSON |
报文内容 | { "data": { "65ae0cc0522e4b4c6fee314d": true }, "error_code": 0, "message": { "zh": "取消订阅实时视频流成功!", "en": "Unsubscribe stream successful!" } } |
真诚点赞 诚不我欺
回复