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作为视频协议融合平台,在很多环境及设备复杂的项目现场发挥了作用,如果大家想了解更多或者直接测试,欢迎联系我们。