您当前位置: 首页 » 音视频_图像相关 » 音视频_图像相关 » 音视频编解码 » 【音频直播、强交互】关于AAC不适用于低延时或强交互直播中的几点理解

【音频直播、强交互】关于AAC不适用于低延时或强交互直播中的几点理解

2016-01-08 |

最近由于项目需要,需要解决在强交互中,音视频延时、同步问题。

1,了解了一下AAC编码的特点,通过查阅得知,一个AAC的压缩包是由1024个压缩前的PCM样本构成。换句话说,AAC对样本数的要求较高,带来的是AAC需要才待编码缓存中存储大量的样本,才能进行编码。如果按照44khz采样计算,1024个样本大约是1/44/1000*1000*1024=23ms;即,每个AAC包携带了23ms,如果不计算AAC数据包交付时隙的话,那么理想情况下,AAC编码器每次对外部输出数据的间隔是23ms,这23ms就是编码延时。

2,例如在普通的商业网络中(非专线,ADSL),用户到服务器之间的双向延时100ms(32个字节)。那么即可得出,样本的理想情况下的最大延迟在23ms+50ms=73ms。

3,实际上在目前绝大部分直播组网里面,基本可以简化成下图:

 

无标题1

通过延时计算,可以得知,服务器得到的第一个音频样本其实已经是过时了的,并且已经过时了73ms。当服务器对数据再次转发给播放者时,延时将会被加大到123ms。这都还不考虑其他因素引起的延时问题。

4,由此可以得出,对AAC来说,本身就存在固有的23ms延时,加上网络的一个基准延时后,整体延时被放大到123ms,如果加上客户端、服务器之间的性能考虑,那延时或许可以达到200ms-300ms。

在双向通讯,即强交互中可以做如下初步估计:

a) 模型:A  <—–> 服务器 <—–> B

b) 理想情况下,A说一句话,这句话经过了123ms后,B收到。

c) 不考虑解码延时等问题的情况下,B回复A说的这句话。再次经过123ms,A收到(此时A已经等待了大约123*2=246ms)。

 

经过简易的测试发现,在强交互中,人对延时的感知基本在300ms-500ms这个区间,按照个体素质不同,会存在一定的浮动;人对延迟的基本容忍,保持在3s左右。

所以可以得知,AAC方式的音频编码,在普通的商业互联网中进行直播交互是不适用的。

 

注意:由于本人没有对AAC-LD的相关资料进行查阅,只是看了通用的AAC资料,所以得出以上的判断。