WebRTC技术专题(1)【未来可期,WebRTC的诞生发展的概述介绍】

近几年实时音视频通信应用呈现出了大爆发的趋势。在这些实时通信技术的背后,有一项不得不提的技术 ——WebRTC

image

前言背景

2021年1月26日,W3C(万维网联盟)IETF (互联网工程任务组) 同时宣布 WebRTC(Web Real-Time Communications,Web 实时通信) 现发布为正式标准,将音视频通信带到Web上任何地方这代表着我们未来不会在依赖某些软件或者介质去访问和处理音视频了,映衬着5G的时代,这将会是如虎添翼。

  • WebRTC 成为 W3C 为应用程序开发定义开放 Web 平台的众多标准之一,具有前所未有的潜力

  • 其让开发人员能够构建丰富的交互体验,由巨大的数据存储提供动力,可用于任何设备以及环境

数据汇报

据调研机构GrandViewReseach 的报告显示,预计2025年全球 WebRTC 市场规模将达到 210.23 亿美元,相较 2019 年 23 亿美元的市场规模,5 年的复合年增长率为 43.6%。

本文目标

本系列内容将和大家一起来探讨和介绍的目的是:

  1. WebRTC的概念是什么?WebRTC的发展历程和涉足领域有哪些?

  2. WebRTC的目标和愿景?

  3. 为什么WebRTC受到开发者及企业的青睐 ?

  4. 未来 WebRTC 又将如何发展?

以及声网 Agora是怎样基于 WebRTC 进行二次开发,又将如何支持 WebRTC NV 版本的?

WebRTC发展历程

  • 2010年,实时通信只能使用专有软件、插件或Adobe Flash 进行实时通信;

  • 2013 年,Chrome和Firefox之间进行了首次跨浏览器视频通话;

  • 2014 年,第一次跨浏览器数据传输得以实现,通过客户端进行实时通信打开了一个新兴的趋势。

  • 2021年,WebRTC的诞生,我们每天都在 Chrome,Mozilla Firefox,Opera,Safari,Edge,iOS 和 Android 的实时互动场景中使用它。

WebRTC涉足领域

在线会议、在线教育、在线面试、在线社交、在线医疗、金融证券在线开户、智能家居等等已经成为了现代人们生活中非常熟悉的一部分,将常见的线下场景转至线上,人们足不出户便能体验上述场景。这些实时互动场景在很大程度上已经改变了我们原本的生活方式。

WebRTC概念定义

WebRTC是一个由 Google、Mozilla、Opera 等发起的开源项目,名称源自「网页即时通信」(Web Real-Time Communication)的缩写

此外,“WebRTC 在不同场景下包含不同的含义,它既可以代表 Google 开源的 WebRTC 项目,又可以代表 W3C(World Wide Web Consortium-万维网联盟) 工作组制定的 WebRTC 标准,也可以代表浏览器中的 WebRTC 接口,我们将他们统称为 WebRTC技术。”

WebRTC实现

image

WebRTC由Web实时通信的JavaScript API一组通信协议 构成,支持网络上的任何已连接设备成为Web上潜在的通信端点成为线上通信及协作服务的基石

  • 不难看出这项技术最开始的目标是希望为实现自由地在浏览器上进行实时音视频传输做准备的

  • 多数时候,对于开发者而言WebRTC是一套支持网页浏览器进行实时音视频对话的 W3C Javascript API,它包括了音视频的采集、编解码、网络传输、显示等功能

  • 几乎所有主流浏览器都支持 WebRTC 标准 API ,因此也让浏览器之间无插件化的音视频互通成为可能, 大大降低了音视频开发的门槛,开发者只需要调用 WebRTC API 即可快速构建出音视频应用

至此,WebRTC的使用已经超越了最初的核心设计,即在浏览器和其他生态(例如本地应用)中支持视频会议和协作系统。现在需要更多的特性和优化。

WebRTC解决的问题

在没有WebRTC前,对于开发者而言RTC通信的难点主要来自于互联网网络复杂、延时敏感、实时音视频流畅度及清晰度较低以及运营成本较高等。

WebRTC的使命是使丰富、高质量的RTC应用程序能够为浏览器、移动平台和 IoT设备开发,并允许所有人通过一组通用协议进行通信。

  • 但这些问题在 WebRTC 出现后都得到了较好的解决:

    1. 屏蔽了网络模型的差异性

      • 不同的NAT、防火墙对媒体 P2P 的建立带来了很大的挑战。而WebRTC 的出现为浏览器提供了端到端的直接通信,使开发者可以轻松地实现这种连接。同时,WebRTC 里面有 P2P 打洞的开源项目 libjingle ,支持 STUN,TURN 等协议
    2. 提高传输效率以及降低损耗

      • 在早期的RTC技术中,TCP(Transmission Control Protocol-传输控制协议)由于自身机制的缺陷,只能使用 UDP 传输,但这需要开发人员解决重传、乱序等问题。而WebRTC则提供了 NACK,FEC 技术,不再需要通过服务器进行路由,减少了延迟和带宽消耗。直接通信可提高数据传输和文件共享的速度
    3. 提高流畅性(优化算法)

      • 互联网网络不稳定,特别一些小运营商,在流量使用高峰期往往无法保证足够的带宽。需要一套自适应的算法来应对网络拥塞、平滑发送等问题。WebRTC 中提供了 TCC + SVC + PACER + JitterBuffer 技术支持。
    4. 语音清晰度优化

      • 由于终端设备和环境复杂,会有噪声、回声的干扰,这时候 WebRTC 提供了 3A 算法 + NetEQ,让实时环境中的声音处理及互动体验得到了大幅的提升
    5. 提高移植性(以及标准化)

      • 对于开发人员或企业而言,使用WebRTC的过程中只需要下载兼容 WebRTC的浏览器并使用,不需要额外的软件、插件或持续的服务器的参与就可以将音视频应用轻松嵌入到任何网站中,并通过 Internet 进行连接,大大节省了开发时间和成本
      • 目前主流的浏览器如 Microsoft Edge、Google Chrome、Mozilla Firefox、Safari、Safari、Opera、Vivaldi 等都已支持 WebRTC
    6. 安全性加密机制

      • WebRTC作为一项开源技术,可在任何Web浏览器上免费使用,并且不受插件限制。在安全方面,WebRTC 同样做了优化设计:所有 WebRTC 媒体数据都必须经过加密

由于WebRTC并非是一个插件,也不用安装别的插件,因此所有应用都可以在浏览器的沙箱中运行,并不用再额外创建新进程。

  • 也正因为如此, WebRTC 有效地阻止了恶意软件进入用户系统

  • 在任何实时通信应用程序中,数据传输的过程都有可能会增加安全风险,因此加密是WebRTC的强制性功能,并在所有媒体数据上强制执行

  • WebRTC使用两种标准化的加密协议:

    • 数据报传输层安全性(DTLS)

      1. 浏览器内置标准化协议。基于传输层协议(TLP)的数据流加密;
      2. 由于DTLS使用用户数据协议(UDP),因此保留了传输的语义;
      3. 它是安全套接字层(SSL)的扩展,任何 SSL 协议均可用于保护 WebRTC 数据,从而允许端到端加密
    • 安全实时传输协议(SRTP)

      • 用于媒体流加密;
        1. 它是对实时传输协议(RTP)的扩展,该协议没有任何内置的安全性机制;
        2. 实时传输协议(RTP)提供加密、完整性保证和消息身份验证。
        3. SRTP 协议也有它的一些缺点,比如虽然它为 RTP 数据包提供加密,但不对标头进行加密

WebRTC实践案例

  • 由于WebRTC的传输是基于公共互联网,而公共互联网并不是为了实时通信而设计的,因此在网络协议、跨区域带宽、跨运营商、用户设备、网络架构、文档支持等方面都会对WebRTC的开发有牵制,从而会导致实时音视频等传输质量没办法得到有效的保证。

  • 因此,可以说如果 WebRTC 直接拿过来商用的话,几乎是不太可能的,当下普遍的解决方案是自研,根据自身的业务场景进行二次定制开发,或者更简单一点使用第三方 SDK。


W3C WebRTC工作组已经开始研究 WebRTC Next Version Use Cases,规划 WebRTC 的未来,特别是:

  • 在服务器介导的视频会议中的端到端加密

  • 即时处理音视频材料,包括通过机器学习

  • 物联网(例如 IoT 传感器维持长期连接并寻求最小功耗)

  • WebRTC工作组正对现有及新的用例进行迭代,重点理解全部需求及其优先级

未来计划

  • W3C近期开始的 WebTransport 和 Web Codecs 工作预计将低延迟流媒体的优势引入更广大的媒体和娱乐生态系统。

  • IETF WebTransport (WEBTRANS)和WebRTC Ingest Signaling over HTTPS (WISH) 工作组已经在开展工作,在 IETF 其他工作组的基础上进一步协调、拓展相关工作

  • QUIC(定义支持 WebTransport API 开发的新协议)和 HTTPBIS(指定简单、可扩展的、基于 HTTPS 的信令协议),以在广播工具和实时媒体广播网之间建立基于WebRTC 的单向视听会话

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,948评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,371评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,490评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,521评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,627评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,842评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,997评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,741评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,203评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,534评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,673评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,339评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,955评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,770评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,000评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,394评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,562评论 2 349

推荐阅读更多精彩内容