承:在上一篇文章webrtc初探中,已经浅要的介绍了一些有关webrtc的兴起背景和基本架构,本篇文章则侧重于介绍webrtc框架的具体介绍。该框架包含了三个部分:音频技术,视频技术以及网络传输技术。
1、音频:
即上篇文章框架图中的Voice Engine部分,该部分包含了webRTC中的具体音频实现技术。该部分解决了一个问题便是:如何实现音频信息的采集以及传输。其中包括以下三个主要的技术:
1、ISAC/ILBC(Internet Speech Audio Codec/Internet Low Bitrate Codec),前者是webRTC的默认编码方式,它适用的是宽带宽环境,其支持的采样频率为16KHZ(默认)、24KHZ、32KHZ,自适用的比特率的范围是:10kbit/s ~ 52khz/s,可适用于处理VoIP以及音频流;后者适用于窄带语音编码,可用于分组交换网络中;
2、NetEQ算法:动态抖动缓存和错误隐藏算法,用于减轻网络丢包和抖动所产生的影响,快速而高效地适应不断变化的网络环境,进而保证音频的传输质量,并缩小延迟;
3、Echo/Noise:即回声消除以及去噪技术,回声消除用于实时消除麦克风在录音时产生的回声/去噪则可以规避规律性噪声:风扇转动,马路噪音等;
在实际的音频传输中,即从话筒端到扬声器端,具体流程图如下:
2、视频:
Video Engine部分是webRTC中的具体视频引擎的实现技术,其包含的三部分技术如下:
1、VP8:VP8编解码方式能以较低的码率保证视频的质量,并且是低时延,适用于视频会议场景。
2、VJB:即动态抖动缓存技术,同音频部分一样,它会降低视由于频设备的移动导致在视频传输时的抖动;
3、ImageEnhancements:即图像改善器,用于图像颜色增强以及降噪,进而提升画面的质量。
3、网络:
Transport即网络传输部分,它包括了三个主要方面:SRTP,Mutiplexing,STUN+TURN+ICE;
1、SRTP:即安全实时传输协议(Secure Real-time Transport Protocol),其是在实时传输协议(Real-time Transport Protocol)基础上所定义的一个协议,旨在为单播和多播应用程序中的实时传输协议的数据提供加密、消息认证、完整性保证和重放保护;
2、Mutiplexing:即多路复用技术,采用多路复用技术能把多个信号组合起来在一条物理信道上进行传输,在远距离传输时可大大节省电缆的安装和维护费用;
3、STUN+TURN+ICE:此三者都是针对UDP的NAT(Network Address Translation)的防火墙穿越方法,在后续会具体介绍他们的实现方法;
4、综述:
这篇文章主要针对webRTC的框架予以具体的说明,技术实现虽然繁琐但却重要,一个简单的协议从诞生到确立,也是在不断的改进中完善的,在下一篇中,还会在进一步对webRTC的通信框架进行介绍。
5、资料:
1、 吴江锐.WebRTC语音引擎中NetEQ技术的研究.西安电子科技大学.2013;
2、何明亮,钱学荣. webRTC技术研究与应用. 南京邮电大学. 2014年3月.
3、 龚 琦 .基于WebRTC的实时通信能力平台研究.北京邮电大学.2015;