随笔 - 932  文章 - 0  评论 - 3  阅读 - 30万

国标GB28181协议EasyGBS平台出现语音播报重复现象,该如何解决?

国标视频云服务EasyGBS支持设备/平台通过国标GB28181协议注册接入,并能实现视频的实时监控直播、录像、检索与回看、语音对讲、云存储、告警、平台级联等功能。平台部署简单、可拓展性强,支持将接入的视频流进行全终端、全平台分发,分发的视频流包括RTSP、RTMP、FLV、HLS、WebRTC等格式。

 

 

有用户反馈,在EasyGBS平台中出现了语音播报错误的情况。除了第一次正常播报以外,后续的语音都是重复播报。收到用户反馈后,技术人员立即开展排查与解决,以下为解决步骤:

1)首先通过抓包分析,发现第一次发送时,上下级平台的音频一致,但是第二次上级平台发送的是新采集的音频,下级平台向设备发送的却是上次的音频;

 

 

 

 

2)随后排查代码发现,因为每次建立的udp链接读取过后,都放在了一个缓存的buf数组里,并且udp的监听链接也没有关闭,所以会导致数据错乱,出现发送上图数据的情况;

 

 

3)只需要添加以下代码:

Server.UacAudioUdpConn[key] = nil

并在每次获取到udp链接时,将本次使用的链接置空;

case audioOnOff := <-Server.UacAudioOnOff[key]:
				if dataConn != nil {
					Server.UacAudioUdpConn[key] = nil
					bufUDP := make([]byte, 102400)
					//err := dataConn.SetReadDeadline(time.Now().Add(time.Second * 5))
					//if err != nil {
					//	Server.UacAudioUdpConn[key].Close()
					//	log.Println("超时处理")
					//	return
					//}
					time.Sleep(time.Second * 1)
					for audioOnOff {
						n, _, err := dataConn.ReadFromUDP(bufUDP)
						if err != nil {
							//Server.UacAudioUdpConn[key].Close()
							log.Printf("udp read error, %v", err)
							continue
						}
						rtpBuf := make([]byte, n)
						copy(rtpBuf, bufUDP[:n])
						tempint, err := transportMS.UDPConn.Write(rtpBuf)
						if err != nil {
							log.Printf("发送rtperr : %s  ,tempint :%d", err, tempint)
							return
						}
						time.Sleep(80 * time.Millisecond)
						log.Println("发送tempint", tempint)
					}

				}

4)按上述方法修改后,每次发送的语音都和上级发送的语音一致了,语音播报重复的问题得到了解决。

 

 

除了提供API接口供用户调用、集成与二次开发,EasyGBS还能提供个性化定制,以满足用户的多样化功能需求。感兴趣的用户可以前往演示平台进行体验与部署测试。

 

posted on   EasyGBS  阅读(95)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
历史上的今天:
2021-09-16 EasyGBS出现云端录像删除过后录像文件还存在的情况优化方案
2021-09-16 EasyGBS后台操作日志功能实现方式分享
2021-09-16 EasyGBS视频录像播放不了而告警录像可以播是什么原因?
2020-09-16 国标GB28181流媒体协议视频平台EasyGBS中的5070端口什么时候需要开放出来?
2020-09-16 TSINGSEE青犀视频EasyGBS分享界面调用ifram嵌套后出现滚动条,如何解决?
2020-09-16 国标GB28181流媒体协议EasyGBS视频平台如何做页面嵌套?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示