WebRTC阅读笔记

在3G技术上,很多运营商都使用了 GIPS(Global IP Sound) 或 Sprit DSP的方案做底层通话 SDK,GIPS 有编解码、回声消除、降噪等算法。GIPS 后期做视频通信SDK方案以后,全名由Global IP Sound 改为 Global IP Solutions,2011年被 Google 收购后,谷歌开发者在 GIPS 中增加了 P2P 通信技术和其它的一些互联互通的协议,也是在同年,Google 将其开源,GIPS 由此摇身一变成为了 WebRTC。

2G 3G 时代,语音通话、音频压缩技术已经相当成熟,H264 编码解码器研发成功后,视频压缩技术的发展也明显加快,光纤的普及、4G 5G 的发展使PC、移动端通信 由以前的小水管发展为大运河。

在音视频压缩技术、通信技术都蓬勃发展的情况下,娱乐直播、在线教育、在线会议相关领域也随之如雨后春笋出现,相关行业也开启了移动互联网的浪潮。

除去 WebRTC,相关领域的技术路线还有 RTMP、HTTP flv 、HLS以及 DASH,音视频会议注重低延迟、互动性、实时性,RTMP、HTTP FLV 平均时延在 3秒左右,而 HLS、DASH 则在 10 秒以上,WebRTC 以只有 500 毫秒的平均延时这一优异成绩称为音视频会议的首选技术路线。

WebRTC 优点:


跨平台(Web、Android、IOS、Windows、MacOS、Linux)
实时(快速、低延迟)
Free 已被 Google 开源
支持许多核心技术:如STUN, ICE, TURN, RTP-over TCP等关键NAT技术
主流浏览器对其兼容性强

WebRTC实现了基于网页的视频会议,通过浏览器提供简单的javascript就可以达到实时通讯(Real-Time Communications (RTC))能力。在这一技术尚未出现之前,网页上要实现视频通话或音频通信,通常需要依赖安装Flash插件或其他外部插件,才能实现这些功能。

架构图 来自https://tragofone.com/webrtc-architecture-types-guide/

紫色部分是 Web 开发者API层;

蓝色实线部分是面向浏览器开发者的API层;

蓝色虚线部分浏览器开发者可以自定义改写。

调用顺序就是由上至下。

第一层:C++ API,是WebRTC库提供给浏览器javascript层的核心功能API接口

第二层:Session层,上下文管理层,音频、视频、非音视频的数据传输,都通过session层处理,实现相关逻辑

第三层:音频引擎、视频引擎、传输模块

第四层:硬件相关,包括音视频的采集、网络IO

详细说说第三层:

Voice Engine:负责处理语音数据的收发,包括音频编解码、噪音消除、回声消除;

Video Engine: 负责处理视频数据的收发,包括视频编解码、视频缩放和处理;

Transport:处理网络层通信,包括数据的传输、路由、封装,确保WebRTC能够在不同的网络条件下建立稳定的连接,包括P2P之间的通信。


Posted

in

by

Tags:

Comments

Leave a comment