RTSP/RTMP视频图像智能分析技术平台EasyCVR添加通道CDN地址更新后CDN字段丢失排查

2021-03-25 14:13:07 浏览数 (2)

TSINGSEE青犀视频图像智能分析技术平台EasyCVR不仅能够实现视频流的扫码及链接分享,还支持推送到CDN(EasyCVR如何将通道视频流推送至CDN分发)。

EasyCVR在推送视频通道至CDN时出现一个问题,即当用户添加通道CDN地址后更新通道,会出现CDN字段丢失的情况。

通道添加CDN之后,这里是有数据的:

执行更新通道之后CDN字段丢失:

此时数据库CDN表字段显示为空:

排查代码发现,当通道更新的时候,服务会更新所有通道,包括CDN字段也会更新,因此冲掉了老数据,所以导致配置CDN字段之后,通道再次更新,CDN字段即丢失的情况。

添加如下代码,调用.Omit(“enable_cdn”, “cdn_url”),更新数据库数据的时候会忽略这两个字段,参考代码如下:

代码语言:javascript复制
if len(gbschannels) == 0 {
       cvrChannel.Name = channel.Name
       tx.Model(cvrdo.DBChannelInfo{}).Omit("enable_cdn", "cdn_url").Save(cvrChannel)
} else {
       tmp, ret := cvrdao.GetChannelDao().Get(uint(gbschannels[0].Index))
       if ret != nil {
              cvrChannel.Name = gbschannels[0].Name
       } else {
              cvrChannel.ChannelID = tmp.ChannelID
              cvrChannel.EnableAudio = tmp.EnableAudio
              cvrChannel.Name = tmp.Name
              cvrChannel.Token = tmp.Token
              cvrChannel.RecordPlanNew = tmp.RecordPlanNew
              cvrChannel.RecordPlanSwitch = tmp.RecordPlanSwitch
              cvrChannel.RecordPlan = tmp.RecordPlan
       }
       tx.Model(cvrdo.DBChannelInfo{}).Omit("enable_cdn", "cdn_url").Save(cvrChannel)
}

调整代码后再次配置CDN地址,前后都可以正常显示了,该问题已解决。

EasyCVR视频协议融合平台不仅支持目前主流的视频协议,如国标GB28181、RTSP,还支持部分私有协议的设备接入,包括HIKSDK、Ehome协议,其他主流厂家的私有协议也在扩充中,将会不定期添加。其中值得一提的是,在众多户外场景及多级平台的项目中,EasyCVR可以运用GB28181协议进行级联,以及多协议融合的特性也会在多方面发挥作用。

0 人点赞