获取录像下载地址
接口描述
获取设备录像的下载地址,支持两种类型:
- 本地录像(type=1):从设备本地存储下载,返回 MP4 文件地址。无转码过程,调用后立即返回可下载地址(
status=0, progress=100)。需设备支持录像回放。 - 云存录像(type=2):下载云存的事件录像(MP4)。发起下载请求后需要后端服务转码,这需要一定的转码时间。处于转码状态时该接口返回转码进度,可多次调用查看进度;当转码进度到达 100 时,返回值中会带
url字段,访问即可开始下载。开通云视频请咨询销售。
请求说明
| 接口ID | 协议 | 方法 | PATH |
|---|---|---|---|
| 23 | HTTPS | GET | /openapi/v1/stp/user/devices/video/record_download_url |
PATH参数
无
URL参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| accesskey_id | string | 是 | 参见签名认证 |
| expires | int | 是 | 参见签名认证 |
| signature | string | 是 | 参见签名认证 |
| sn | string | 是 | 设备序列号 |
| type | string | 是 | 1:本地录像 2:云存录像 |
| channel | string | 否 | 通道号,type=1 时必填 |
| stream | string | 否 | 码流号,0:主码流;1:子码流。type=1 时可指定下载某码流的录像;不传则下载该时段内有录像的码流 |
| event_type | string | 否 | 事件类型,配合 stream 精确指定某段录像(取自「查询设备录像列表」返回值的 event_type)。type=1 时生效;传了但该时段无此事件的录像时,按无录像处理 |
| begin_time | int | 是 | 开始时间(Unix时间戳,秒) |
| end_time | int | 是 | 结束时间(Unix时间戳,秒) |
| unique_id | string | 否 | 事件唯一ID,type=2 时必填 |
请求示例
GET https://open.vzicloud.com/openapi/v1/stp/user/devices/video/record_download_url?sn=a0994eb6-de3dfea3&type=1&channel=0&begin_time=1736759336&end_time=1736759356&accesskey_id=SydxcDY163TZ15SZ4cYDJ9Yquk4wlDq9&expires=1736766708&signature=fJ5N5LKbZNC7UaFQlVxBWvOml%2FU%3D HTTP/1.1
Host: open.vzicloud.com
注意:您无法将请求示例的链接地址贴入浏览器直接运行,此示例仅展示URL格式,由于AccessKey具备有效期,您访问时此链接已过期。
返回说明
返回参数
| 参数 | 类型 | 说明 |
|---|---|---|
| status | int | 状态:本地录像固定为 0(直接就绪);云存录像转码时为 1,转码结束时为 0 |
| progress | int | 进度百分比:本地录像固定为 100;云存录像为转码进度 |
| url | string | 下载地址。本地录像调用后即返回;云存录像转码完成(progress=100)时才有内容 |
本地录像的下载地址为 MP4 格式,形如
https://<流媒体域名>/<sn>/<channel>_<stream>/download.mp4?id=<流ID>。下载地址带有效期,请勿长期存储。在浏览器中直接访问该地址默认为播放,若需触发下载弹窗,请由您的后端下载后转提供给终端,或在<a>标签上添加download属性。
返回示例
// 本地录像(type=1):无转码,直接返回
{
"status": 0,
"progress": 100,
"url": "https://video.vzicloud.com/a0994eb6-de3dfea3/0_0/download.mp4?id=5d4b8e20-1455-11f0-91b1-4cedfb687489"
}
// 云存录像(type=2):转码中
{
"status": 1,
"progress": 10,
"url": ""
}
// 云存录像(type=2):转码完成
{
"status": 0,
"progress": 100,
"url": "https://......"
}