本文描述如何播放存储在本地NVR或IPC设备存储卡中的录像文件。
前提条件
已启用智能视频服务,且视频设备已经接入物联网平台,详细信息,请参见设备接入。
本地视频设备中存在录像文件。
背景信息
物联网视频服务提供两种播放本地录像文件的方式:
按录像文件时间播放
按录像文件名播放
通过V系列边缘一体机接入的场景,仅支持按录像文件名,播放本地录像文件。
设备端开发
视频设备通过V系统边缘一体机接入,无需进行设备端开发。
IPC设备直接接入物联网平台的场景,需进行设备端开发,物联网视频服务提供Linux和Android两种开发模式,您可根据开发环境,选择开发模式:
云端开发
使用限制
本地录像点播支持RTMP、HTTP-FLV、HLS三种协议,优先推荐RTMP和HTTP-FLV协议,若使用HLS协议有如下限制:
云平台仅提供HLS直播能力。如需拖动播放,请根据拖动时间点重新获取播放URL进行播放。
设备在推流完成后,需要终止点播,否则会引起播放无法结束的问题(例如播放器进入缓冲中状态)。详细信息,请参见数据流转流程图第24步。
HLS属于短连接点播,同一播放地址若20秒内未请求,则地址自动失效。
HLS相较RTMP和HTTP-FLV协议出图时间增加5~10秒。
操作步骤
调用InvokeThingService接口,按录像文件名或录像文件时间,返回录像文件列表。
主要请求参数:
参数
示例值
描述
Identifier
QueryRecordList
IPC设备的服务的标识符。
按照录像文件名:设置为QueryRecordList。
按照录像文件时间:设置为QueryRecordTimeList。
说明QueryRecordList和QueryRecordTimeList是定义在IPC设备物模型中的两个服务指令。在物联网平台控制台,IPC设备所属产品的功能定义页,找到相应服务,单击操作列的查看,可查看服务的详细信息。
物模型详细信息,请参见什么是物模型。
Args
{ "BeginTime":10, "Type":0, "QuerySize":2, "EndTime":1541662222 }
要启用服务的输入参数信息,数据格式为JSON String,包括以下四个输入参数:
BeginTime:录像文件查询范围的起始时间,单位为秒,取值范围为0~2147483647。
EndTime:录像文件查询范围的结束时间,单位为秒,取值范围为0~2147483647。
Type:录像类型。
0:计划录像(即连续录像)。
1:报警录像。
2:主动录像。
99:所有录像。
QuerySize:查询记录数,取值范围为0~128。
请求示例:
https://iot.cn-shanghai.aliyuncs.com/?Action=InvokeThingService &ProductKey=a1BwAGV**** &DeviceName=device1 &Identifier=QueryRecordList &Args={ "BeginTime":10, "Type":0, "QuerySize":2, "EndTime":1541662222 } &<公共请求参数>
根据步骤1返回的录像文件名或录像文件时间,获取本地录像文件URL。
按照录像文件名:调用QueryDeviceVodUrl,获取本地录像文件URL。
按照录像文件时间:调用QueryDeviceVodUrlByTime,获取本地录像文件URL。
说明仅支持IPC设备直接接入物联网平台场景。
应用端开发
物联网视频服务支持在Web、iOS和Android三种应用端配置播放器。各应用端配置播放器的详细信息,请参见应用端开发指南。
各应用端播放器,支持的播放协议和编码协议如下表。
播放器 | 播放协议 | 视频编码协议 | 音频编码协议 |
Web |
| H.264 | AAC |
iOS | RTMP |
| |
Android | RTMP |
|
应用端播放器获取本地录像文件URL后,播放录像文件。