2.1.4 其他

除了上面介绍的几点外,要实现一个功能强大、性能优越、应用广泛的音视频直播客户端还有很多工作要做。通常读者比较关心以下问题:

·音视频不同步。音视频数据经网络传输后,由于网络抖动和延迟等问题,很可能造成音视频不同步。对此,可在音视频直播客户端增加音视频同步模块以保障音视频的同步。

·回音。指的是与其他人进行实时互动时可以听到自己的回声。在实时音视频通信中,不光有回音问题,还有噪声、声音过小等问题,我们将它们统称为3A 3A是指:Acoustic Echo Cancelling(AEC),即回音消除;Automatic Gain Control(AGC),即自动增益;Active Noise Control(ANC,也称为Noise Cancellation、Noise Suppression),即降噪。问题。这些问题都是非常棘手的。目前开源的项目中,只有WebRTC和Speex有开源的回音消除算法,而且WebRTC的回音消除算法是非常先进的。

·音视频的实时性。要进行实时通信,网络质量尤为关键。但网络的物理层是很难保障网络服务质量的,必须在软件层加以控制才行。虽然常用的TCP有一套完整的保障网络质量的方案,但它在实时性方面表现不佳。换句话说,TCP是以牺牲实时性来保障网络服务质量的,而实时性又是音视频实时通信的命脉,这就导致TCP不能作为音视频实时传输的最佳选择了。因此,为了保证实时性,一般情况下实时直播应该首选UDP。但这样一来,我们就必须自己编写网络控制算法以保证网络质量。

此外,还有网络拥塞、丢包、延时、抖动、混音等问题。

通过上面的描述,读者应该清楚要自己研发一套音视频直播客户端到底有多难了。

[1] 3A是指:Acoustic Echo Cancelling(AEC),即回音消除;Automatic Gain Control(AGC),即自动增益;Active Noise Control(ANC,也称为Noise Cancellation、Noise Suppression),即降噪。