什么是WebRTC
WebRTC为Google、Mozilla、Opera等发起的开源项目,名称源自网页即时通信(Web Real-Time Communication)的缩写。
对于开发者而言,WebRTC是一套支持网页浏览器进行实时音视频对话的W3C Javascript API,包括音视频的采集、编解码、网络传输、显示等功能。
WebRTC的出现大大降低了音视频开发的门槛,开发者只需要调用WebRTC API即可快速构建出音视频应用。
WebRTC标准化历程:
WebRTC API和CTRTC WebSDK的关系
CTRTC WebSDK是基于WebRTC封装的API集合,极致简单,对开发者更加友好,能十行之内完成一个简单的demo并上线。
【大而全专业介绍详见Markdown】
WebRTC的价值
5G的到来,疫情的催化促使了各类互动场景的爆发,在线会议、在线教育、在线面试、在线社交、在线医疗、金融证券在线开户、智能家居等等。这些互动场景在很大程度上改变了我们原本的生活方式。将常见的线下场景转至线上,人们足不出户便能体验上述场景。这些实时音视频通信应用的火热程度也足以证明这一领域风头正劲。在这些实时通信技术背后,就不得不提到WebRTC。
WebRTC市场调研:
全球WebRTC 2019年市场规模23亿美元,预计2020 - 2027复合年增长率为43.4%。
RTC难点 => WebRTC解决方案
RTC通信的难点主要有以下几点,WebRTC完美解决了:
1、互联网网络复杂:不同的NAT,防火墙,对媒体P2P建立带来很大的挑战,WebRTC里面有P2P 打洞的开源项目 libjingle ,支持STUN,TURN等协议。
2、延时敏感:TCP由于自身机制的缺陷,只能使用UDP传输,那就需要等问题。WEBRTC提供了NACK,FEC技术。
3、流畅性:互联网网络不稳定,特别一些小运营商,在流量使用高峰期往往无法保证足够的带宽。需要一套自适应的算法来应对网络拥塞、平滑发送等问题。WebRTC提供了TCC + SVC + PACER + JitterBuffer技术。
4、语音清晰:由于终端设备和环境复杂,会有噪声回声的干扰,WebRTC提供了3A算法 + NetEQ。