EasyCVR接入Ehome协议的设备,无法观看设备录像是什么原因?

2022-06-28 16:23:12 浏览数 (1)

EasyCVR平台支持海量视频汇聚与管理、处理与分发、智能分析等视频能力,在接入协议上,不仅支持国标GB28181协议、RTSP/Onvif、RTMP等标准协议,还支持HIKSDK、大华SDK、海康Ehome等厂家私有协议与SDK。平台基于云边端一体化架构,将复杂多变的底层资源统一管理起来,并能合理调度资源、共享信息、数据交互,让系统变得更高效、稳定,实现各模块更好地协作。

EasyCVR平台支持通过GB/T28181、Ehome协议从海康、大华、宇视等摄像头、网络硬盘录像机NVR等设备中,按设备、通道、日期获取对应录像文件进行录像的检索与回放,无需安装各个安防厂商的视频播放插件。

有用户反馈,EasyCVR接入的Ehome协议的设备,出现了无法观看设备录像的情况,请求我们排查协助。今天和大家分享一下排查及解决过程。

在排查过程中发现,前端播放设备录像时,将请求发送到后端,但是后端没有转发给设备,因此导致设备录像无法观看。

添加如下代码,可将Ehome协议接入的设备查询出来的设备录像,在播放时传入对应的文件名称给设备,根据回调出来的流数据,推送给对应的内核地址,最后将回看的播放地址返回给前端。

代码语言:javascript复制
f := func() (string, int, error) {
      ret, err := dev.PlaybackStart(channel, smshost, playbackPort, name, offset)
      if err == nil {
        //更新播放信息
        obj := &ehomedo.EhomeChannelPlayback{
          ID:             0,
          ChannelID:      fmt.Sprintf("%d", channel),
          DeviceID:       devID,
          FileName:       name,
          Offset:         offset,
          PlaybackHandle: -1,
          SessionID:      ret,
          CreatedAt:      utils.DateTime{},
          UpdatedAt:      utils.DateTime{},
        }
        ehomedo.GetChannelPlaybackDao().Update(obj)
        //通道参数
        channelInfo, err := ehomedo.GetChannelDao().Get(obj.ChannelID, devID)

修改后,再次尝试播放,设备录像已经显示正常。

EasyCVR优秀的视频能力表现在其丰富的视频功能、低延时传输、全终端兼容、支持多种网络环境等多方面,平台可实现的视频功能包括视频监控直播、云端录像、云存储、录像检索与回看、智能告警、平台级联等,可应用在智慧工厂、智慧工地、智慧安防、智慧校园、智慧水利等场景中。感兴趣的用户可以前往演示平台进行体验或部署测试。

0 人点赞