WebRTC是什么

WebRTC(Web Real-Time Communication)是 Google于2010你那以$6829万从 Global IP Solutions 公司购买,并于2011年将其开源,旨在建立一个互联网浏览器间的实时通信的平台,让 WebRTC技术成为 H5标准之一。

  • 基于浏览器的 WebRTC应用开发
  • C 层面的移植和开发,可将其集成到多种平台的应用中,实现语音通话功能。

WebRTC集成了多种 audio codec,例如 ISAC、ILBC、G711、G722...

  • ISAC(Internet Speech Audio Codec)是一种宽带和超宽带音频编解码器,是 WebRTC音频引擎的默认编解码器。

  • ILBC(Internet Low Bitrate Codec)是一种窄带语音编解码器,可保证低带宽条件下较好的音质,采样频率为8kHZ,20ms 每帧时比特率为15.2kbps,30ms 每帧比特率为13.33kbps。

  • NetEQ 实现自适应抖动控制算法以及语音包丢失隐藏算法,用于适应不断变化的网络环境,确保音质有没且缓冲延迟最小。

  • AEC(Acoustic Echo Cancelling) 将回声估计值从话筒的输入信号中减去,从而达到消除回声的目的。

  • NS(Noise Suppression) 探测出背景固定频率的杂音并消除背景噪音。

  • VAD(Voice Activity Detection) 检测到当前为静音,将只编码生成数量小的静音包,可大大节省编码时间和带宽。

  • AGC(Automatic Gain Control) 自动调麦克风的收音量,避免声音忽大忽小。

  • RTP/RTCP(WebRTC Voice Engine) 成熟的 RTP 协议来传输实时音频数据。

  • 混音 WebRTC 支持接收多人得语音数据并混音后播放的功能。

WebRTC Voice 模块

  • AudioDeviceModule 负责采集和播放音频数据
  • AudioProcessModule 用于处理编码前和解码后的数据
  • AudioCodingModule 用于编码或解码音频数据
  • AudioConferenceMixer 当有多路音频时完成混音工作
  • RtpRtcpModule 编码数据通过 RTP 协议传输
WebRTC是什么_第1张图片
WebRTC Voice 业务流程

WebRTC音频通话链路

WebRTC将每个音频通话抽象为一个 channel,若开启多个 channel 则播放时会将这几个 channel 的音频数据混音后再播放。
对一个 channel 而言,处理这个 channel 的数据将包含三个线程:采集线程、接收线程、播放线程。

  • 采集线程用于采集编码数据
  • 接收线程用于接收RTP数据并解码
  • 播放线程用于播放音频数据

你可能感兴趣的:(WebRTC是什么)