国标GB28181协议视频流媒体平台EasyGBS更新通道后音频被关闭是什么原因?

国标GB28181协议视频平台EasyGBS前端可以接入带有音频功能的摄像头,同时也可以通过摄像头进行语音对讲,并且EasyGBS可以识别音频复合流,在视频流播放的时候同时播放音频。

在EasyGBS更新通道的时候,我们发现当设备是开启音频的时候,点击设备管理里面的更新通道按钮,此时会更新设备的音频状态为关闭,也就是说原本开启的音频被关闭了。

经过排查代码的逻辑分析,当页面点击更新设备更新通道按钮的时候,后端会向设备去查询通道信息,然后对数据库的记录进行更新,但是应为音频字段并不是设备本身自带从摄像头传过来的,导致在更新通道的时候会将这个数据给丢失了。

所以需要在设备更新通道的时候,将音频字段忽略,沿用原有的数据库信息。参考代码如下:

for idx, channel := range chs {
		channel.DeviceID = dev.ID
		channel.Channel = uint(idx + 1)
		snapFile := filepath.Join(utils.DataDir(), "snap", channel.DeviceID, fmt.Sprintf("%s.jpg", channel.ID))
		if fi, err := os.Stat(snapFile); err == nil {
			t := fi.ModTime().UnixNano()
			channel.SnapURL = fmt.Sprintf("/snap/%s/%s.jpg?t=%d", channel.DeviceID, channel.ID, t)
		}
		err = tx.Omit("ondemand", "record", "record_plan", "record_plan_switch", "audio").Save(channel).Error
		if err != nil {
			tx.Rollback()
			return
		}
		channelIds = append(channelIds, channel.ID)
	}

再次更新,一切正常。

EasyGBS目前支持云台控制,基于动态组网服务创建智能网络,按需选择需要组网的网络成员实现点点互联,并且对外提供服务器获取状态、信息,控制 HTTP API接口,用户可以自由进行二次开发。

EasyGBS视频平台播放界面:

如果大家对TSINGSEE青犀视频云边端架构产品感兴趣,欢迎联系我们,了解咨询,TSINGSEE青犀视频全线产品欢迎大家的试用。

posted on 2020-10-29 17:55  EasyGBS  阅读(96)  评论(0编辑  收藏  举报