欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-07-14 20:44:58
...

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

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

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

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

国标GB28181协议视频流媒体平台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)
	}

再次更新,一切正常。

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

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

EasyGBS视频平台播放界面:

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

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