前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >EasyCVR通过大华SDK接入设备,通道名称过长显示不全如何解决?

EasyCVR通过大华SDK接入设备,通道名称过长显示不全如何解决?

原创
作者头像
TSINGSEE青犀视频
发布2022-07-20 17:48:56
发布2022-07-20 17:48:56
4960
举报
文章被收录于专栏:TSINGSEE青犀视频TSINGSEE青犀视频

EasyCVR平台支持多类型设备、多协议方式接入,包括市场主流标准协议国标GB/T28181、RTMP、RTSP/Onvif协议等,以及厂家私有协议如海康SDK、大华SDK、海康Ehome等。平台可将接入的流媒体进行处理及分发,分发的视频格式包括RTSP、RTMP、FLV、HLS、WebRTC等。

在用户现场接入时,前端设备通过大华SDK接入EasyCVR平台,接入成功后,发现通道名称未能显示全,如图所示:

进入设备后台,正确显示的名称如下:

针对该情况,我们对代码进行了分析和排查。今天和大家分享一下排查和解决方法。

单独使用c++调试,获取到的名称也为显示不全的名称。因为我们使用的大华sdk函数为CLIENT_QueryChannelName,查看文档后得知:

第二个参数pChannelName是获取通道名称。在分配字符串长度大于32字节时,获取到的通道名称还是32个字节,所以当通道名称过长时,会导致通道名称显示不全。

所以,函数CLIENT_QueryChannelName在此处不可用。继续查找大华sdk文档,查看是否有获取通道名称的相关信息。

我们发现,文档中有个CLIENT_GetNewDevConfig函数,也可以获取通道名称。第二个参数是CFG_CMD_CHANNELTITLE,文档说明如下:

需要注意:CLIENT_GetNewDevConfig第三个参数填写-1,这样才能获取所有的通道名称。

修改上述模块中的c++代码,参考如下:

最终前端展示效果如下,此时通道名称已经可以完全显示了:

EasyCVR平台基于云边端一体化架构,具有强大的数据接入、处理及分发能力。平台可在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,可实现的视频功能包括:视频实时直播、云端录像、云存储、回放与检索、智能告警、视频快照、视频转码与分发、平台级联等。感兴趣的用户可以前往演示平台进行体验或部署测试。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档