EasyCVR国标接入的设备请求播放时没有获取到快照地址问题解决

2021-10-21 10:26:44 浏览数 (2)

TSINGSEE青犀视频开发的人脸识别视频智能安防系统EasyCVR的V1.1.12版本修改了实时快照和定时快照的处理逻辑。目前的版本可以通过调用接口的方式返回实时快照,返回形式为快照地址或者base64快照数据两种。

EasyCVR中国标GB28181接入的设备请求播放的时候没有获取到快照地址,通过分析,查看到当接入的是国标设备时,页面请求播放接口,直接就没有返回地址,所以需要在后端接口中添加国标设备的快照地址。

添加如下代码,首先播放的时候添加判断类型,判断是国标还是别的类型,如果是国标类型,则添加snapurl字段,然后从国标列表中获取到快照地址,将其赋值:

代码语言:javascript复制
if utils.Exist(c.SnapPath()) {
       if fi, err := os.Stat(c.SnapPath()); err == nil {
              t := fi.ModTime().UnixNano()

              if c.ChannelType == TypeGB() {
                     snapURL = fmt.Sprintf("/snap/%s/%s.jpg?t=%d", c.GBDeviceID, c.GBID, t)
                     return
              }
              snapURL = fmt.Sprintf("/snap/%d_%d/channel_%d.jpg?t=%d", c.ParentDeviceID, c.ChannelID, c.ChannelID, t)
       } else {
              if c.ChannelType == TypeGB() {
                     snapURL = fmt.Sprintf("/snap/%s/%s.jpg", c.GBDeviceID, c.GBID)
                     return
              }
              snapURL = fmt.Sprintf("/snap/%d_%d/channel_%d.jpg", c.ParentDeviceID, c.ChannelID, c.ChannelID)
       }
}

添加过后到页面查看效果,能够正常显示快照:

关于EasyCVR视频上云平台直播快照的开发,大家可以关注我们博客,我们将不定期分享开发过程中的技巧和经验。EasyCVR作为视频协议融合平台,在很多环境及设备复杂的项目现场发挥了作用,如果大家想了解更多或者直接测试,欢迎联系我们。

0 人点赞