EasyCVR平台可支持播放设备的录像(通过国标GB28181协议、海康Ehome协议接入),当设备中存储有录像文件时,在EasyCVR平台就可以看到设备录像,并能支持检索、回放等操作。

EasyCVR平台CGO回放回调参数缺失导致设备录像无法播放,该如何解决?_回调函数

我们在测试中发现EasyCVR播放设备的录像失败,使用VLC播放录像流也出现了失败的情况。今天来和大家分享一下分析及解决步骤。

EasyCVR平台CGO回放回调参数缺失导致设备录像无法播放,该如何解决?_类型参数_02

原因分析:

1)首先检查C++设置,设备录像参数是不是可以拿到回调的数据流。

EasyCVR平台CGO回放回调参数缺失导致设备录像无法播放,该如何解决?_c++_03

2)将回调出来的流保存成文件,使用ffplay -i指令播放,文件可以成功播放。

3)此时来查看GO层处理回调流是否正确。

4)断点调试GO层调用C++回放参数,并得到返回参数,查看是否正确。

EasyCVR平台CGO回放回调参数缺失导致设备录像无法播放,该如何解决?_类型参数_04

5)再检查回放的回调函数里,信息参数是否正确。

EasyCVR平台CGO回放回调参数缺失导致设备录像无法播放,该如何解决?_回调函数_05

EasyCVR平台CGO回放回调参数缺失导致设备录像无法播放,该如何解决?_c++_06

6)如上图所示,最后一个参数是回放的回调。最终发现在进行初始化Dahua_Init最后一个参数中,缺少一个回调的参数,这样会导致参数不正确,从而解析数据失败。

解决步骤:

1)Dahua_Init参数都是void*,所以不会进行类型参数的检测。如下:

EasyCVR平台CGO回放回调参数缺失导致设备录像无法播放,该如何解决?_c++_07

2)上述异常问题是回调函数参数缺失导致,将缺失的参数加上即可。如下图:

EasyCVR平台CGO回放回调参数缺失导致设备录像无法播放,该如何解决?_类型参数_08

3)修改后播放效果如下:

EasyCVR平台CGO回放回调参数缺失导致设备录像无法播放,该如何解决?_c++_09

EasyCVR是我们支持协议最全面的视频平台,它能支持主流协议包括国标GB/T28181、RTMP、RTSP/Onvif等,以及厂家的私有协议,如海康Ehome、海康SDK、大华SDK等。平台可提供视频监控直播、云端录像、云存储、录像检索与回看、智能告警、平台级联、智能分析等视频服务,在线下场景中有着广泛的应用,如智慧工地、智慧校园、智慧社区、智慧楼宇等。感兴趣的用户可以前往演示平台进行体验或部署测试。