产品评测参数调整说明 - housekeeper-software/soft GitHub Wiki

音频延迟

按照上海地标要求,室外机和室内机在LAN连接的方式下,音频延迟不超过300MS,所以,我们需要调整参数以便达到要求 1.网络环境
尽量将室外机与室内机直连,或者最多只能经过一个交换机或者路由器
2.参数设置,对室外机和室内机有相同的要求
(1) audio_low_latency=true 表示网络层收到的音频数据不经过jitter buffer处理,也就是不经过抖动缓冲,直接扔到声卡缓冲区处理然后播放。 一般,UDP传输容易丢包乱序,这些问题可以经过jitter buffer来消除,jitter buffer会缓冲几十毫秒的音频,这样就造成了延迟的增加。
但是,只要直连或者网络结构比较简单,丢包和乱序鲜有发生,所以在评测的时候不用考虑。正式产品不要设置audio_low_latency。在项目上,网络环境可能变得复杂,
为保险起见,我们需要抖动处理。 audio_low_latency对云端呼叫无效。 (2) max_audio_delay_us=0
表示将声卡播放缓冲区限制在最低长度,跟以往不同,此项设置为0并不会造成声音播放抖动,因为底层至少能保证一个播放周期的数据长度,另外, 当播放缓冲区欠载的时候,会自动增大缓冲长度。当播放正常的时候,并逐步减少缓冲长度。
稳定的播放缓冲区长度为: max_audio_delay_us+(1次播放的长度)
所以,max_audio_delay_us可以设置为0.但是在项目上,不考虑延迟,应该设置不小于80000,理想的值是120000.
3.播放引擎 播放引擎必须为 AudioEngine_OpenSLES,同时: WebRtcAudioManager.setStereoInput(true);
WebRtcAudioManager.setStereoOutput(true);
如果音量小,可以做一些增益。但尽量不要做增益,因为增益可能增大噪音。

3.目前已知的时延
室内机:px30一体机,室外机:全时通7寸双目,直连。 AudioEngine_OpenSLES
audio_low_latency=true
max_audio_delay_us=0
时延:275MS ~ 290MS