EasyCVR对接大华SDK,视频回放无法播放的排查过程及解决方法

本文针对使用EasyCVR平台添加大华SDK进行视频回放时出现黑屏及“视频加载错误”的问题进行了深入分析。通过排查发现C++层数据回调正常,但Go层在启动C++回放接口时存在问题,具体表现为设备句柄值异常。最终通过调整设备句柄值解决了视频回放问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

EasyCVR 视频融合云平台不仅支持多协议(标准协议与私有协议)、多类型设备的接入,而且还具备优秀的视频转码、播放、录像、回看、级联等能力,在很多实际场景中均有落地项目应用,如智慧工地、智慧安防、智慧工厂、智慧园区等。

去年我们研发团队已经完成EasyCVR对大华SDK的接入,用户可以通过 EasyCVR 对接大华设备实现视频直播、录像、回放、云台控制等操作。

近期,我们接到用户的反馈,使用 EasyCVR 添加大华 SDK 用来播放视频回放,播放出来等一段时间还是黑屏,并且前端页面提示“视频加载错误”。

本文我们就针对该问题分享一下排查及解决过程。

首先我们分析问题出现的原因,视频录像回放加载不出来,分析流程要分为如下2步:

1、分析 C++ 是否回放成功,数据是否回调。

排查该用户的 C++ 回放接口与调用,如图:

该段代码里有个数据回调 PlaybackDataCallBackCB,查看数据回调是否进去。在测试的过程中,C++ 的回调函数有数据,并且使用 ffplay 指令可以播放。这样则说明 C++ 没问题,那么接下来排查 Go 层的问题。

2、分析前端调用 Go 或者 Go 调用 C++ 是否有出现问题。

1)首先,需要找到回放的接口定义;

2)然后,在进入函数并打断点是否启动 C++ 回放接口调用;

排查发现在程序打断点的是 devObj.DeviceHandle,显示的是永远小于或者等于0。而这样设置则会导致程序回放失败。

3)再接着查看 devObj 的结构体的值,DeviceHandle 和 DahuaDeviceHandle 都是设备的句柄值。

因此针对上述问题,我们可以这样解决:

用户使用的是大华设备回放失败问题,则只需要判断大华设备的句柄值即可。

代码修改如下:

我们将不定期在文章中分享关于EasyCVR的功能开发与优化、代码技巧、FAQ疑难问题解决、场景方案等内容,欢迎关注我们的更新。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值