具备对视频监控设备(硬盘录像机或视频监控系统、摄像机)、视频分析设备,新增、配置、删除、查询等操作。
1. 检测是否在线
- 接口功能描述:新增数据源时需要传入告警图片大小、编码格式,需要先通过此接口获取;
 - 接口路径:[GET]http://云服务IP:9189/ks/proxy/stream/attr;
 - 请求参数说明;
 
| 参数名称 | 数据类型 | 是否必须 | 说明 | 
|---|---|---|---|
| device_id | String | 是 | 设备ID | 
| stream | String | 是 | 视频流地址 | 
| draw_size | Int | 是 | 默认填入1280即可 | 
| rtsp_transport | String | 否 | 可选参数,缺省值为“tcp”,建议与新增数据源接口中的参数info-> rtsp_transport的值保持一致 | 
| 参数名称 | 数据类型 | 是否必须 | 说明 | 
|---|---|---|---|
| Authorization | String | 是 | ‘Bearer ’+ token; token通过获取token接口获取 | 
- 请求示例;
 
| 项目 | 详情 | 
|---|---|
| 请求格式 | Query String | 
| device_id | c92254f2-6124-4f9d-b3e2-feb0f33c1df8 | 
| 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:9189/ks/proxy/stream/image;
 - 请求参数说明;
 
| 参数名称 | 数据类型 | 是否必须 | 说明 | 
|---|---|---|---|
| device_id | String | 是 | 设备ID | 
| stream | String | 是 | 视频流地址 | 
| draw_size | String | 是 | 通过检测是否在线接口获取到的size,如[1280,720] | 
| 参数名称 | 数据类型 | 是否必须 | 说明 | 
|---|---|---|---|
| Authorization | String | 是 | ‘Bearer ’+ token; token通过获取token接口获取 | 
- 请求示例;
 
| 项目 | 详情 | 
|---|---|
| 请求格式 | Query String | 
| device_id | c92254f2-6124-4f9d-b3e2-feb0f33c1df8 | 
| 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:9191/ks/proxy/source/onvif;
 - 请求参数说明;
 
| 参数名称 | 数据类型 | 是否必须 | 说明 | 
|---|---|---|---|
| device_id | String | 是 | 设备ID | 
| username | String | 是 | 数据源onvif用户 | 
| password | String | 是 | 数据源onvif密码 | 
| ip | String | 是 | 数据源IP地址 | 
| port | Int | 是 | onvif协议端口,默认80 | 
| 参数名称 | 数据类型 | 是否必须 | 说明 | 
|---|---|---|---|
| Authorization | String | 是 | ‘Bearer ’+ token; token通过获取token接口获取 | 
- 请求示例;
 
| 项目 | 详情 | 
|---|---|
| 请求格式 | Query String | 
| device_id | c92254f2-6124-4f9d-b3e2-feb0f33c1df8 | 
| username | admin | 
| password | Admin123 | 
| ip | 192.168.1.201 | 
| port | 80 | 
- 响应参数说明;
 
| 参数名称 | 数据类型 | 是否必须 | 说明 | 
|---|---|---|---|
| error_code | Int | 是 | 返回响应码 0: 成功 -1: 客户端错误 -2: 服务端错误  | 
| message | String | 是 | 返回响应信息 | 
| data | Object | 是 | null | 
- 响应示例。
 
| 项目 | 详情 | 
|---|---|
| 报文格式 | JSON | 
| 报文内容 | { "data": { ... }, "error_code": 0, "message": { "zh": "通过onvif获取摄像头信息成功!", "en": "Get camera information by onvif successful!" } }  | 
4. 新增数据源
- 接口功能描述:新增数据源并配置相关算法、检测区域等;
 - 接口路径:[POST] http://云服务IP:9191/ks/proxy/source;
 - 请求参数说明;
 
| 参数名称 | 数据类型 | 是否必须 | 说明 | 
|---|---|---|---|
| device_id | String | 是 | 设备ID | 
| id | String | 否 | 数据源标识,可以传,不传则自动生成。注意:当协议为gb28181时,必须传id,且id为SIP用户名,比如:34020000002000000002 | 
| type | String | 是 | 视频流:stream | 
| desc | String | 是 | 描述,注意同一个盒子不同数据源描述不可重复 | 
| ipv4 | String | 否 | ip地址 | 
| stream | String | 是 | 流地址 | 
| info | Object | 否 | 当type为stream时参数格式如下: { "rtsp_transport": "tcp" }  | 
| draw_size | Array | 是 | 告警图片大小[宽, 高],检测是否在线接口返回的size | 
| encoding | String | 是 | h264或h265,检测是否在线接口返回的codec | 
| video_record | Int | 是 | 是否录制视频,1录制,0不录制 | 
| alg | Object | 否 | 获取算法配置文件(json格式),并填入配置文件中basicParams字段的内容,basicParams字段中给出参数的格式以及默认值。获取算法配置文件的接口(GET):http://服务器IP:9192/algsjson/设备ID/算法名称.json,其中算法名称为算法英文名称。 | 
| 参数名称 | 数据类型 | 是否必须 | 说明 | 
|---|---|---|---|
| Authorization | String | 是 | ‘Bearer ’+ token; token通过获取token接口获取 | 
- 请求示例;
 
| 项目 | 详情 | 
|---|---|
| 请求格式 | JSON | 
| 报文内容 | { "device_id": "c92254f2-6124-4f9d-b3e2-feb0f33c1df8", "type": "camera", "desc": "描述", "ipv4": "192.168.1.33", "stream": "rtsp://admin:Admin123@192.168.1.252:554/h264/ch1/main/av\_stream", "info": { "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 | Object | 是 | null | 
- 响应示例;
 
| 项目 | 详情 | 
|---|---|
| 报文格式 | JSON | 
| 报文内容 | { "data": null, "error_code": 0, "message": { "zh": "添加数据源成功!", "en": "Add source successful!" } }  | 
5. 编辑数据源
- 接口功能描述:编辑数据源信息;
 - 接口路径:[PUT] http://云服务IP:9191/ks/proxy/source;
 - 请求参数说明;
 
| 参数名称 | 数据类型 | 是否必须 | 说明 | 
|---|---|---|---|
| device_id | String | 是 | 参考“新增数据源”章节 | 
| id | String | 是 | 参考“新增数据源”章节 | 
| type | String | 否 | 参考“新增数据源”章节 | 
| desc | String | 否 | 参考“新增数据源”章节 | 
| ipv4 | String | 否 | 参考“新增数据源”章节 | 
| stream | String | 否 | 参考“新增数据源”章节 | 
| info | Object | 否 | 参考“新增数据源”章节 | 
| draw_size | Array | 否 | 参考“新增数据源”章节 | 
| alg | Object | 否 | 参考“新增数据源”章节 | 
| video_record | Number | 否 | 参考“新增数据源”章节 | 
| status | Bool | 否 | -1:停用,1:启用 | 
| 参数名称 | 数据类型 | 是否必须 | 说明 | 
|---|---|---|---|
| Authorization | String | 是 | ‘Bearer ’+ token; token通过获取token接口获取 | 
- 请求示例;
 
| 项目 | 详情 | 
|---|---|
| 请求格式 | 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:9191/ks/proxy/source;
 - 请求参数说明;
 
| 参数名称 | 数据类型 | 是否必须 | 说明 | 
|---|---|---|---|
| device_id | String | 是 | 设备ID | 
| id | String | 是 | 数据源ID | 
| 参数名称 | 数据类型 | 是否必须 | 说明 | 
|---|---|---|---|
| Authorization | String | 是 | ‘Bearer ’+ token; token通过获取token接口获取 | 
- 请求示例;
 
| 项目 | 详情 | 
|---|---|
| 请求格式 | JSON | 
| 报文格式 | { "device_id": "c92254f2-6124-4f9d-b3e2-feb0f33c1df8", "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:9191/ks/proxy/source;
 - 请求参数说明;
 
| 参数名称 | 数据类型 | 是否必须 | 说明 | 
|---|---|---|---|
| device_id | String | 否 | 设备ID | 
| id | String | 否 | 数据源ID | 
| desc | String | 否 | 数据源描述 | 
| alg | String | 否 | 算法名,如helmet | 
| status | String | 否 | 数据源状态 | 
| 参数名称 | 数据类型 | 是否必须 | 说明 | 
|---|---|---|---|
| Authorization | String | 是 | ‘Bearer ’+ token; token通过获取token接口获取 | 
- 响应参数说明;
 
| 参数名称 | 数据类型 | 是否必须 | 说明 | 
|---|---|---|---|
| error_code | Int | 是 | 返回响应码 0: 成功 -1: 客户端错误 -2: 服务端错误  | 
| message | String | 是 | 返回响应信息 | 
| data | Object | 是 | 返回数据 | 
- 响应示例;
 
| 项目 | 详情 | 
|---|---|
| 报文格式 | JSON | 
| 报文内容 | { "data": { "40b44373-765e-4d24-94dc-89e54f898158": { "6593d066522e4b1f0c6b95f6": { "index": 3, "alg": { "person_departure": { "alert_window": { "duration": 1, "interval": 5, "type": "interval_duration_window" }, "bbox": { "polygons": [ [[738, 523], [1158, 606], [1270, 498], [943, 473]] ] }, "plan": { "1": [[0, 86399]], "2": [[0, 86399]], "3": [[0, 86399]], "4": [[0, 86399]], "5": [[50410, 86399]], "6": [[0, 86399]], "7": [[0, 86399]] }, "reserved_args": { "btn_name": "标记岗位区域", "ch_name": "离岗检测", "must": true, "sound_text": "人员离岗检测报警", "strategy": "center" } } }, "desc": "描述", "draw_size": [1280, 720], "encoding": "h264", "info": { "brand": "2", "password": "Admin123", "user_name": "admin" }, "ipv4": "192.168.1.33", "name": "", "status": 1, "stream": "rtsp://admin:Admin123@192.168.1.33:554/h264/ch1/main/av\_stream", "type": "camera" } } }, "error_code": 0, "message": { "zh": "查询数据源成功!", "en": "Query source successful!" } }  | 
8. 修改数据源排序
- 接口功能描述:修改数据源排序,用于控制界面显示数据源的顺序;
 - 接口路径:[PUT] http://云服务IP:9191/ks/proxy/source/index;
 - 请求参数说明;
 
| 参数名称 | 数据类型 | 是否必须 | 说明 | 
|---|---|---|---|
| device_id | String | 是 | 设备ID | 
| id | String | 是 | 数据源ID | 
| offset | Int | 是 | 偏移量,-1表示向上偏移一位,1表示向下偏移一位 | 
| 参数名称 | 数据类型 | 是否必须 | 说明 | 
|---|---|---|---|
| Authorization | String | 是 | ‘Bearer ’+ token; token通过获取token接口获取 | 
- 响应参数说明;
 
| 参数名称 | 数据类型 | 是否必须 | 说明 | 
|---|---|---|---|
| error_code | Int | 是 | 返回响应码 0: 成功 -1: 客户端错误 -2: 服务端错误  | 
| message | String | 是 | 返回响应信息 | 
| data | Object | 是 | 返回数据 | 
- 响应示例;
 
| 项目 | 详情 | 
|---|---|
| 报文格式 | JSON | 
| 报文内容 | { "data": null, "error_code": 0, "message": { "zh": "更新数据源成功!", "en": "Update source successful!" } }  | 
9. 订阅实时视频流
获取视频流播放前端示例代码(点击此处跳转)
- 接口功能描述:订阅实时画面,获取实时画面播放地址;
 - 接口路径:[GET] http://云服务IP:9189/ks/proxy/stream/live/subscribe;
 - 请求参数说明;
 
| 参数名称 | 数据类型 | 是否必须 | 说明 | 
|---|---|---|---|
| device_id | String | 是 | 设备ID | 
| source_id | String | 是 | 数据源ID | 
| 参数名称 | 数据类型 | 是否必须 | 说明 | 
|---|---|---|---|
| Authorization | String | 是 | ‘Bearer ’+ token; token通过获取token接口获取 | 
- 请求示例;
 
| 项目 | 详情 | 
|---|---|
| 请求格式 | Query String | 
| device_id | c92254f2-6124-4f9d-b3e2-feb0f33c1df8 | 
| 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:9189/ks/proxy/stream/live/unsubscribe;
 - 请求参数说明;
 
| 参数名称 | 数据类型 | 是否必须 | 说明 | 
|---|---|---|---|
| device_id | String | 是 | 设备ID | 
| source_ids | Array | 是 | 数据源ID数组 | 
| 参数名称 | 数据类型 | 是否必须 | 说明 | 
|---|---|---|---|
| Authorization | String | 是 | ‘Bearer ’+ token; token通过获取token接口获取 | 
- 请求示例;
 
| 项目 | 详情 | 
|---|---|
| 请求格式 | Query String | 
| device_id | c92254f2-6124-4f9d-b3e2-feb0f33c1df8 | 
| 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!" } }  | 
真诚点赞 诚不我欺
                
回复