背景:现有多个摄像头点位和一个Secure Center综合安防管理平台,需要做一个功能,当有车辆经过监控点位时抓取一定时间段内的视频存储在服务器上用作分析。本文主要讲解如何根据官方给的SDK(VideoSDK.dll)在Windows环境下抓取视频。
思路:阅读官方文档后,整理出大概思路
第一步:使用海康威视提供的官方OpenAPI 安全认证库 (JAVA),屏蔽安全认证的复杂逻辑,使我们更加简单的调用平台的各个接口。
第二步:阅读官方文档,综合安防平台提供了订阅过车事件的接口,订阅之后,当发生对应事件,就会自动发送消息到我们的接口,比较简单,不再赘述。
第三步:根据事件的时间调用官方的监控点回放取流URL接口,获取视频的回放流URL和文件大小。
在此步骤有几个需要注意的地方:
1.需要确认自己的录像是中心存储还是设备存储。入参传错了返回的取流url会为空
2.入参的时间格式需要处理。具体代码如下
/**
* 获取BISO8601时间格式
*
* @return
*/
public String getBISO8601(Date date) {
TimeZone tz = TimeZone.getTimeZone("Asia/Shanghai");
DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
df.setTimeZone(tz);
String nowAsISO = df.format(date);
return nowAsISO;
}
第三步:下载官方的SDK并阅读开发文档
由于官方给的安防平台sdk对接demo是C++写的,本人也不会C++,所以只能根据文档一点一点来,根据官方文档可见下载录像的基本流程,图中橙色部分则是上文中提到过的