14. 视频安防API
API列表
API调用
14.1 视频抓图
描述
请求信息
URI:/v1/hikvision/screen/capture
方法:POST
请求参数
名称 |
位置 |
类型 |
必填 |
描述 |
mac |
header |
STRING |
是 |
物理地址 |
请求Body描述(非Form表单数据)
{
"mac": "08EDED1676FE"
}
返回信息
返回参数类型
JSON
返回参数
名称 |
位置 |
类型 |
必填 |
描述 |
code |
顶层 |
INTEGER |
是 |
响应码标识 |
message |
顶层 |
STRING |
是 |
响应消息文本 |
data |
顶层 |
JSONObject |
是 |
响应数据对象 |
返回结果示例
{
"code": 200,
"data": {
"public_url": "http://evnt-file.smartmideazy.com/group1/2020-07-02/2a861117b3934ce5b647e00b8b171802-21322229_08EDED1676FE2020-07-02.jpg",
"productId": null,
"deviceId": null,
"deviceName": null,
"url": "http://evnt-file.smartmideazy.com/group1/2020-07-02/2a861117b3934ce5b647e00b8b171802-21322229_08EDED1676FE2020-07-02.jpg"
},
"message": "success"
}
14.2 录制视频
描述
请求信息
URI:/v1/hikvision/record/video
方法:POST
请求参数
名称 |
位置 |
类型 |
必填 |
描述 |
mac |
BODY |
STRING |
是 |
物理地址 |
startTime |
BODY |
Date |
是 |
开始时间 |
endTime |
BODY |
Date |
是 |
结束时间 |
taskId |
BODY |
String |
是 |
任务ID |
请求Body描述(非Form表单数据)
{
"mac": "08EDED1676FE",
"startTime": "2020-07-02 18:25:12",
"endTime": "2020-07-02 18:28:12",
"taskId": ""
}
返回信息
返回参数类型
JSON
返回参数
名称 |
位置 |
类型 |
必填 |
描述 |
code |
顶层 |
INTEGER |
是 |
响应码标识 |
message |
顶层 |
STRING |
是 |
响应消息文本 |
data |
顶层 |
JSONObject |
是 |
响应数据对象 |
返回结果示例
{
"code": 200,
"message": "success",
"data": {
}
}
14.3 开始推流
描述
请求信息
URI:/v1/hikvision/stream/push/start
方法:POST
请求参数
名称 |
位置 |
类型 |
必填 |
描述 |
mac |
body |
STRING |
是 |
物理地址 |
mode |
body |
STRING |
否 |
推流模式:1外网,2内网 |
请求Body描述(非Form表单数据)
{
"mac": "08EDED1676FE",
"mode": "1"
}
返回信息
返回参数类型
JSON
返回参数
名称 |
位置 |
类型 |
必填 |
描述 |
code |
顶层 |
INTEGER |
是 |
响应码标识 |
message |
顶层 |
STRING |
是 |
响应消息文本 |
data |
顶层 |
JSONObject |
是 |
响应数据对象 |
返回结果示例
{
"code": 200,
"data": {
"rtmpUrl": "rtmp://iot-smart-live.mideazy.com/cmty/live203_686DBC2DA975"
},
"message": "success"
}
14.4 推流保活
描述
请求信息
URI:/v1/hikvision/stream/push/keepalive
方法:POST
请求参数
名称 |
位置 |
类型 |
必填 |
描述 |
mac |
body |
STRING |
是 |
物理地址 |
mode |
body |
STRING |
否 |
推流模式:1外网,2内网 |
请求Body描述(非Form表单数据)
{
"mac": "08EDED1676FE",
"mode": "2"
}
返回信息
返回参数类型
JSON
返回参数
名称 |
位置 |
类型 |
必填 |
描述 |
code |
顶层 |
INTEGER |
是 |
响应码标识 |
message |
顶层 |
STRING |
是 |
响应消息文本 |
data |
顶层 |
JSONObject |
是 |
响应数据对象 |
返回结果示例
{
"code": 200,
"message": "success",
"data": {
}
}
14.5 关闭推流
描述
请求信息
URI:/v1/hikvision/stream/push/stop
方法:POST
请求参数
名称 |
位置 |
类型 |
必填 |
描述 |
mac |
body |
STRING |
是 |
物理地址 |
mode |
body |
STRING |
否 |
推流模式:1外网,2内网 |
请求Body描述(非Form表单数据)
{
"mac": "08EDED1676FE",
"mode": "2"
}
返回信息
返回参数类型
JSON
返回参数
名称 |
位置 |
类型 |
必填 |
描述 |
code |
顶层 |
INTEGER |
是 |
响应码标识 |
message |
顶层 |
STRING |
是 |
响应消息文本 |
data |
顶层 |
JSONObject |
是 |
响应数据对象 |
返回结果示例
{
"code": 200,
"message": "success",
"data": {
}
}
14.6 视频回放
描述
请求信息
URI:/v1/hikvision/stream/playback
方法:POST
请求参数
名称 |
位置 |
类型 |
必填 |
描述 |
mac |
header |
STRING |
是 |
物理地址 |
请求Body描述(非Form表单数据)
{
"mac": "08EDED1676FE",
"startTime": "2020-07-02 18:25:12",
"endTime": "2020-07-02 18:28:12"
}
返回信息
返回参数类型
JSON
返回参数
名称 |
位置 |
类型 |
必填 |
描述 |
code |
顶层 |
INTEGER |
是 |
响应码标识 |
message |
顶层 |
STRING |
是 |
响应消息文本 |
data |
顶层 |
JSONObject |
是 |
响应数据对象 |
返回结果示例
{
"code": 200,
"message": "success",
"data": {
}
}
14.7 设备列表
描述
请求信息
URI:/v1/hikvision/video/device/list
方法:POST
请求参数
名称 |
位置 |
类型 |
必填 |
描述 |
pageNo |
body |
int |
n |
页码 |
pageSize |
body |
int |
n |
每页条数 |
deviceType |
body |
int |
n |
设备类型1nvr,2摄像头 |
isShow |
body |
int |
n |
是否显示1显示,0不显示 |
orderNum |
order |
string |
n |
排序字段asc正序,desc反序 |
|
|
|
|
请求Body描述(非Form表单数据)
{
"pageNo": 1,
"pageSize": 10,
"deviceType": 2,
"isShow": 1,
"order": {
"orderNum": "asc"
}
}
返回信息
返回参数类型
JSON
返回参数
名称 |
位置 |
类型 |
必填 |
描述 |
code |
顶层 |
INTEGER |
是 |
响应码标识 |
message |
顶层 |
STRING |
是 |
响应消息文本 |
data |
顶层 |
JSONObject |
是 |
响应数据对象 |
返回结果示例
{
"code": 200,
"data": {
"total": 3,
"pages": 1,
"records": [
{
"deviceType": 2,
"channelNo": "33",
"rtmpUrl": "rtmp://192.168.12.235:1935/live/live08EDED33C255",
"transmissionUrl": "http://192.168.12.204:20039/v1/hikvision/onvif/video/transmission",
"ip": "192.168.12.24",
"flvUrl": "http://192.168.12.235:8800/live?app=live&stream=live08EDED33C255",
"rtmpUrlPublic": "rtmp://iot-smart-live.mideazy.com/cmty/live08EDED33C255",
"deviceId": "8336870964905644",
"mac": "08EDED33C255",
"rtspUrl": "rtsp://{0}:{1}@192.168.12.24:554/cam/realmonitor?channel=0&subtype=1",
"flvUrlPublic": "http://iot-smart-live.mideazy.com/cmty/live08EDED33C255.flv",
"nvrIp": "",
"name": "IPC",
"id": 202,
"brand": 2
}
],
"pageNo": 1,
"pageSize": 10
},
"message": "success"
}
14.8 设备透传
描述
请求信息
URI:/v1/hikvision/onvif/video/transmission
方法:POST
请求参数
名称 |
位置 |
类型 |
必填 |
描述 |
action |
body |
STRING |
是 |
操作类型*(如下表) |
mode |
body |
STRING |
否 |
推流模式:1外网,2内网 |
mac |
body |
STRING |
是 |
物理地址 |
startTime |
body |
STRING |
否 |
录像/回放开始时间 |
endTime |
body |
STRING |
否 |
录像/回放结束时间 |
houseId |
header |
STRING |
是 |
家庭ID |
|
|
|
|
action |
操作类型 |
stream_start |
开始推流 |
stream_stop |
停止推流 |
stream_touch |
推流保活 |
video_record |
视频录像 |
playback_start |
视频回放 |
snapshots |
视频截图 |
请求Body描述(非Form表单数据)
{
"mac": "08EDED1676FE",
"startTime": "2020-07-02 18:25:12",
"endTime": "2020-07-02 18:28:12"
}
返回信息
返回参数类型
JSON
返回参数
名称 |
位置 |
类型 |
必填 |
描述 |
code |
顶层 |
INTEGER |
是 |
响应码标识 |
message |
顶层 |
STRING |
是 |
响应消息文本 |
data |
顶层 |
JSONObject |
是 |
响应数据对象 |
snapshots_public_url |
data |
STRING |
否 |
视频抓图地址 |
返回结果示例
{
"code": 200,
"message": "success",
"data": {
"snapshots_public_url": "http://evnt-file.smartmideazy.com/group1/2020-07-02/2a861117b3934ce5b647e00b8b171802-21322229_08EDED1676FE2020-07-02.jpg"
}
}
14.9 查询录像
描述
请求信息
URI:/v1/hikvision/video/records
方法:POST
请求参数
名称 |
位置 |
类型 |
必填 |
描述 |
task_id |
body |
STRING |
是 |
任务ID |
请求Body描述(非Form表单数据)
{
"task_id": ""
}
返回信息
返回参数类型
JSON
返回参数
名称 |
位置 |
类型 |
必填 |
描述 |
code |
顶层 |
INTEGER |
是 |
响应码标识 |
message |
顶层 |
STRING |
是 |
响应消息文本 |
data |
顶层 |
JSONObject |
是 |
响应数据对象 |
videoRecordPublicUrl |
data |
STRING |
否 |
视频录像地址 |
返回结果示例
{
"code": 200,
"message": "success",
"data": {
"videoRecordPublicUrl": ""
}
}
14.10 消息推送
描述
请求信息
URI:/v1/internal/message/push
方法:POST
请求参数
名称 |
位置 |
类型 |
必填 |
描述 |
alarm_type |
body |
STRING |
是 |
告警类型:104:区域入侵;105:车牌识别;106:摔倒检测 |
alarm_info |
body |
STRING |
是 |
告警的提示内容 |
nodeid |
body |
STRING |
是 |
告警设备的唯一标识,也是来云邻E家平台注册时传过来的identifier |
picUrl |
body |
STRING |
否 |
如果告警有图片,就放在这个字段传上来 |
customData |
body |
STRING |
否 |
自定义字段 |
请求Body描述(非Form表单数据)
{
"alarm_type":"",
"alarm_info":"",
"nodeid":"",
"picUrl":"",
"customData": {
"customInfo": "自定义"
}
}
返回信息
返回参数类型
JSON
返回参数
名称 |
位置 |
类型 |
必填 |
描述 |
code |
顶层 |
INTEGER |
是 |
响应码标识 |
message |
顶层 |
STRING |
是 |
响应消息文本 |
data |
顶层 |
JSONObject |
是 |
响应数据对象 |
videoRecordPublicUrl |
data |
STRING |
否 |
视频录像地址 |
返回结果示例
{
"code": 200,
"message": "success",
"data": {
}
}
14.11 获取内网地址
描述
请求信息
URI:/v1/hikvision/internal/url
方法:POST
名称 |
描述 |
bizType |
家居:home,社区:cmty |
objId |
bizType=home时为家庭ID,bizType=cmty时为社区ID |
请求参数
请求Body描述(非Form表单数据)
{
}
返回信息
返回参数类型
JSON
返回参数
名称 |
位置 |
类型 |
必填 |
描述 |
code |
顶层 |
INTEGER |
是 |
响应码标识 |
message |
顶层 |
STRING |
是 |
响应消息文本 |
data |
顶层 |
JSONObject |
是 |
响应数据对象 |
internalUrl |
data |
STRING |
否 |
内网地址 |
返回结果示例
{
"code": 200,
"message": "success",
"data": {
"internalUrl":""
}
}
14.12 内网获取rtsp授权信息
描述
请求信息
URI:/v1/internal/get/rtsp/auth
方法:POST
请求参数
名称 |
位置 |
类型 |
必填 |
描述 |
nvrIp |
BODY |
STRING |
否 |
NVRIP地址 |
|
|
|
|
请求Body描述(非Form表单数据)
{
"nvrIp": ""
}
返回信息
返回参数类型
JSON
返回参数
名称 |
位置 |
类型 |
必填 |
描述 |
code |
顶层 |
INTEGER |
是 |
响应码标识 |
message |
顶层 |
STRING |
是 |
响应消息文本 |
data |
顶层 |
JSONObject |
是 |
响应数据对象 |
account |
data |
STRING |
是 |
账号 |
pwd |
data |
String |
是 |
密码 |
返回结果示例
{
"code": 200,
"message": "success",
"data": {
"account":""
"pwd": ""
}
}
14.13 分组列表
描述
请求信息
URI:/v1/hikvision/group/list
方法:POST
请求参数
请求Body描述(非Form表单数据)
{
"pageNo": 1,
"pageSize: 10
}
返回信息
返回参数类型
JSON
返回参数
名称 |
位置 |
类型 |
必填 |
描述 |
code |
顶层 |
INTEGER |
是 |
响应码标识 |
message |
顶层 |
STRING |
是 |
响应消息文本 |
data |
顶层 |
JSONObject |
是 |
响应数据对象 |
id |
data |
STRING |
是 |
分组id |
name |
data |
STRING |
是 |
分组名称 |
orderNum |
data |
String |
是 |
排序号 |
返回结果示例
{
"code": 200,
"message": "success",
"data": {
}
}
14.14 添加分组
描述
请求信息
URI:/v1/hikvision/group/add
方法:POST
请求参数
名称 |
位置 |
类型 |
必填 |
描述 |
name |
|
|
|
分组名称 |
orderNum |
|
|
|
排序 |
请求Body描述(非Form表单数据)
{
}
返回信息
返回参数类型
JSON
返回参数
名称 |
位置 |
类型 |
必填 |
描述 |
code |
顶层 |
INTEGER |
是 |
响应码标识 |
message |
顶层 |
STRING |
是 |
响应消息文本 |
data |
顶层 |
JSONObject |
是 |
响应数据对象 |
返回结果示例
{
"code": 200,
"message": "success",
"data": {
}
}
14.15 删除分组
描述
请求信息
URI:/v1/hikvision/group/del
方法:POST
请求参数
请求Body描述(非Form表单数据)
{
"id": 1
}
返回信息
返回参数类型
JSON
返回参数
名称 |
位置 |
类型 |
必填 |
描述 |
code |
顶层 |
INTEGER |
是 |
响应码标识 |
message |
顶层 |
STRING |
是 |
响应消息文本 |
data |
顶层 |
JSONObject |
是 |
响应数据对象 |
返回结果示例
{
"code": 200,
"message": "success",
"data": {
}
}
14.16 更新分组
描述
请求信息
URI:/v1/hikvision/group/update
方法:POST
请求参数
名称 |
位置 |
类型 |
必填 |
描述 |
id |
|
|
|
分组id |
name |
|
|
|
分组名称 |
orderNum |
|
|
|
排序 |
请求Body描述(非Form表单数据)
{
"id": 1,
"orderNum: 10,
"name": ""
}
返回信息
返回参数类型
JSON
返回参数
名称 |
位置 |
类型 |
必填 |
描述 |
code |
顶层 |
INTEGER |
是 |
响应码标识 |
message |
顶层 |
STRING |
是 |
响应消息文本 |
data |
顶层 |
JSONObject |
是 |
响应数据对象 |
返回结果示例
{
"code": 200,
"message": "success",
"data": {
}
}
14.17 绑定设备到分组
描述
请求信息
URI:/v1/hikvision/group/bind/devices
方法:POST
请求参数
名称 |
位置 |
类型 |
必填 |
描述 |
id |
body |
int |
是 |
分组id |
cameras |
body |
Array |
是 |
摄像头列表 |
cameraId |
body |
String |
是 |
设备id |
orderNum |
body |
int |
否 |
排序号 |
请求Body描述(非Form表单数据)
{
"id": 1,
"cameras: [
"cameraId": "1"
"orderNum": 0
]
}
返回信息
返回参数类型
JSON
返回参数
名称 |
位置 |
类型 |
必填 |
描述 |
code |
顶层 |
INTEGER |
是 |
响应码标识 |
message |
顶层 |
STRING |
是 |
响应消息文本 |
data |
顶层 |
JSONObject |
是 |
响应数据对象 |
返回结果示例
{
"code": 200,
"message": "success",
"data": {
}
}
14.18 分组删除绑定设备
描述
请求信息
URI:/v1/hikvision/group/unbind/devices
方法:POST
请求参数
名称 |
位置 |
类型 |
必填 |
描述 |
id |
|
int |
是 |
分组id |
cameraIds |
body |
String[] |
是 |
摄像头id数组 |
请求Body描述(非Form表单数据)
{
"id": 1,
"cameraIds: ["7535512373357960"]
}
返回信息
返回参数类型
JSON
返回参数
名称 |
位置 |
类型 |
必填 |
描述 |
code |
顶层 |
INTEGER |
是 |
响应码标识 |
message |
顶层 |
STRING |
是 |
响应消息文本 |
data |
顶层 |
JSONObject |
是 |
响应数据对象 |
返回结果示例
{
"code": 200,
"message": "success",
"data": {
}
}
14.19 查询分组下的设备列表
描述
请求信息
URI:/v1/hikvision/group/device/list
方法:POST
请求参数
名称 |
位置 |
类型 |
必填 |
描述 |
groupId |
|
int |
是 |
分组id |
请求Body描述(非Form表单数据)
{
"groupId": 1
}
返回信息
返回参数类型
JSON
返回参数
名称 |
位置 |
类型 |
必填 |
描述 |
code |
顶层 |
INTEGER |
是 |
响应码标识 |
message |
顶层 |
STRING |
是 |
响应消息文本 |
data |
顶层 |
JSONObject |
是 |
响应数据对象 |
返回结果示例
{
"code": 200,
"message": "success",
"data": {
"id": 1
"deviceType": 2,
"rtspUrl": "rtsp://{0}:{1}@192.168.1.2:554/h264/ch0/sub/av_stream",
"channelNo": "33",
"rtmpUrl": "rtmp://192.168.1.221:1935/live/liveACCB511E3E0C",
"transmissionUrl": "https://xapi.smartmideazy.com/v1/hikvision/onvif/video/transmission",
"ip": "192.168.1.2",
"name": "后院2",
"rtmpUrlPublic": "rtmp://iot-smart-live.mideazy.com/cmty/liveACCB511E3E0C",
"deviceId": "9465279409936889",
"brand": 1,
"mac": "ACCB511E3E0C"
}
}
14.20 人脸日志
描述
请求信息
URI:/v1/hikvision/event/ai/record/page
方法:POST
请求参数
名称 |
位置 |
类型 |
必填 |
描述 |
algorithm |
|
STRING |
是 |
AI事件类型:faceRecognize 人脸识别 |
请求Body描述(非Form表单数据)
{
"algorithm": "faceRecognize"
}
返回信息
返回参数类型
JSON
返回参数
名称 |
位置 |
类型 |
必填 |
描述 |
code |
顶层 |
INTEGER |
是 |
响应码标识 |
message |
顶层 |
STRING |
是 |
响应消息文本 |
data |
顶层 |
JSONObject |
是 |
响应数据对象 |
返回结果示例
{
"code": 200,
"message": "success",
"data": {
"total": 18258,
"pages": 1826,
"records": [
{
"cutoutUrl": "http://192.168.1.221:81/group1/M00/07/20/wKgB3V8F3z-ABaVNAAAx6GMADJA122.png",
"kidsaspictureUrls": null,
"tumbleScore": null,
"userInfo": null,
"frameIndex": null,
"captureTime": 1594220351726,
"groupId": null,
"msgId": null,
"faceId": null,
"type": null,
"deviceName": "前门入门",
"rect": "[0.0984,0.3223,0.1125,0.2386]",
"isKids": null,
"kidsascutoutUrls": null,
"traceVideo": null,
"rectArr": null,
"eventTime": 1594220351726,
"deviceMac": null,
"startTime": null,
"isTumble": null,
"algorithm": "faceRecognize",
"pictureUrl": "http://192.168.1.221:81/group1/M00/07/20/wKgB3V8F3z-AaGT6AAZeOq65i4w702.png",
"accompanyFaceIds": null,
"deviceid": 35,
"kidsastype": null,
"endTime": null,
"isWearMask": 0,
"recId": "ff808081732eef2401732ef0175f0000",
"taskId": 66
}
]
}
}
异常返回示例
{"code":401,"message":"Invalid Signature"}