API接口文档

*生产环境API_ADDRESS地址:https://api-video.heclouds.com:8443/

*测试环境API_ADDRESS地址:http://v-test.cmcconenet.com:8000/,https://v-test.cmcconenet.com:8443/

1.设备(device)管理

1.1 新增

HTTP方法 POST
URL http://API_ADDRESS/devices
HTTP头部 api-key:xxxx-ffff-zzzzz,必须为masterKeyContent-Type:application/json
HTTP内容 {
"title":"device1", // 设备名称,必选。64个字符以内。
"desc":"some description", // 设备描述,可选。
"location":{"ele":370000, // 高度,double
"lat":17.609997, // 经度,double
"lon":177.03403 // 纬度,double
}, // 设备位置,可选。
"private":true, // 是否私有,可选。公开的应用在open.iot.10086.cn上会列出来。
"protocol":"RTMP", // 设备接入协议,必须RTMP。
"auth_info":{…} auth123”, // 设备鉴权信息,必选。产品下唯一。如不填写,将为该设备生成默认鉴权信息。
"area":”100”, // 设备区域号,可选。必须是合法的区域号。
“other":{…}, // 设备其余信息,可选。
"interval":60, // 保留,选择无效
"auth":"1233311", // 保留,选择无效
“route_to”:”abcd”, //保留,选择无效
“url”:“http://www.test.com”, // 设备url。(含义未知)
“idsn”:“test”, // 保留,选择无效
“activate_code”:”test”, // 保留,设备激活码}
HTTP响应响应消息内容 {"errno": 0,
"error":“succ”,
"data":
{
//平台分配唯一ID
"device_id":"233444"
}
}
说明 新增设备用于向设备云增加一个设备,通过HTTP POST请求增加设备,增加成功后,会返回该设备的设备ID。

1.2 注册码创建设备

HTTP方法 POST
URL http://API_ADDRESS/register_de
URL参数 register_code=xxxxx //设备注册码,必选
HTTP内容 {"sn": "xxxx", //可选 设备唯一标识string类型, 最长512字符
"mac": "xxxx",//可选设备唯一mac标识string类型 , 最长512字符
注意sn,mac一定要必填其中一个,而且只可以传一个
"title": "xxxx"//可选设备名 最长32个字符,
"area":100 //区域号,可选
}
请求返回 {"errno": 0,
"error":“succ”,
"data":
{
"key":"XXAABBCCDD",//api-key只可以操作这个设备
"device_id": 21442
}
}

1.3 更新

HTTP方法 PUT
URL http://API_ADDRESS/devices/{device_id}
HTTP头部 api-key:xxxx-ffff-zzzzz,masterKey或设备apikey。Content-Type:application/json
HTTP内容 {"title":"my device1",
"desc":"some description",
"private":true,
"tags":[
"Tag1",
"Tag2"
],
“url”: “http://www.test.com”,
“idsn”:”test”,
"location":{
"ele":370000,
"lat":17.609991828964787,
"lon":177.03402996826173
},
“route_to”:”test”, // edp设备有效。
"auth_info":{…}“auth123”,
“auth”:”123123”, // 保留,填写无效
"interval":60,
“activate_code”:”test”,
"area":”100”,
"other":{}
}
请求返回 {
"errno": 0,
"error":“succ”,
}
说明 更新时,更新那个字段就只需要在json字符串中包括哪个字段,不需要包含所有内容。
如有字段不明确,请参见设备新增章节的解释。

1.4 查看单个设备信息

HTTP方法 GET
URL http://API_ADDRESS/devices/{device_id}
HTTP头部 api-key:xxxx-ffff-zzzzz,masterKey或设备apikey。Content-Type:application/json
请求返回 {"errno": 0,
"error":“succ”,
"data":
{
"id":"device_id",
"online":true/false, // 设备是否在线。
"protocol":"rtmp"
"title":"my device1",
"desc":"some description,ex:url",
......
"keys":[
{"title":"device-auto-key","key":"2JO3B12O1"},
{"title":"key-name2","key":"DFWfsfw1wfDF233"},
]
}
}
说明 单个设备查看是在知道待查设备的设备ID的情况下查看设备的明细。会返回待查设备的基本信息、设备相关apikey信息等等。

1.5 模糊查找设备信息

HTTP方法 GET
URL http://API_ADDRESS/devices
HTTP头部 api-key:xxxx-ffff-zzzzz,masterKey或设备apikey。Content-Type:application/json
URL参数 key_words = key, //可选,会从设备id或title或nb设备的imei字段中左匹配。
tag = xxx , //可选。
online = true/false , //可选。
private = true/false , //可选。
page = 1 , //指定页码, 可选, 默认1,最多10000
per_page = 30 // 指定每页输出设备个数,可选,默认30,最多100
device_id = 235122 //指定设备ID,可选,多个用逗号分隔,最多100个
auth_info = “{“auth”:”auth123”}”, //鉴权信息,可选。
begin=2016-06-10//可选,
end=2016-06-20//可选,
title=test//设备名称关键字,字符串,左匹配,大小写不敏感,可选。
请求返回 {"errno": 0,
"error":“succ”,
"data":
{
"total_count":1,
"per_page":30,
"page":1,
"devices":
[
{
"id":"dev_id",
"title":"my device1",
“desc”:”device desc”,
"private":true,
"protocol":"RTMP”,
"online":ture/false,
"location":{"lon":106.55231191544001,"lat":29.535451246673},
"create_time":"2013-02-11 12:22:33",
"auth_info":{"SYS":"z=8QY3r7aTQ48UKfqPnB=PybYRo="},
“channel_count”:2 //设备通道数量
“last_login”: “2018-11-20 15:34:09” //设备最后上线时间
……
}
{……},
……
]
}
}
说明 批量查看是指模糊查找设备,会把所有符合条件的设备都列出来。
批量查找通过在URL中附带参数的形式向服务器端查询设备。

1.6 删除

HTTP方法 DELETE
URL http://API_ADDRESS/devices/{device_id}
HTTP头部 api-key:xxxx-ffff-zzzzz,可为设备级别的Key或masterKey
Content-Type:application/json
URL参数
HTTP内容
请求返回 {"errno": 0,
"error":“succ”
}
说明 删除设备会删除所有在平台存储的视频和图片

2.通道管理

2.1查询设备下通道信息

HTTP方法 GET
URL http://API_ADDRESS/ipc/video/device/QryChannel
HTTP头部 api-key 必填
URL参数 device_id=//设备ID 必填
HTTP内容
{
"errno":0,
"error":"succ",
"result":
[
{
"channel_id":20,
"title":"test_qwer",
"desc":"1qwqwq/"
},
{
"channel_id":100,
"title":"my_quto_test",
"desc":"123_test"
}
]
}

2.2删除设备下通道

HTTP方法 DELETE
URL http://API_ADDRESS/ipc/video/device/DelChannel
HTTP头部 api-key 必填
URL参数 device_id=//设备ID 必填
channel_id=//通道编号,必填
HTTP内容
成功返回 {
"errno":0,
"error":"succ"
}

2.3增加设备下通道信息

HTTP方法 POST
URL http://API_ADDRESS/ipc/video/device/AddChannel
HTTP头部 api-key 必填
URL参数 device_id=//设备ID 必填
channel_id=//通道ID,必填
title=//标题,必填(长度不超过64且只能是数字、字母或者是数字字母组合)
desc=//通道描述
product_id=//产品ID,内部不用api-key鉴权时需要填写
channel_num=//添加多个通道数量,通道号1到channel_num,可选
HTTP内容
成功返回 {
"errno":0,
"error":"succ"
}
说明 如果通道已经存在则报错返回如下信息:
{
"errno": 16,
"error": "The channel already exists,cannot add again!"
}

2.4修改设备下通道信息

HTTP方法 POST
URL http://API_ADDRESS/ipc/video/device/ModifyChannel
HTTP头部 api-key 必填
URL参数 device_id=//设备ID 必填
channel_id=//通道ID,必填
title=//标题,必填(长度不超过64且只能是数字、字母或者是数字字母组合)
desc=//通道描述
HTTP内容
成功返回 {
"errno":0,
"error":"succ"
}
说明 如果修改的通道不存在则报错返回如下信息:
{
"errno": 17,
"error": "This channel is not available under this device!"
}

3.命令下发

3.1发送命令

HTTP方法 POST
URL http://API_ADDRESS/ipc/video/cmds
HTTP头部 api-key 必填
URL参数 device_id =//设备ID
qos=//是否需要设备回应,0 不需要,1需要 默认值为0
type=//命令类型,0,平台定义,1用户定义 默认值为0
HTTP内容 用户自定义数据:json、string、二进制数据(小于64K)
成功返回 {
"errno": 0,
"error":”succ”,
"data":{
"cmd_uuid":”2303-312-Fws”, //指令ID
"cmd_status": 4,//设备下发的状态(平台的返回)
"dev_resp": {
“resp_code”:1,//设备返回的错误码,0表示成功
"resp_data": "xxxxxxx" //设备返回的数据的base64
}
说明 resp_code 为命令在设备的执行状态
cmd_status 如下:
0:设备不在线 device not online
1:命令已创建 sending
2:命令已发往设备 send ok
3:命令发往设备失败 Send error
4:设备正常响应 ok
5:命令执行超时 time out
6:设备响应数据错误 resp data error。
当命令为不需要设备回复时,返回2表示下发成功。
当需要设备回复时,返回 4 时表示成功

3.2 OneNET视频设备支持的通用命令

1.通知通道生成关键帧
设备根据情况实现,命令格式如下:

{
    "cmdId": 5,      //产生视频关键帧
    "channel_id ": 1 //数字,对应视频源通道号

}

2.云台控制指令

{
    "cmdId": 7,      //指令id,7为云台控制指令
    "channel_id": 1, //数字, 对应视频源通道号
    "cmd":
    {
        "stop": 0, // 0 表示开始控制,1 停止控制, 2 单步控制
        "cmd": 1,  // 见cmd值
        "speed":   //速度1-7
    }
}

cmd值: 1: 焦距变大(倍率变大)  2:焦距变小(倍率变小)  3: 焦点前调 4: 焦点后调 5: 光圈扩大 6: 光圈缩小 11: 方向向上 12: 方向向下  13: 方向左转 14: 方向右转 15: 方向左上 16: 方向右上 17: 方向左下 18: 方向右下 22:自动扫描

}

3.本地视频查询
请求格式:

{
   "cmdId": 10, 
    "channel_id":1,
    "cmd":{
        "warn_type":100,//告警类型,参考告警类型表,0或无此字段表示查询所有文件
        "page":1,
        "start_time": "2017-09-29 12:00:31", // 可选
        "end_time": "2017-09-29 13:00:30"    //可选
        "per_page":20
    }

}

设备返回格式

  "all_count": 25, //查询的所有视频总数
    "cur_count":20,  //当前页视频数
    "channel_id":1
    "rvods":[{
        "warn_type":100, // 告警类型,参考告警类型表,0表示非告警视频
        "video_desc": "test123",
        "size": 222,  // 字节数
        "start_time":"2017-09-29 12:00:31",
        "end_time":"2017-09-29 13:00:30"
    }]

}

4.通知设备升级

{
    "cmdId": 11, //指令id
    "cmd":
    {
        "url": "文件名称"    //升级包下载链接网址,升级包采用.tar.gz 格式
        "ver": "xxx.xxx.xxx" // 文件版本号
        "md5": "xxxx"        //文件的32bit md5码
    }
}

5.OSD获取
平台请求:

{
    "cmdId": 20, //指令id
    "channel_id":1
}

设备响应:

{
    "cmdId": 20, //指令id
    "channel_id":1,
    "cmd":[
    {
        "type": 1,    //1 自定义字符
        "enable": 0,  //0 禁止OSD功能,1 启用OSD功能 若禁用,无后面两字段
        "text":"xxxx" //OSD内容: 
        "pos":"xxx"   //left-top right-top left-bottom right-bottom
    },
    {
        "type": 2,    //2 时间
        "enable": 0,  //0 禁止OSD功能,1 启用OSD功能 若禁用,没有后续字段
        "pos":"xxx"   //left-top right-top left-bottom right-bottom  
        "date":"YMD", // 日期格式 年月日的顺序YMD DMY…
        "time": 12    // 时间格式,12小时或者24小时制
    }]
}

6.OSD设置
平台请求:

{
    "cmdId": 21, //指令id
    "channel_id":1,
    "cmd":[
    {
        "type": 1,  //1 自定义字符
        "enable": 0,//0 禁止OSD功能,1 启用OSD功能 如果为禁用,没有后面两个字段
        "text":"xxxx" //OSD内容: 如果为空,则直接显示当前时间
        "pos":"xxx"   //left-top right-top left-bottom right-bottom  
    },
    {
        "type": 2,   //type 2表示时间
        "enable": 0, //0 禁止OSD功能,1 启用OSD功能 如果禁用,没有后面两个字段
        "text":"xxxx"  //OSD内容: 如果为空,则直接显示当前时间
        "pos":"xxx"    //left-top right-top left-bottom right-bottom  
        "date": "YMD", // 日期格式 年月日的顺序
        "time": 12     //12 小时或者24小时
    }]
}

设备响应设置结果:

{
    "cmdId": 21,    //指令id
    "channel_id":1,
    "result":0     //操作结果:0 失败,1 成功
}

7.设备录像状态获取
设备录像状态获取

{
    "cmdId": 26, //指令id
    "channel_id":1
}

设备录像状态返回:

{
    "cmdId": 26,   //指令id
    "channel_id":1,
    "cmd":
    {     
        "mode": 0,    //0 未启用,1 启用指定时间段录制,
        "recycle": 0, // 0 不覆盖, 1 当满时覆盖旧的录像
        "time":[      //当状态为mode为1 时,有此字段
        {
            "weekday":0,            // 见weekday值
            "start_time": "HH:MM:SS", //每天录制开始时间 
            "end_time": "HH:MM:SS"  //每天录制结束时间, 24小时制
        },
        {
            "weekday":1, 
            "start_time": "HH:MM:SS", //每天录制开始时间 
            "end_time": "HH:MM:SS"    //每天录制结束时间 
        }]
    }
}
weekday值: 0,1,2,3,4,5,6 分别对应星期日,星期一,星期二,星期三,星期四,星期五,星期六。

8.设备录像设置
设置请求

{
    "cmdId": 27, //指令id
    "channel_id":1,
    "cmd":{
        "mode": 0,    //0 未启用,1 启用指定时间段录制,
        "recycle": 0, // 0 不覆盖, 1 当满时覆盖旧的录像
        "time":[ //当mode为1时,有此字段
        {
            "weekday":0, // 见weekday值
            "start_time": "HH:MM:SS",//每天录制开始时间 
            "end_time": "HH:MM:SS"   //每天录制结束时间, 24小时制
        },
        {
            "weekday":1, 
            "start_time": "HH:MM:SS",//每天录制开始时间 
            "end_time": "HH:MM:SS"   //每天录制结束时间 
        }]
}
weekday值: 0,1,2,3,4,5,6 分别对应星期日,星期一,星期二,星期三,星期四,星期五,星期六。

录像设置返回

{
    "cmdId": 27,  //指令id
    "channel_id":1,
    "result":0    //操作结果:0 失败,1 成功
}

9.当前时间配置获取
获取请求

{
    "cmdId": 28,  //指令id
    "channel_id":1
}

设备返回

{
    "cmdId": 28,  //指令id
    "channel_id":1,
    "cmd":
    {

        "mode": 1 , // 1 手动方式, 2 NTP 方式
        "time": "YYYY-MM-DD HH-MM-SS", //年月日 时分秒 当mode 为1 时有此字段
        "timezone": "+/-N", //时区+N代表东N区,-N代表西N区,当mode为2时有此字段
        "syncserver":"www.xxxx", //同步服务器,当mode为2时有此字段
        "port": 111 //NTP 服务端口号, 当mode为2时有此字段
    }
}

10.时间同步设置

{
    "cmdId": 29,  //指令id
    "channel_id":1,
    "cmd":
    {

        "mode": 1 , // 1 手动方式, 2 NTP 方式
        "time": "YYYY-MM-DD HH-MM-SS", //年月日 时分秒 当mode 为1 时有此字段
        "timezone": "+/-N", //时区+N代表东N区,-N代表西N区,当mode为2时有此字段
        "syncserver":"www.xxxx", //同步服务器,当mode为2时有此字段
        "port": 111 //NTP 服务端口号, 当mode为2时有此字段
    }
}

时间设置返回

{
    "cmdId": 29, //指令id
    "channel_id":1,
    "result":0 //操作结果:0 失败,1 成功
}

11.TF卡状态获取
获取请求

{
    "cmdId": 30  //指令id
}

设备返回

{
    "cmdId": 30,  //指令id
    "cmd":
    {
        "state":0,     //TF卡状态:0 不存在,1正常,2 异常,3 容量满
        "blocks": 0 ,  //总容量(单位:K)
        "available": 0 //可用容量(单位:K)
        "mode":0       //0 不可操作,1 仅可读,2 可读写
    }
}

12.TF卡操作
操作请求:

{
    "cmdId": 31,   //指令id
    "cmd":
    {
        "opt":"format" //操作 format 格式化,mount 挂载,umount 卸载
    }
}

TF卡设置返回:

{
    "cmdId": 31,  //指令id
    "result":0    //操作结果:0 失败,1 成功
}

13.设备快照
快照请求:

{
    "cmdId": 32,   //指令id
    "channel_id":1,
    "cmd":
    {
        "width":xx,   //快照分辨率,宽度,默认是终端最大分辨率
        "height":xx,  //快照分辨率,高度,默认是终端最大分辨率
        "quality":xx, //快照质量,取值1-100,默认是100
    }
}

快照结果:

{
    "cmdId": 32,    //指令id
    "channel_id":1,
    "result":0,    //操作结果:0 失败,1 成功
    "cmd": //当结果为成功时,有此字段
    {
        "name":"xxxx" //上传的文件名称 
    }
}

14.获取音视频配置信息
获取请求:

{
    "cmdId": 33,  //指令id
    "channel_id":1
}

设备返回:

{
    "cmdId": 33,  //指令id
    "channel_id":1,
    "cmd":
    {
        "codec": "h264", //h264或者h265
        "bitRate": 512 , //码率 kbps
        "frameRate": "25", //帧率
        "resolution": "1280*720", //分辨率(宽*高)
        "display_mode": 1, //图像模式,0 自动,1 彩色,2 黑白,3 日夜全彩
        "display_direction":0,// 见display_direction值
        "display_flip":0, //见display_flip值
        "led_white":0,    //0 关闭LED白光,1 打开LED白光,2 自动设置
        "led_red":0,      //0 关闭LED红灯,1 打开LED红光,2 自动设置   
        "audio": "on",    //audio 开关 on或者off
    }
}
display_direction值: 画面方向,0正常,1左转90度,2右转90度,3旋转180度。
display_flip值: 画面翻转,0 正常,1 水平翻转,2 垂直翻转,3 垂直及水平翻转。

15.设置音视频配置信息

{
    "cmdId": 34,  //指令id
    "channel_id":1,
    "cmd":
    {
        "codec": "h264", //h264或者h265
        "bitRate": 512 , //码率 kbps
        "frameRate": "25", //帧率
        "resolution":"1280*720", //分辨率(宽*高)
        "display_mode": 1,   //图像模式,0 自动,1 彩色, 2 黑白, 3 日夜全彩
        "display_direction":0,   //见display_direction值。
        "display_flip":0, //见display_flip值。
        "led_white":0,    //0 关闭LED白光,1 打开LED白光,2 自动设置
        "led_red":0,      //0 关闭LED红灯,1 打开LED红光,2 自动设置   
        "audio": "on",    // audio 开关 on或者off
    }
}
display_direction值: 画面方向,0正常,1左转90度,2右转90度,3旋转180度。
display_flip值: 画面翻转,0正常,1 水平翻转,2 垂直翻转,3 垂直及水平翻转。

设备返回:

{
    "cmdId": 34,   //指令i
    "channel_id":1,
    "result":0     //操作结果:0 失败,1 成功
}
  1. 获取摄像机状态 ``` { "cmdId": 39, //指令id "channel_id":1 }
设备返回:

{ "cmdId": 39, //指令id "channel_id":1, "cmd": { "status": "on" //on 镜头开启,off 镜头关闭 } }


17. 设置摄像机状态

{ "cmdId": 40, //指令id "channel_id":1, "cmd": { "status": "on" //on 镜头开启,off 镜头关闭 } }

设备返回:

{ "cmdId": 40, //指令id "channel_id":1, "result":0 //操作结果:0 失败,1 成功 }


18.  获取摄像机的WiFi列表

{ "cmdId": 41 //指令id }

设备返回

{ "cmdId": 41, //指令id "cmd": { "list":["ap1", "ap2", "ap3"] } }


19.设置摄像机WiFi 密码

{ "cmdId": 42, //指令id "cmd": { "wifi_id": "ap1", "wifi_pw": "pwd" } }

设备返回:

{ "cmdId": 42, //指令id "result":0 //操作结果:0 失败,1 成功 }

20. 本地视频封面图获取<br>请求格式:

{ "cmdId": 43, "channel_id":1, "cmd": //标识文件的索引信息 { "start_time": "2017-09-29 12:00:31", "end_time": "2017-09-29 13:00:30" } }

设备返回格式:

{ "cmdId": 43, "channel_id":1, "result": 0, //操作结果:0 失败,1 成功 "cmd": { "type":"jpg", //jpg 或者 png "data":"base64data" //图片文件的base64码 } }

21. 运动侦测状态获取<br>获取状态:

{ "cmdId": 80, //指令id "channel_id":1 }

获取状态返回:

{ "cmdId": 80, //指令id "channel_id":1, "cmd": { "state":0, //0 已禁止功能, 1 已允许启动功能 "event":1, //0 无配置,1 触发抓拍,2触发设备录像,3触发云端录像 "sensitivity":0, //灵敏度(1-100) "resolution": "640480", //设备当前分辨率,x分辨率y分辨率 "max_region":1 //允许设置的区域数量 "region": [ //区域布防,左上角为原点 { "x": 0 //x起始处的像素点数 "y": 0 //y起始处的像素点数 "w": 300 //宽度,区域x方向所包含的像素点数 "h": 100 //高度,区域y方向所包含的像素点数 }], "time":[ //布防时间 { "weekday":0, //见weekday值。 "start_time": "HH:MM:SS", //布放开始时间 "end_time": "HH:MM:SS" //布放结束时间, 24小时制 }, { "weekday":1, "start_time": "HH:MM:SS",
"end_time": "HH:MM:SS"
}] } } weekday值: 0,1,2,3,4,5,6 分别对应星期日,星期一,星期二,星期三,星期四,星期五,星期六。

22. 运动侦测状态设置<br>设置运动侦测:

{ "cmdId": 81, //指令id "channel_id":1, "cmd": { "enable": 0, //0 禁止功能,1 启用功能,当启用时,有后面3个字段 "event":1, //0 无配置 1 触发抓拍,2触发设备录像,3触发云端录像 "sensitivity":0, //灵敏度(1-100) "region": [ //区域布防,左上角为原点 { "x": 0 //x起始处的像素点数 "y": 0 //y起始处的像素点数 "w": 300 //宽度,区域x方向所包含的像素点数 "h": 100 //高度,区域y方向所包含的像素点数 }], "time":[ //布防时间 { "weekday":0, //见weekday值 "start_time": "HH:MM:SS", //布放开始时间 "end_time": "HH:MM:SS" //布放结束时间, 24小时制 }, { "weekday":1, "start_time": "HH:MM:SS", "end_time": "HH:MM:SS" }] } } weekday值: 0,1,2,3,4,5,6 分别对应星期日,星期一,星期二,星期三,星期四,星期五,星期六。

设备返回设置结果:

{ "cmdId": 81, //指令id "channel_id":1, "result":0 //操作结果:0 失败,1 成功 }

23.视频遮挡状态获取<br>获取状态:

{ "cmdId": 82, //指令id "channel_id":1 }

获取状态返回:

{ "cmdId": 82, //指令id "channel_id":1, "cmd": { "state":0, //0 已禁止功能, 1 已允许启动功能 "event":1, //0 无配置,1 触发抓拍,2触发设备录像,3触发云端录像 "sensitivity":0, //灵敏度(1-100) "resolution": "640480", //设备当前分辨率,x分辨率y分辨率 "max_region":1 //允许设置的区域数量 "region": [ //区域布防,左上角为原点 { "x": 0 //x起始处的像素点数 "y": 0 //y起始处的像素点数 "w": 300 //宽度,区域x方向所包含的像素点数 "h": 100 //高度,区域y方向所包含的像素点数 }], "time":[ //布防时间 { "weekday":0, //见weekday值 "start_time": "HH:MM:SS", //布放开始时间 "end_time": "HH:MM:SS" //布放结束时间, 24小时制 }, { "weekday":1, "start_time": "HH:MM:SS", "end_time": "HH:MM:SS" }] } } weekday值: 0,1,2,3,4,5,6 分别对应星期日,星期一,星期二,星期三,星期四,星期五,星期六。

24.视频遮挡状态设置<br>设置视频遮挡状态:

{ "cmdId": 83, //指令id "channel_id":1, "cmd": { "enable": 0, //0 禁止功能,1 启用功能,当启用时,有后面3个字段 "event":1, //0 无配置,1 触发抓拍,2触发设备录像,3触发云端录像 "sensitivity":0, //灵敏度(1-100) "region": [ //区域布防,左上角为原点 { "x": 0 //x起始处的像素点数 "y": 0 //y起始处的像素点数 "w": 300 //宽度,区域x方向所包含的像素点数 "h": 100 //高度,区域y方向所包含的像素点数 }], "time":[ //布防时间 { "weekday":0, //见weekday值。 "start_time": "HH:MM:SS", //布放开始时间 "end_time": "HH:MM:SS" //布放结束时间, 24小时制 }, { "weekday":1, "start_time": "HH:MM:SS", "end_time": "HH:MM:SS" }] } } weekday值: 0,1,2,3,4,5,6 分别对应星期日,星期一,星期二,星期三,星期四,星期五,星期六。

设备返回设置结果:

{ "cmdId": 83, //指令id "channel_id":1, "result":0 //操作结果:0 失败,1 成功 }

25.声音告警状态获取<br>获取状态

{ "cmdId": 84, //指令id "channel_id":1 }

获取状态返回:

{ "cmdId": 84, //指令id "channel_id":1, "cmd": {
"state":0, //0 已禁止功能, 1 已允许启动功能 "event":1, //0 无配置,1 触发抓拍,2触发设备录像,3触发云端录像 "sensitivity":0, //灵敏度(1-100) "time":[ //布防时间 { "weekday":0, //见weekday值 "start_time": "HH:MM:SS", //布放开始时间 "end_time": "HH:MM:SS" //布放结束时间, 24小时制 }, { "weekday":1, "start_time": "HH:MM:SS", "end_time": "HH:MM:SS" }] } } weekday值: 0,1,2,3,4,5,6 分别对应星期日,星期一,星期二,星期三,星期四,星期五,星期六。


26.声音告警设置<br>设置声音告警:

{ "cmdId": 85, //指令id "channel_id":1, "cmd": { "enable": 0, //0 禁止功能,1 启用功能,当启用时,有后面3个字段 "event":1, //0 无配置,1 触发抓拍,2触发设备录像,3触发云端录像 "sensitivity":0, //灵敏度(1-100) "time":[ //布防时间 { "weekday":0, //见weekday值 "start_time": "HH:MM:SS", //布放开始时间 "end_time": "HH:MM:SS" //布放结束时间, 24小时制 }, { "weekday":1, "start_time": "HH:MM:SS", "end_time": "HH:MM:SS" }] } } weekday值: 0,1,2,3,4,5,6 分别对应星期日,星期一,星期二,星期三,星期四,星期五,星期六。

设备返回设置结果

{ "cmdId": 85, //指令id "channel_id":1, "result":0 //操作结果:0 失败,1 成功 }


27.其他告警状态获取<br>获取状态:

{ "cmdId": 91, //指令id "channel_id":1 }

获取状态返回:

{ "cmdId": 91, //指令id "channel_id":1, "cmd": { "state":0, //0 已禁止功能, 1 已允许启动功能 "event":1, // 触发事件类型 0 无配置 1 触发抓拍,2触发设备录像,3触发云端录像 "time":[ //布防时间 { "weekday":0, //见weekday值 "start_time": "HH:MM:SS", //布放开始时间 "end_time": "HH:MM:SS" //布放结束时间, 24小时制 }, { "weekday":1, "start_time": "HH:MM:SS", "end_time": "HH:MM:SS" }] } } weekday值: 0,1,2,3,4,5,6 分别对应星期日,星期一,星期二,星期三,星期四,星期五,星期六。


28.其他告警设置<br>告警设置请求:

{ "cmdId": 92, //指令id "channel_id":1, "cmd": { "state":0, //0 已禁止功能, 1 已允许启动功能 "event":1, // 触发事件类型 0 无配置 1 触发抓拍,2触发设备录像,3触发云端录像 "time":[ //布防时间 { "weekday":0, //见weekday值 "start_time": "HH:MM:SS", //布放开始时间 "end_time": "HH:MM:SS" //布放结束时间, 24小时制 }, { "weekday":1, "start_time": "HH:MM:SS",
"end_time": "HH:MM:SS"
}] } } weekday值: 0,1,2,3,4,5,6 分别对应星期日,星期一,星期二,星期三,星期四,星期五,星期六。

告警设置返回:

{ "cmdId": 92, //指令id "channel_id":1, "result":0 //操作结果:0 失败,1 成功 }

```

4.实时播放接口

4.1 拉流地址获取

HTTP方法 GET
URL http://API_ADDRESS/ipc/video/play_address
HTTP头部 api-key 必填
URL参数 device_id=//接收该数据的设备ID,必填
channel_id=//对应数据流名称中的channelnum
protocol_type=播放协议类型 0:rtmp 1:hls 2:https-hls 3:flv 4:https-flv timeout=//token超时时间,单位为毫秒,-1表示永不过期
HTTP内容
成功返回 {
"errno": 0,
"error":”succ”,
“data”:{
"addr":"ip:port",
"accessToken":“字符串”,
"type":"rtmpe",
"coveraddr":"ip:port"
}
}
说明 拉流地址需要根据返回接口进行拼接:
Rtmp实时拉流地址格式:type://ip:port/live/${device_id}-${channel_id}?accessToken
Rtmp 实时拉流地址示例:rtmp://183.230.40.39:1935/live/2162826-2?accessToken

Rtmp历史拉流地址格式:
rtmp://ip:port/rvod/${device_id}-${channel_id}-${begintime}-${endtime}?accessToken
Rtmp历史拉流地址示例:
rtmp://183.230.40.39:1935/rvod/2162826-2-201711131530-201711131540?accessToken

Hls实时拉流地址格式:brhttp://183.230.40.39:8080/live/live_2162826_2/index.m3u8?accessToken<br错误码说明:
1 参数错误
2服务器内部错误
3 通道不存在
4 设备不在线
5 设备数据错误

4.2 HLS流预加载请求

HTTP方法 GET
URL http://HLS_PLAY_ADDRESS/live/live_{DEVICE_ID}_{CHANNEL_ID}/preload
HTTP头部 api-key 必填
URL参数 token=xxxxx, //播放token
idle_time=120, //空闲清理时间(s),最大值120
HTTP内容
成功返回 {
"errno": 0,
"error":”succ”
}
说明 HLS_PLAY_ADDRESS 及 token 是由HLS拉流地址接口返回。
DEVICE_ID 设备ID,CHANNEL_ID 通道ID
该接口可以达到HLS流预加载的目的

4.3 获取直播缩略图

HTTP方法 GET
URL http://coveraddr/live_preview/${device_id}-${channel_id}
HTTP头部
URL参数 token = “”
HTTP内容
成功返回 图片二进制内容
说明 地址和Token是获取拉流地址时返回的accessToken和coveraddr, 直接通过coveraddr和token可以拼装url地址
http://coveraddr/live_preview/${device_id}_${channel_id}?token=accessToken

4.4 获取设备主动推流地址

HTTP方法 GET
URL http:// /ipc/video/get_push_address
HTTP头部 api-key (必填项)
URL参数 device_id= //设备ID
channel= //通道ID
isp= //cm cu ct other //设备所在的网络,移动,联通,电信或者其他未知网络
HTTP内容
成功返回 {
"errno": 0,
"error":"succ",
"data":
{
"url": "rtmp push address"
}
}
说明 此地址没有时间使用限制,用户自行保密
支持RTMP推流的设备可以直接推流,也可以使用第三方软件推流,如ffmpeg等,不需要使用ODVP协议接入设备。

5.图片相关接口

5.1 图片上传

HTTP方法 PUT
URL http://API_ADDRESS/ipc/video/picture/upload
HTTP头部 api-key 必填
URL参数 device_id =1
channel_id=1
format=”jpg”/”png”
name="111"
desc="图片描述"
HTTP内容 图片二进制内容
成功返回 {
"errno": 0,
"error":”succ”}
说明 可用在播放端截图上传等
如果与已经上传的图片名字相同,则返回错误

5.2 获取图片列表信息

HTTP方法 GET
URL http://API_ADDRESS/ipc/video/picture/get_list
HTTP头部 api-key 必填
URL参数 device_id ="1111"
channel_id=11
start_time=111, // UNIX时间戳,可选过滤条件
end_time=222, // UNIX时间戳, 可选过滤条件
page_start= 1, //分页起始
page_size=1 //分页大小
HTTP内容
成功返回 {
"errno": 0,
"error":”succ”
data:[
{
"format":”jpg” // jpg或png
"size": 1234,// 单位是字节
"date": 1234, // UNIX 时间戳
"name":"111",// 图片名(唯一ID)
"desc" : "name", // 图片描述
"url" : "url" //图片获取url
}
],
"page_info":{
"total_num":50
"page_total":25,
"page_size":2,
"current_page":1
}
}
说明 -

5.3 获取图片信息

HTTP方法 GET
URL http://API_ADDRESS/ipc/video/picture/get_info
HTTP头部 api-key 必填
URL参数 device_id ="1111"
channel_id=11
name=1, //图片名字
HTTP内容
成功返回 {
"errno": 0,
"error":”succ”
data:
{
"format":”jpg” // jpg或png
"size": 1234,// 单位是字节
"date": 1234, // UNIX 时间戳
"name":"111",// 图片名(唯一ID)
"desc" : "name", // 图片描述
"url" : "url" //图片获取url
}
说明 -

5.4 删除图片

HTTP方法 DELETE
URL http://API_ADDRESS/ipc/video/picture/delete_pictrue
HTTP头部 api-key 必填
URL参数 device_id ="1111"
channel_id=11
name=1, //图片名字
HTTP内容
成功返回 {
"errno": 0,
"error":”succ”}
说明 -

5.5 获取图片

HTTP方法 GET
URL $url
HTTP头部
URL参数
HTTP内容
成功返回 返回图片数据
说明 $url 从《获取图片信息》或者《获取图片列表信息》中的接口返回
http:// /ipc/video/picture/

6.点播相关接口

6.1 视频信息获取

HTTP方法 GET
URL http://API_ADDRESS/ipc/video/vod/get_video_info
HTTP头部 api-key 必填
URL参数 device_id=12,
channel_id=12,
video_id=”1112341234”
security=1 //选择安全播放链接(https和rtmpe),没有则默认为普通链接
HTTP内容
成功返回 {
"errno": 0,
"error":”succ”,
"data":{
"videoid":dafdafd
"name":“dad”,
"start":"2017-01-12 12:01:12",
"end":"2017-01-12 15:01:12",
"size":"1234",// 单位是Kbytes
"durtion":"12", // 单位是秒
"hls_url":"url",// http播放地址
"rtmp_url":"url" // RTMP播放地址
}
}
说明 播放地址需要携带token。token获取见《视频点播token获取》
组装方式为hls: url?token=”token”, rtmp: url?token。
Hls按照http url参数方式增加一个参数token,参数值为获取的token内容。
Rtmp协议直接将token内容拼接在“?”后面。
Security 默认为0,返回普通播放链接(http和rtmp),1表示返回安全播放链接(https和rtmpe)

6.2 视频列表获取

HTTP方法 GET
URL http://API_ADDRESS/ipc/video/vod/get_video_list
HTTP头部 api-key 必填
URL参数 device_id=12,
channel_id=12,
start_time=“2018-01-01 01:00:00”, // 格式化字符串 可选过滤条件
end_time=“2018-01-01 01:00:00”, // 格式化字符串 可选过滤条件
name=”111”, //可选过滤条件,根据名称过滤
page_start= 1, //分页起始
page_size=1 //分页大小
security=1 //选择安全播放链接(https和rtmpe),没有则默认为普通链接
HTTP内容
成功返回 {
"errno": 0,
"error":”succ”,
"data":{
"videos":[
{
"videoid":"dafdafd",
"name":"dad",
"start":"2017-01-12 12:01:12",
"end":"2017-01-12 15:01:12",
"size":1234,// 单位是KBytes
"hls_url":"url",// http播放地址
"rtmp_url":"url" // RTMP播放地址
},
{….},
…..
]
}
"page_info":
{
"total_num":50,
"page_total":25,
"page_size":2,
"current_page":1
}
}
说明 选择过滤时间可以只填start_time或者end_time,也可以一起填
播放地址需要携带token。token获取见《视频点播token获取》
组装方式为hls: url?token=”token”, rtmp: url?token。
Hls按照http url参数方式增加一个参数token,参数值为获取的token内容。
Rtmp协议直接将token内容拼接在“?”后面。
Security 默认为0,返回普通播放链接(http和rtmp),1表示返回安全播放链接(https和rtmpe)

6.3 视频删除

HTTP方法 POST
URL http://API_ADDRESS/ipc/video/vod/delete_video
HTTP头部 api-key 必填
Content-Type:application/json
URL参数 deviceid=12,
channeled= 12
HTTP内容 {
"video": [{
"videoId": 1
},
{
"videoId": 2
}]
}
成功返回 {
"errno": 0,
"error":”succ”,
"data":
[
{"code":0}
{"code":1, "message":"not exist"}
]
}
说明 返回消息会以数组的形式给出每个删除ID的结果,如果删除失败会给出错误信息
videoId必须是字符串

6.4 视频重命名

HTTP方法 PUT
URL http://API_ADDRESS/ipc/video/vod/rename_video
HTTP头部 api-key 必填
Content-Type:application/json
URL参数 device_id=12,
channel_id=12,
video_id=”1112341234”
HTTP内容 {“name” : “11111”}
成功返回 {
"errno": 0,
"error":”succ”,
}
说明 -

6.5 视频点播token获取

HTTP方法 GET
URL http://API_ADDRESS/ipc/video/vod/get_play_token
HTTP头部 api-key 必填
URL参数 device_id=12,
channel_id=12,
video_id=”1112341234”
HTTP内容
成功返回 {
"errno": 0,
"error":”succ”,
"data":{
"token": "sdafsa"
}
}
说明 Token用于点播相关的视频获取

7.产品加密

7.1 设置产品的视频加密开关

HTTP方法 PUT
URL http://API_ADDRESS/ipc/video/trans_encrypt
HTTP头部 api-key 必填
URL参数 product_id=7355 //产品id
HTTP内容 {"type":0} 0为不加密,1加密
成功返回 {
"errno": 0,
"error": "succ"
}
说明

7.2 获取产品加密状态

HTTP方法 GET
URL http://API_ADDRESS/ipc/video/trans_encrypt
HTTP头部 api-key 必填
URL参数 product_id=7355 //产品id
HTTP内容
成功返回 {"errno":0,"trans_enc":1}
说明 -

8.查询设备在线状态

HTTP方法 GET
URL http://API_ADDRESS/ipc/video/device/QryDevStatus
HTTP头部 api-key 必填
URL参数 devIds=123,456,789//设备ID串,以逗号隔开,最多30个,长度不超过500,必填字段
HTTP内容
成功返回 {"errno": 0,
"error": "succ",
"result": {
"total_count": 2,
"devices": [
{
"id": "2480461",
"online": false
},
{
"id": "2818370",
"online": false
}
]
}
}
说明

9.查询设备透传信息

HTTP方法 GET
URL http://API_ADDRESS/ipc/video/device/QryDevMsg
HTTP头部 api-key 必填
URL参数 device_id=//设备ID 必填
begin_time=//查询开始时间 必填 2018-01-01 00:00:00
end_time=//查询结束时间,必填 2018-01-02 00:00:00
HTTP内容
成功返回 {"errno":0,
"error":"succ",
"page_info":
{
"total_num":7,
"page_total":1,
"page_size":50,
"current_page":1
},
"result":
[
{
"create_time":"2018-01-04 16:27:40",
"msg_id":14,
"msg":"bXlfdGVzdF8xMjM0NQ=="
},
{
"create_time":"2018-01-04 16:31:53",
"msg_id":14,
"msg":"bXlfdGVzdF8xMjM0NQ=="
},
{
"create_time":"2018-01-08 09:27:00",
"msg_id":4398046511104,
"msg":"bXlfdGVzdF8xMjM0NQ=="
},
{
"create_time":"2018-01-08 10:06:16",
"msg_id":4398046511104,
"msg":"bXlfdGVzdF8xMjM0NQ=="
},
{
"create_time":"2018-01-08 10:07:19",
"msg_id":4398046511104,
"msg":"bXlfdGVzdF8xMjM0NQ=="
},
{
"create_time":"2018-01-08 10:09:49",
"msg_id":4398046511104,
"msg":"bXlfdGVzdF8xMjM0NQ=="
},
{
"create_time":"2018-01-08 14:10:35",
"msg_id":4398046511104,
"msg":"bXlfdGVzdF8xMjM0NQ=="
}
]
}
说明 设备透传的消息内容(msg字段)经过了base64编码,需要客户端解码。

10.查询引导机地址

HTTP方法 GET
URL http://API_ADDRESS/ipc/video/boot_address
HTTP头部
URL参数
HTTP内容
成功返回 {
"errno": 0,
"error": "succ",
“data”:
{
"boot_address": "xxx.xxx.xxx.xxx",
"boot_port": 9101
}
}
说明 -

11.获取设备接入地址

HTTP方法 GET
URL http:// /ipc/video/device/acc_service
HTTP头部 api-key 必填
URL参数 product_id=//产品号,必填
device_id=//接收该数据的设备ID,必填
net =
device_addr=
domain=1//为1时返回值中addr为域名
HTTP内容
成功返回 {
"errno": 0
"error": "succ"
"data":{
"addr":"ip:port",
"token":"字符串",
"access":"字符串"
}
}
说明 net填写网络标识(移动:CM,联通:CU, 电信:CT)
device_addr填写设备ip地址,字符串形式,如192.168.1.1。可选填,填写地址之后,net参数可能会被忽略,将会根据实际地址返回
合适的接入点,不一定会按照net参数来分配。
net和device_addr必须选填一个

Addr返回接入机连接地址
Token返回设备接入鉴权字符串
Access返回设备access鉴权字符串

12.设备数据透传

HTTP方法 POST
URL http://API_ADDRESS/ipc/video/dev_active
HTTP头部 api-key 必填
URL参数 device_id =//设备ID
HTTP内容 自定义,不超过128 byte
成功返回 {
"errno": 0, // 0 命令发送成功
"error": "succ"
}
说明 该接口适用的场景:设备需要收到固定字符串
协议将不对该串加密,协议头部的序列号将置零
设备收到的头部字符串将固定不变

13.视频录制接口

13.1 手动录制

HTTP方法 GET
URL http://API_ADDRESS/ipc/video/record/record_video
HTTP头部 api-key 必填
URL参数 product_id=12
device_id=123
channel_id=12345
action=0/1, // 0:停止录制 1:开始录制, 必选
expired=nday //当开始录制时,设置这个参数
HTTP内容
成功返回 {
"errno": 0,
"error": "succ"
}
说明 product_id : 产品号,必选参数
device_id : 设备号,必选参数
channel_id : 通道号,必选参数
action: 操作类型,0:停止录制 1:开始录制,必选参数
如果平台正在录制,返回错误
如果平台是通过API启动的录制,则需要通过API 停止录制

13.2 添加录制配置

HTTP方法 PUT
URL http:// /api/record/record_config
HTTP头部 api-key:xxxx
URL参数 product_id=12
device_id=123
channel_id=12345
action=0/1, // 0:停止录制 1:实时录制,2:事件录制 必选
cycle =1, //单位天
start_time=””,
end_time=””
HTTP内容
成功返回 {
"errno": 0,
"error": "succ"
}
说明 product_id : 产品号,必选参数
device_id : 设备号,必选参数
channel_id : 通道号,必选参数
type: 录制类型,0:定时录制,1:实时录制,2:事件录制,必选参数

以下为非必选参数
cycle: 单位天, 录制周期,当type为1和2时有效

13.3 删除录制配置

HTTP方法 DELETE
URL http:// /ipc/video/record/delete_config
HTTP头部 api-key:xxxx
URL参数 product_id=12
device_id=123
channel_id=12345
HTTP内容
成功返回 {
"errno": 0,
"error": "succ"
}
说明 product_id : 产品号,必选参数
device_id : 设备号,必选参数
channel_id : 通道号,必选参数

13.4 更新录制配置

HTTP方法 PUT
URL http:// /ipc/video/record/update_config
HTTP头部 api-key:xxxx
URL参数 product_id=12
device_id=123
channel_id=12345
type=0/1, //1:实时录制,2:事件录制
cycle =1, //单位天
HTTP内容
成功返回 {
"errno": 0,
"error": "succ"
}
说明 此API用于更新设备录制配置,调用此API,将会强制刷新设备原有配置,有短暂的生效时间(即设备停止旧配置后
重新录制新配置),原配置不存在则新增。type参数若为空,表示清空设备配置

14.实时查询

14.1 播放实时查询

HTTP方法 GET
URL http://API_ADDRESS/ipc/video/stat/getonlinelist
HTTP头部 api-key 必填
注:只能用master-key
URL参数 productid=//产品号 必填
deviceid =//设备ID
channelid=//通道号
protocoltype =//协议类型 rtmp hls
page_key=//分页查询使用
page_size=//每页查询的数据
page=分页查询使用
HTTP内容
{
"errno":0,
"error":"succ",
"result":
[
{
"productid":7312,
"deviceid":2479989,
"channelid":1,
"protocoltype":"RTMP",
"clientip":"172.19.3.99",
"videocodec":"H264",
"resolution":"1280 720",
"fps":25,
"audiocodec":"",
"bandwidth":91392,
"onlinetime":"00:04:43"
},
{
"productid":7312,
"deviceid":2479989,
"channelid":2,
"protocoltype":"RTMP",
"clientip":"172.19.3.99",
"videocodec":"H264",
"resolution":"1280
720",
"fps":25,
"audiocodec":"",
"bandwidth":63066,
"onlinetime":"00:07:00"
}
],
"page_info":
{
"total_num":3,
"page_total":2,
"page_size":2,
"current_page":1,
"page_key":"fc94c7c4-0760-4523-876c-5583260520c6"
}
}
说明 1)对于实时查询,第一页之后的数据查询,需要传入page_key
2)分页数据服务器只缓存5分钟,5分钟之后将失效

14.2 推流实时查询

HTTP方法 GET
URL http://API_ADDRESS/ipc/video/stat/getpushlist
HTTP头部 api-key 必填
注:只能用master-key
URL参数 productid=//产品号 必填
deviceid =//设备ID
channelid=//通道号
page_key=//分页查询使用
page_size=//每页查询的数据
page=分页查询使用
HTTP内容
成功返回 {
"errno":0,
"error":"succ",
"result":
[
{
"productid":7312,
"deviceid":2479989,
"channelid":3,
"protocoltype":"RTMP",
"puship":"172.19.3.98",
"videocodec":"H264",
"resolution":"640 480",
"fps":25,
"audiocodec":"AAC",
"bandwidth":95230,
"pushtime":"00:06:37"
},
{
"productid":7312,
"deviceid":2479989,
"channelid":1,
"protocoltype":"RTMP",
"puship":"172.19.3.98",
"videocodec":"H264",
"resolution":"1280
720",
"fps":25,
"audiocodec":"",
"bandwidth":91020,
"pushtime":"00:04:43"
}
],
"page_info":
{
"total_num":3,
"page_total":2,
"page_size":2,
"current_page":1,
"page_key":"5931b760-864a-44fb-9dd0-558e7caaace0"
}
}
说明 分页查询的处理方式与播放记录列表的处理方式一致

15.摄像头禁用/启用接口

HTTP方法 PUT
URL http://API_ADDRESS/ipc/video/access_control/closecamera
HTTP头部 api-key 必填
URL参数 product_id=12, //产品id
device_id=123, //设备id
id="1", //摄像头ID
HTTP内容 {
"type":1, //1为关,0为开
}
成功返回 {
"errno": 0,
"error":”succ”
}

16.公共对象存储

HTTP状态码 错误码 含义
200 200 成功(success)
400 400 请求报文格式错误(bad request)
401 401 认证授权失败(auth failed)
403 403 权限不足,拒绝访问(access deny)
404 404 资源不存在(resource not found)
405 405 请求方式错误(method not allow)
HTTP状态码 错误码 含义
413 413 请求资源大小大于指定的最大值(resource size is too big)
500 500 系统内部错误(system internal error)
502 502 错误网关(bad gateway)
503 503 服务端不可用(service unavailable)
504 504 服务端操作超时(gateway timeout)
400 1001 无效名字,排除特殊字符(invalid name, excluding special characters)
400 1002 无效名,最大长度限制为256(invalid name, maximum limit is 256)
400 1003 无效描述,最大长度限制为1024(invalid desc, maximum limit is 1024)

16.1 上传

HTTP方法 PUT
URL http://API_ADDRESS/ipc/video/file/upload
HTTP头部 api-key 与 authorization 二选一(必填项)
URL参数 product_id=1111,
name=test,
desc="1111", //可选
HTTP内容 上传的文件内容
成功返回 {
"errno": 200,
"error":”succ”
}
说明 上传对象大小限制在8M以内

16.2 下载

HTTP方法 GET
URL http://API_ADDRESS/ipc/video/file/download
HTTP头部 api-key 与 authorization 二选一(必填项)
URL参数 product_id=1111,
name=test
HTTP内容
成功返回 文件的二进制内容
说明 -

16.3 删除

HTTP方法 DELETE
URL http://API_ADDRESS/ipc/video/file/delete
HTTP头部 api-key 与 authorization 二选一(必填项)
URL参数 product_id=1111,
name=test
HTTP内容
成功返回 {
"errno": 200,
"error":”succ”
}
说明 -

16.4 获取列表

HTTP方法 GET
URL http://API_ADDRESS/ipc/video/file/list
HTTP头部 api-key 与 authorization 二选一(必填项)
URL参数 product_id=1111,
name=test
HTTP内容
成功返回 {"data": [{
"product_id": 111,
"name": "test",
"size": 1024,
"date": 1548228623,
"desc": ""
}],
"errno": 0,
"error": "succ",
"page_info": {
"total_num": 0,
"page_total": 0,
"page_size": 50,
"current_page": 1
}
}
说明 -

17.云告警信息

17.1 告警(视频,图片)列表查询

HTTP方法 GET
URL http:///ipc/video/alarm/list
HTTP头部 api-key
URL参数 product_id= //产品ID(必填)
device_id = //设备ID (默认0)
channel_id = //通道ID(默认 0)
alarm_type = //告警类型 (默认0) 参考《事件告警类型表》
alarm_way = //告警方式 (默认 0) 1 视频告警 2 图片告警
start_time = //开始时间(必填)
end_time = //结束时间(必填)
支持两种查询方式(时间跨度最大不超过31天):
例如:查询2019年12月31日告警信息
1)按照日期查询,格式:YYYY-MM-DD
start_time:2019-12-31
end_time:2019-12-31
start_time 取当日最开始的时间,end_time 取下一日最开始时间
2)按照时间查询,格式:YYYY-MM-DD HH:MM:SS
start_time:2019-12-31 00:00:00
end_time:2020-01-01 00:00:00
alarm_status = //1 未读 2 已读(默认0)
protocol = //告警事件播放地址协议类型 1 https 0 http(默认)
page = //指定页码, 可选, 默认1,最多10000
per_page = //指定每页输出设备个数,可选,默认30,最多100
HTTP内容
成功返回 {
"errno": 0,
"error": "succ",
"data": {
"total_count": 1,
"per_page":30,
"page": 1,
"item": [{
"device_id": 25045682,
"create_time": "2019-04-29 12:00:01",
"alarm_id":"5cff0d073", //告警记录ID唯一标识
"alarm_type": 199,
"alarm_way": 2,
"alarm_status": 1, // 1 未读 2 已读
"comment": "告警描述",
"picture": "图片url",
"thumbnail": "缩略图",
"play_address": "告警视频播放地址"
}]
}
}
备注 查询产品或者设备或者通道下的告警信息

17.2 告警消息查询

HTTP方法 GET
URL http:///ipc/video/alarm/info
HTTP头部 api-key
URL参数 product_id= //产品ID(必填)
device_id = //设备ID (默认0)
channel_id = //通道ID(默认 0)
start_time = //开始时间(必填)
end_time = //结束时间(必填)
支持两种查询方式(时间跨度最大不超过31天):
例如:查询2019年12月31日告警信息
1)按照日期查询,格式:YYYY-MM-DD
start_time:2019-12-31
end_time:2019-12-31
start_time 取当日最开始的时间,end_time 取下一日最开始时间
2)按照时间查询,格式:YYYY-MM-DD HH:MM:SS
start_time:2019-12-31 00:00:00
end_time:2020-01-01 00:00:00
alarm_status = //1 未读 2 已读(默认0)
protocol = //告警事件播放地址协议类型 1 https 0 http(默认)
page = //指定页码, 可选, 默认1,最多10000
per_page = //指定每页输出设备个数,可选,默认30,最多100
HTTP内容
成功返回 {
"errno": 0,
"error": "succ",
"data": {
"total_count": 1,
"per_page":30,
"page": 1,
"item": [{
"device_id": 25045682,
"create_time": "2019-04-29 12:00:01",
"alarm_id": "5cff0d0e9dc6d6c65305e573", //告警消息ID唯一标识一条告警消息
"alarm_status": 1, // 1 未读 2 已读
"comment": "告警描述"
}]
}
}
备注 1) 查询设备的告警消息(非视频告警以及图片告警)
2) 查询后消息自动更新为已读

17.3 告警信息状态更新

HTTP方法 POST
URL https:///ipc/video/alarm/update_status
HTTP头部 api-key
URL参数 product_id= //产品ID(必填)
HTTP内容 {
"alarm_id":["dkjfkdjf", "dkjfkdjf", "121313ssf"]
}
成功返回 {
"errno": 0,
"error": "succ"
}

17.4 未读告警数量查询

HTTP方法 GET
URL http:// /ipc/video/alarm/count
HTTP头部 api-key
URL参数 product_id= //产品ID(必填)
device_id = //设备ID (默认0)
channel_id = //通道ID(默认 0)
HTTP内容
成功返回 {
"errno": 0,
"error": "succ",
"data": {
"item": [{
"prodcut_id": 33020,
"device_id": 29023064,
"alarm_way": 1, //1 视频告警 2 图片告警 3设备信息
"channel_id": 1,
"count": 15
},
{
"prodcut_id": 33020,
"device_id": 27566869,
"channel_id": 1,
"alarm_way": 1, //1 视频告警 2 图片告警 3设备信息
"count": 15
}
]
}
}
备注 查询产品或者设备或者通道下的未读告警数量

17.5 告警信息删除

HTTP方法 POST
URL https:///ipc/video/alarm/delete
HTTP头部 api-key
URL参数 product_id = //产品ID(必填)
HTTP内容 {
"alarm_id":["dkjfkdjf", "dkjfkdjf", "121313ssf"]
}
成功返回 {
"errno": 0,
"error": "succ"

17.6 未读告警事件(图片告警,视频告警)按天统计

HTTP方法 GET
URL http:// /ipc/video/alarm/day
HTTP头部 api-key
URL参数 product_id= //产品ID(必填)
device_id = //设备ID (默认0)
start_time = //开始时间(必填)
end_time = //结束时间(必填)
支持两种查询方式(时间跨度最大不超过31天):
例如:查询2019年12月31日告警信息
1)按照日期查询,格式:YYYY-MM-DD
start_time:2019-12-31
end_time:2019-12-31
start_time 取当日最开始的时间,end_time 取下一日最开始时间
2)按照时间查询,格式:YYYY-MM-DD HH:MM:SS
start_time:2019-12-31 00:00:00
end_time:2020-01-01 00:00:00
HTTP内容
成功返回 {
"errno": 0,
"error": "succ",
"data": {
"item": [{
"day": "2019-12-31",
"number": 6
},
{
"day": "2019-12-30",
"number": 122
},
{
"day": "2019-12-27",
"number": 679
}
]
}
}
备注

17.7 告警事件(图片告警,视频告警)按天统计

HTTP方法 GET
URL http:// /ipc/video/alarm/day_count
HTTP头部 api-key
URL参数 product_id= //产品ID(必填)
device_id = //设备ID (默认0)
start_time = //开始时间(必填)
end_time = //结束时间(必填)
支持两种查询方式(时间跨度最大不超过31天):
例如:查询2019年12月31日告警信息
1)按照日期查询,格式:YYYY-MM-DD
start_time:2019-12-31
end_time:2019-12-31
start_time 取当日最开始的时间,end_time 取下一日最开始时间
2)按照时间查询,格式:YYYY-MM-DD HH:MM:SS
start_time:2019-12-31 00:00:00
end_time:2020-01-01 00:00:00
HTTP内容
成功返回 {
"errno": 0,
"error": "succ",
"data": {
"item": [{
"day": "2019-12-31",
"number": 6
},
{
"day": "2019-12-30",
"number": 122
},
{
"day": "2019-12-27",
"number": 679
}
]
}
}
备注

18.存储用量查询

18.1 产品存储用量查询

HTTP方法 GET
URL https:///ipc/video/storage/capacity
HTTP头部 api-key
URL参数 product_id= //产品ID(必填)
HTTP内容
成功返回 {
"errno": 0,
"error": "succ",
"total": 123356955545,
"used": 123568956
}
备注

18.2 设备存储用量列表查询

HTTP方法 GET
URL https:///ipc/video/storage/qry_dev_list
HTTP头部 Authorization:
URL参数 product_id= //产品ID(必填)
device_id = //设备ID (默认0)
dev_name = //设备名称(默认空)
page = 指定页码, 可选, 默认1,最多10000
per_page = 指定每页输出设备个数,可选,默认30,最多100
HTTP内容
成功返回 {
"errno": 0,
"error": "succ",
"result":
{
"total_count": 1,
"per_page": 30,
"page":1,
"data":[{
"device_id": 1,
"dev_name": "设备名称",
"sn": "设备序列号",
"used": 123565,
}]
}
}

19.设备软件版本查询

HTTP方法 GET
URL https:///ipc/video/device/version
HTTP头部 api-key
URL参数 product_id= //产品ID(必填)
HTTP内容
成功返回 {
"errno": 0,
"error": "succ",
"data": {
"ver":"1.3.4"
}
}
备注

个搜索结果,搜索内容 “

    0 个搜索结果,搜索内容 “