在浏览器中启用丰富的电话会议体验要求浏览器能够访问系统硬件以捕获音频和视频 - 无需第三方插件或自定义驱动程序,只需一个简单且一致的API。但是,原始音频和视频流本身也不够:必须处理每个流以提高质量,同步,并且输出比特率必须适应客户端之间不断波动的带宽和延迟。

在接收端,过程相反,客户端必须实时解码流,并能够适应网络抖动和延迟延迟。简而言之,捕获和处理音频和视频是一个复杂的问题。然而,好消息是WebRTC为浏览器带来了功能齐全的音频和视频引擎,它代表我们处理所有信号处理等等。

音频和视频引擎的完整实现和技术细节很容易成为专门书籍的主题,超出了我们讨论的范围。要了解更多信息,请访问http://www.webrtc.org。

处理所获取的音频流以进行降噪和回声消除,然后使用优化的窄带或宽带音频编解码器之一自动编码。最后,一个特殊的错误隐藏算法用于隐藏网络抖动和数据包丢失的负面影响 - 这只是亮点!视频引擎通过优化图像质量,选择最佳压缩和编解码器设置,应用抖动和数据包丢失隐藏等来执行类似的处理。

所有处理都是由浏览器直接完成的,更重要的是,浏览器动态调整其处理流水线,以适应音频和视频流的不断变化的参数和网络条件。完成所有这些工作后,Web应用程序将接收优化的媒体流,然后可以将其输出到本地屏幕和扬声器,转发给其对等端,或使用HTML5媒体API之一进行后处理!

本文档由黎明互联官方发布