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


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

  • 相关阅读:
    执行ansible报CryptographyDeprecationWarning
    普通web整合quartz跑定时任务
    js 基础 (ES 模块)
    Less常用内置函数
    为什么每个有影响力的内容创作者都需要一个Kadence WordPress网站
    【图片+代码】:GCC 链接过程中的【重定位】过程分析
    html当当书网站 html网上在线书城 html在线小说书籍网页 当当书城网页设计
    wget参数使用说明
    自定义hooks
    jenkins 中文乱码及执行报错
  • 原文地址:https://blog.csdn.net/EasyNVS/article/details/125896914