queryLocalRecords(查询设备本地录像片段)
新接入请优先使用 设备能力与事件 与 V2 设备 API。本页保留给仍在调用 POST /openapi/queryLocalRecords 的兼容对接。
queryLocalRecords:查询设备本地录像片段
要点:https://openapi.lechange.cn/openapi/queryLocalRecords · 权限 "Permission":"RecordReplay" "Resource":"cam:序列号:通道号" · 见 错误码
查询设备/通道在指定时间段内,指定类型的本地录像片段,并返回指定范围的片段。
请求参数
| 参数名 | 参数类型 | 是否必填 | 默认值 | 合法值 | 参数说明 |
|---|---|---|---|---|---|
| token | String | 是 | 管理员或者子账号accessToken | ||
| deviceId | String | 是 | 设备序列号 | ||
| channelId | String | 是 | 通道号 | ||
| beginTime | String | 是 | 格式:yyyy-MM-dd HH:mm:ss | 开始时间 | |
| endTime | String | 是 | 格式:yyyy-MM-dd HH:mm:ss | 结束时间 | |
| type | String | 否 | "All",即查询全部录像 | 录像类型;默认 All 查全部,与能力 record.file.list 枚举对照见能力标准表 | |
| count | Integer | 否 | 0–100;部分历史型号单次 ≤32。与 queryRange 至少填其一 | 按条数分页,每次最多 100 条 | |
| queryRange | String | 否 | 如 1-50,跨度 ≤99(与 liveList 同族校验) | 按页码区间分页;与 count 至少填其一 |
查询策略:
count模式——按起止时间内片段升序取count条,下次可将上次最大endTime+1 秒作为beginTime继续。queryRange模式——按页码区间返回片段,与count二选一入参。
示例:遍历查询2021-12-01 10:00:00到2021-12-01 11:00:00时间段的设备录像片段信息,假设该时间段录像超过50条。
步骤1: 第一次请求,设置beginTime=2021-12-01 10:00:00,endTime=2021-12-01 11:00:00,count=50,调用queryLocalRecords协议查询,平台返回了50条录像片段。
步骤2: 第二次请求,取步骤1返回的录像片段的最大endTime,假设是2021-12-01 10:30:00,把该时间加一秒,2021-12-01 10:30:01作为下次查询的beginTime入参,endTime还是2021-12-01 11:00:00,count=50,继续调用queryLocalRecords协议查询,以此遍历。
步骤3: 当queryLocalRecords协议返回的录像片段最大endTime大于等于2021-12-01 11:00:00或者queryLocalRecords协议返回的录像片段数小于count条数时,可以认为遍历完成。
请求示例
{
"id":"d5c287b4-5b2f-4f03-baf5-8032c5c354af",
"system":{
"ver":"1.0",
"appId":"lcdxxxxxxxxx",
"sign": "xjhCQBoJ9hRDsCjyDcHjtDNzRZ3ZJezcawsfWeiaoxU=",
"time": 1706511734,
"nonce": "f5a1ae2d-c09c-4d39-a744-83a5c2c653c2"
},
"params":{
"token": "<yourAccessToken>",
"deviceId":"TESTQWERXXXX",
"channelId":"0",
"beginTime":"2020-05-19 00:00:00",
"endTime":"2020-05-19 23:59:59",
"type":"All",
"count":100
}
}
响应字段
| 字段名 | 字段类型 | 字段说明 | ||
|---|---|---|---|---|
| records | recordId | String | 录像文件名 | |
| fileLength | Long | 录像文件长度 | ||
| channelID | String | 通道号 | ||
| beginTime | String | 录像开始时间 | ||
| endTime | String | 录像结束时间 | ||
| type | String | 类型 | ||
| streamType | String | 码流类型,main:主码流,extraX:辅码流 | ||
响应示例
{
"result":{
"msg":"操作成功。",
"code":"0",
"data":{
"records":[{
"recordId":"/mnt/sd/2020-05-19/001/dav/00/00.30.59-00.31.36[M][0@0][0].mp4",
"fileLength":713883,
"channelID":"0",
"beginTime":"2020-05-19 00:30:59",
"endTime":"2020-05-19 00:31:36",
"type":"Event",
"streamType":"main"
}]
}
},
"id":"d5c287b4-5b2f-4f03-baf5-8032c5c354af"
}
错误码
本接口可能返回下列码;完整分组见 错误码。
网关与鉴权(SN / TK / OP)
| 错误码 | 错误码说明 | 下一步 |
|---|---|---|
SN1001 | 签名异常 | 按 签名 核对 sign |
TK1002 | token 无效或过期 | 重新获取 token |
OP1002 | 缺少必填参数 | 补必填字段 |
OP1003 | 参数不合法 | 按本页参数表核对 |
OP1039 | 分钟级限流 | 等到下一分钟再试 |
OP1040 | 调用超限 | 降低频率 |
DV1007 | 设备离线或超时 | 等设备上线 |
子账号(SUB)
| 错误码 | 错误码说明 | 下一步 |
|---|---|---|
SUB1001 | 子账号无指定权限 | 在 子账号策略 中补权限 |
SUB1002 | 子账号无任何设备权限 | 授权设备或调整策略 |
SUB1005 | 子账号 token 过期 | 重新 获取子账号 token |
SUB1006 | 子账号与设备无授权关系 | 核对 Resource 与设备序列号 |
SUB1008 | 子账号未绑定当前应用 | 先创建并绑定子账号 |
SUB1007 | 创建子账号失败 | 核对参数后重试 |
SUB1009 | 子账号创建失败,账号格式错误 | account 须为手机号或邮箱 |
SUB1010 | 子账号创建失败,账号已存在 | 勿重复绑定同一子账号到应用 |
更多见 错误码 · SUB。
设备访问与通道(DV10xx)
| 错误码 | 错误码说明 | 下一步 |
|---|---|---|
DV1007 | 设备离线或超时 | 等设备上线;低电休眠先 唤醒 |
DV1009 | 设备正忙 | 稍后重试 |
DV1012 | 分享/授权设备权限不足 | 核对子账号 Permission / Resource |
DV1019 | 能力集不支持 | 确认型号与 设备能力 |
DV1020 | 通道离线 | 检查通道与设备状态 |
DV1026 | 不支持此功能 | 换接口或升级固件 |
DV1028 | 未绑定或通道不存在 | 核对 deviceId / channelId |
DV1030 | 设备休眠 | 唤醒后再调 |
DV1057 | 通道不存在 | 核对通道号 |
DV1061 | 设备响应超时 | 检查设备网络 |
DV1062 | 需先唤醒设备 | 调用唤醒接口 |
DV1069 | 不满足操作条件 | 见 msg |
说明
子账号 token 须具备最小权限:Permission 为 RecordReplay,Resource 为 cam:{deviceId}:{channelId}。配置见 权限码。
设备与通道须在线;离线时查询可能失败,见 错误码 设备访问段(DV10xx)。type 默认 All;可选 Event、Manual 及细粒度告警类型,与能力 record.file.list 枚举对照。
相关
- 录像查询(HTTP 与 invoke 对照)
- 录像回放:本地录像与云录像
- 调用约定
- 遗留 · 本地录像查询
- 推荐入口