音视频学习笔记----4,音视频编码基础学习之-webrtc基础到架构(音频处理)

WebRTC概念

Web Real-Time Communication,web实时通信技术。简单说就是在web浏览器里边引入实时通信,包括音视频通话等。

WebRTC提供了视频会议的核心技术,包括音视频采集、编解码、网络传输、显示等功能,支持跨平台:Windows,Linux,Mac,Android,尤其是在实时通信方面的很多技术可以灵活嫁接到非RTC类流媒体系统中,例如,在低带宽下的视频抖动控制,图像效果增强,通用NAT穿透过程等等。

WebRTC结构

从WEB-RTC方面分析WEBRTC在浏览器上的接口结构,在浏览器端主要实现了三个接口:

1,MediaStream,实现对本地音视频资源的封装,表示一个媒体流数据,一个MediaStreamTrack表示MediaStream中的一个媒体源,如音频、视频、字幕等;

接口名称为getUserMedia,该接口为上层提供同步的音视频流

2,RTCPeerConnection,语音或者视频通话过程,包含呼叫。应答、穿透、加密、传输及会话管理等一系列流程,一个RTCPeerConnection代表对话过程中的一端;

主要是用来处理点到点之间的连接和数据传输,使整个过程能够稳定且高效。在RTCPeerConnection下,封装了大量的编解码、通信协议的工作来实现整个实时通信过程,甚至是在不能提 供稳定带宽情况下的实时通信,主要功能点包括:

  • 丢包补偿(packet loss concealment)
  • 回音消除(echo cancellation)
  • 自适应带宽(bandwidth adaptivity)
  • 视频抖动缓冲器(dynamic jitter buffering)
  • 自动增益控制(automatic gain control)
  • 噪声降低和抑制(noise reduction and suppression)
  • 图像清理(image 'cleaning')(!暂且这么翻译吧)

3,RTCDataChannel,在RTCPeerConnection之上,传输自定义数据。

WebRTC架构

音视频学习笔记----4,音视频编码基础学习之-webrtc基础到架构(音频处理)

WebRTC架构图(网上摘取)

(1)Web开发者API层;

(2)蓝色实线部分是面向浏览器厂商的API层

(3)蓝色虚线部分浏览器厂商可以自定义实现

这里有一个讲的很详细的博客,分享下:https://blog.csdn.net/fishmai/article/details/69681595