在部分使用EasyCVR的用户当中出现了一个关于录像的需求,用户需要按照时间段下载设备的历史录像,但是目前我们只实现了录像文件的统一下载,因此该问题下我们首先分析需求,查询海康sdk文档,可以直接调用海康的NET_DVR_GetFileByTime_V40接口。
go端添加如下代码:
func (obj SdkHikVision) SdkDownDevRecordByTime(loginhandle, channelNum int, path string, startTime, endTime time.Time) (int, string, error) {
log.Println("loginhandle===", loginhandle)
log.Println("channelNum===", channelNum)
log.Println("path===", path)
log.Println("startTime===", startTime)
log.Println("endTime===", endTime)
spath := strings.Replace(path, "\\", "/", -1)
cpath, err := syscall.BytePtrFromString(path)
if err != nil {
return -1, "", fmt.Errorf("error")
}
syear := startTime.Year()
smonth := int(startTime.Month())
sday := startTime.Day()
shour := startTime.Hour()
sminute := startTime.Minute()
ssecond := startTime.Second()
eyear := endTime.Year()
emonth := int(endTime.Month())
eday := endTime.Day()
ehour := endTime.Hour()
eminute := endTime.Minute()
esecond := endTime.Second()
ret := C.EASY_NET_DVR_DownFileByTime_Start(C.int(loginhandle), (*C.char)(unsafe.Pointer(cpath)), C.int(channelNum),
C.int(syear), C.int(smonth), C.int(sday), C.int(shour), C.int(sminute), C.int(ssecond),
C.int(eyear), C.int(emonth), C.int(eday), C.int(ehour), C.int(eminute), C.int(esecond))
再次通过海康SDK添加设备,然后查询通道录像显示正常。
点击下载,回放正常:
EasyCVR的功能正在逐步完善,目前作为视频智能分析平台,在人脸识别和车牌识别领域也有了比较完善的研发成果,并且对于新需求的展现也在不断推进研发当中,可在TSINGSEE青犀视频官方网站直接下载最新版进行实际部署测试。