专栏首页Web技术研发WebRTC 成为 W3C 和 IETF 正式标准

WebRTC 成为 W3C 和 IETF 正式标准

2021年1月26日,W3C(万维网联盟)和 IETF (互联网工程任务组)同时宣布 WebRTC(Web Real-Time Communications,Web 实时通信)现发布为正式标准,将音视频通信带到 Web 上任何地方。

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

WebRTC (Web Real-Time Communications) 是一项实时通讯技术,它允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点(Peer-to-Peer)的连接,实现视频流和(或)音频流或者其他任意数据的传输。WebRTC包含的这些标准使用户在无需安装任何插件或者第三方的软件的情况下,创建点对点(Peer-to-Peer)的数据分享和电话会议成为可能。

它并不是单一的协议,包含了媒体、加密、传输层等在内的多个协议标准以及一套基于 JavaScript 的 API。通过简单易用的 JavaScript API ,在不安装任何插件的情况下,让浏览器拥有了 P2P音视频和数据分享的能力。同时WebRTC 并不是一个孤立的协议,它拥有灵活的信令,可以便捷的对接现有的SIP 和电话网络的系统。

WebRTC 内部结构

架构图颜色标识说明:

  • 紫色部分是Web开发者API层
  • 蓝色实线部分是面向浏览器厂商的API层
  • 蓝色虚线部分浏览器厂商可以自定义实现

WebRTC有三个模块:

  • Voice Engine(音频引擎)
    • Voice Engine包含iSAC/iLBC Codec(音频编解码器,前者是针对宽带和超宽带,后者是针对窄带)
    • NetEQ for voice(处理网络抖动和语音包丢失)
    • Echo Canceler(回声消除器)/ Noise Reduction(噪声抑制)
  • Video Engine(视频引擎)
    • VP8 Codec(视频图像编解码器)
    • Video jitter buffer(视频抖动缓冲器,处理视频抖动和视频信息包丢失)
    • Image enhancements(图像质量增强)
  • Transport
    • SRTP(安全的实时传输协议,用以音视频流传输)
    • Multiplexing(多路复用)
    • P2P,STUN+TURN+ICE(用于NAT网络和防火墙穿越的)
    • 除此之外,安全传输可能还会用到DTLS(数据报安全传输),用于加密传输和密钥协商
    • 整个WebRTC通信是基于UDP的

WebRTC 的核心组件

  • 音视频引擎:OPUS、VP8 / VP9、H264
  • 传输层协议:底层传输协议为 UDP
  • 媒体协议:SRTP / SRTCP
  • 数据协议:DTLS / SCTP
  • P2P 内网穿透:STUN / TURN / ICE / Trickle ICE
  • 信令与 SDP 协商:HTTP / WebSocket / SIP、 Offer Answer 模型

WebRTC 音频和视频引擎

  • 最底层是硬件设备,上面是音频捕获模块和视频捕获模块
  • 中间部分为音视频引擎。音频引擎负责音频采集和传输,具有降噪、回声消除等功能。视频引擎负责网络抖动优化,互联网传输编解码优化
  • 在音视频引擎之上是 一套 C++ API,在 C++ 的 API 之上是提供给浏览器的Javascript API

WebRTC 协议栈

  • WebRTC 核心的协议都是在右侧基于 UDP 基础上搭建起来的
  • 其中,ICE、STUN、TURN 用于内网穿透, 解决了获取与绑定外网映射地址,以及 keep alive 机制
  • DTLS 用于对传输内容进行加密,可以看做是 UDP 版的 TLS。由于 WebRTC 对安全比较重视,这一层是必须的。所有WebRTC组件都必须加密,并且其JavaScript API只能用于安全源(HTTPS或本地主机)。信令机制并不是由WebRTC标准定义的,所以您必须确保使用安全协议。
  • SRTP 与 SRTCP 是对媒体数据的封装与传输控制协议
  • SCTP 是流控制传输协议,提供类似 TCP 的特性,SCTP 可以基于 UDP 上构建,在 WebRTC 里是在 DTLS 协议之上
  • RTCPeerConnection 用来建立和维护端到端连接,并提供高效的音视频流传输
  • RTCDataChannel 用来支持端到端的任意二进制数据传输
  • WebRTC 协议栈解释
    • ICE:互动式连接建立(RFC 5245)
    • STUN:用于NAT的会话遍历实用程序(RFC 5389)
    • TURN:在NAT周围使用继电器进行遍历(RFC 5766)
    • SDP:会话描述协议(RFC 4566)
    • DTLS:数据报传输层安全性(RFC 6347)
    • SCTP:流控制传输协议(RFC 4960)
    • SRTP:安全实时传输协议(RFC 3711)

COVID-19 疫情

目前全球都面临着 COVID-19 疫情,WebRTC 让数十亿人无论其设备或地域如何,在 COVID-19 疫情期间也能保持联络。WebRTC 的使用已经超越了最初的核心设计,即在浏览器和其他生态(例如本地应用)中支持视频会议和协作系统。现在需要更多的特性和优化。

IETF WebTransport (WEBTRANS) 和 WebRTC Ingest Signaling over HTTPS (WISH) 工作组已经在开展工作,在 IETF 其他工作组的基础上进一步协调、拓展相关工作。其中包括 QUIC(定义支持 WebTransport API 开发的新协议)和 HTTPBIS(指定简单、可扩展的、基于 HTTPS 的信令协议),以在广播工具和实时媒体广播网之间建立基于 WebRTC 的单向视听会话。

WebRTC 的未来

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

  • 在服务器介导的视频会议中的端到端加密
  • 即时处理音视频材料,包括通过机器学习
  • 物联网(例如 IoT 传感器维持长期连接并寻求最小功耗) WebRTC 工作组正对现有及新的用例进行迭代,重点理解全部需求及其优先级。W3C 近期开始的 WebTransport 和 Web Codecs 工作预计将低延迟流媒体的优势引入更广大的媒体和娱乐生态系统。

WebRTC 成为 W3C 为应用程序开发定义开放 Web 平台的众多标准之一,具有前所未有的潜力。其让开发人员能够构建丰富的交互体验,由巨大的数据存储提供动力,可用于任何设备以及环境。

标准文档

WebRTC 标准文档:https://www.w3.org/TR/webrtc/

本文分享自微信公众号 - 万少波的播客(Tinywanblog),作者:Tinywan

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-01-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 音视频技术开发周刊 | 181

    2021年1月26日消息:万维网联盟(W3C)和互联网工程任务组(IETF)同时宣布赋能无数服务的 Web 实时通信(Web Real-Time Communi...

    LiveVideoStack
  • 开源框架WebRTC历经10年发展,现已成为官方Web标准

    Web实时通信(WebRTC)最近成为万维网联盟(W3C)的建议和Internet工程任务组(IETF)的标准。 这是WebRTC漫长征途中的一个重要里程碑,W...

    TSINGSEE青犀视频
  • WebRTC的现状和未来:专访W3C WebRTC Chair Bernard Aboba(上)

    Bernard在实时通信领域有着长久而卓越的职业生涯。除了W3C WebRTCCo-Chair 的角色之外,他还是WEBTRANS和AVTCORE工作组的Co-...

    LiveVideoStack
  • WebRTC 的现状和未来:专访 W3C WebRTC Chair Bernard Aboba

    WebRTC 无疑推动和改变了互联网视频,而这仅仅是刚刚开始,除了大家熟悉的 WebRTC-PC、Simulcast 和 SVC,有太多的新技术和新架构出现在 ...

    音视频开发进阶
  • WebRTC诞生记

    Serge Lachapelle,谷歌产品管理总监,Marratech联合创始人

    LiveVideoStack
  • WebRTC现状与未来:专访W3C的WebRTC主席Bernard Aboba

    原标题:WebRTC Today & Tomorrow: Interview with W3C WebRTC Chair Bernard Aboba

    用户1324186
  • 2017-2018:WebRTC标准演进与发展瓶颈

    WebRTC 1.0标准【1】在经过了数年的设计和改进之后,终于在2017年末进入了CR(Candidate Recommendation)【2】阶段。这意味着...

    LiveVideoStack
  • W3C与IETF共同定义WebRTC未来6大应用方向

    W3C和IETF在2021年1月26日宣布,Web实时通信WebRTC现已成为官方标准。这意味着WebRTC可在Web上的任何地方实现丰富,交互式,实时的语音和...

    LiveVideoStack
  • WebRTC:应用中最大难点在于根据业务需求的适当折中

    H.265的专利问题比H.264要复杂得多,再加上谷歌会力推AV1,我认为H.265不太可能得到WebRTC的官方支持。

    LiveVideoStack
  • Web直播,你需要先知道这些

    实际情况下,当用户数量很大时,对推流设备的性能要求很高,复杂的权限管理也难以实现,采用P2P的架构基本不可行。对于个别用户提供上行流、海量用户只进行拉流的场景...

    IMWeb前端团队
  • LiveVideoStackCon 2021北京站 9月再次启航!

    今年2月份,美国知名调查机构Grand View Research发布了一份调查报告,报告中显示,2020 年全球视频流媒体市场规模为 501.1 亿美元。预计...

    LiveVideoStack
  • WebRTC对你意味着什么

    原文链接 / https://blog.mozilla.org/blog/2021/02/04/what-webrtc-means-for-you/

    LiveVideoStack
  • 音视频技术开发周刊 | 184

    WebRTC(Web Real-Time Communication)是一个支持网页浏览器进行实时语音对话或视频对话的 API。W3C 和 IETF 在2021...

    LiveVideoStack
  • 【OpenIM原创】简单轻松入门 一文讲解WebRTC实现1对1音视频通信原理

    WebRTC(Web Real-Time Communication)是 Google于2010以6829万美元从 Global IP Solutions 公司...

    OpenIM
  • Zoom的Web客户端与WebRTC有何不同?

    原文 https://webrtchacks.com/zoom-avoids-using-webrtc/

    LiveVideoStack
  • 网易工业级WebRTC应用实践深度解析

    网易在音视频领域有10多年丰富经验的积累,在公司内部我们把自己的这一套工业级的功能完整的音视频技术方案称为NRTC,NRTC的意思就是NetEase RTC。近...

    LiveVideoStack
  • 我的HTML总结之HTML发展史

    HTML是Web统一语言,这些容纳在尖括号里的简单标签,构成了如今的Web。 ? 1991年,Tim Berners-Lee编写了一份叫做“HTML标签”的文档...

    柴小智
  • WebRTC安全体系架构的8个组件

    url : https://www.red5pro.com/blog/webrtc-security-architecture/

    LiveVideoStack
  • WebAuthn 成为正式 Web 标准

    万维网联盟(W3C)与 FIDO 联盟近日宣布,Web 认证(Web Authentication,简称 WebAuthn)现已成为正式 Web 标准。 Web...

    grain先森

扫码关注云+社区

领取腾讯云代金券