什么是WebRTC

简介: 什么是WebRTC

什么是WebRTC?

WebRTC最初是为了在网页浏览器中进行实时通信而建立的。你可以理解为,它是一个支持网页浏览器进行实时语音对话或视频对话的API。

发展由来

Google Chrome 发布后不久,其团队注意到,在进行实时通信时,网页基础设施不足。在当时,浏览器都没有默认提供人与人之间直接进行数据传输的功能,更不用说让所有浏览器都实现标准化操作。

因此 Google 开始着手创建 Web 实时通信的标准化规范,以便在通用平台上顺利进行数据传输,从而消除对第三方应用程序或插件的需求。在随后的几年里,Mozilla、Microsoft、Opera 和 Apple 都加入了该项目。

WebRTC 技术的诞生,有一个很重要的原因在于,在浏览器实现实时音视频通话,需要依赖相关插件或程序,而插件安全漏洞问题则更为关键。浏览器开发人员无法控制这些插件以及更新,因此插件带来的安全风险也相对较大。

例如,Adobe Flash 一直以来以安全性问题闹了不少负面新闻,以至于史蒂夫·乔布斯写了一封公开信,详细说明了为何 iOS 从2010年就禁止了该插件。所以,Adobe 于2015年停用了 Flash,并宣布2020年终止服务。

WebRTC的特点:

  1. 开源、免费,开发者不需要承担高昂的专利费用。
  2. 基于浏览器,不需要安装插件,只要调用就可以实现音视频互动。
  3. 被纳入了HTML5标准,主流浏览器全面支持 WebRTC。

应用场景

如今 WebRTC 已经不仅仅局限于 PC 端的网页浏览器,很多 Android、iOS 应用都已经采用了该技术。这也是为什么近几年课程直播、企业培训、社交娱乐等等领域,视频业务发展迅速。

AI、物联网已经是未来趋势,到2030年,全球预计将有5,000亿台移动互联网设备。我们需要一种快捷便利、低延迟的解决方案来实现实时音视频的传输和处理。

随着移动互联网的高速发展,AI、5G等等新兴技术的到来,结合WebRTC技术,也将衍生出更多的应用场景,改变人类的衣、食、住、行等生活方式。

了解API

我们说 WebRTC 的 RTCPeerConnection 是可以做到浏览器间(无服务)的通信。

但这里有个问题,当两个浏览器不通过服务器建立 RTCPeerConnection 时,它们怎么知道彼此的存在呢?进一步讲,它们该怎么知道对方的网络连接位置(IP/端口等)呢?支持何种编解码器?甚至于什么时候开始媒体流传输、又该什么时候结束呢?

因此在建立 WebRTC 的 RTCPeerConnection 前,必须建立️另一条通道来交这些协商信息,这些也被称为信令,这条通道成为信令通道(Signaling Channel)。

其中主要涉及 SDP(offer、answer) 会话描述协议,以及 ICE candidate 的交换。

一般会使用 websocket 通道来做信令通道,比如可以基于 socket.io 来搭建信令服务。当然业界也有很多开源且稳定成熟的信令服务方案可供选择。

在交换 SDP 后,webrtc 就开始真正的连接来传输音视频数据。这个建立连接的过程相当复杂,原因是 webrtc 既要保证高效的传输性,又要保证稳定的连通性。

相关文章
|
Java Apache
解决gradle下载慢的问题
解决gradle下载慢的问题
8524 0
|
机器学习/深度学习 异构计算 Python
Bert-vits2最终版Bert-vits2-2.3云端训练和推理(Colab免费GPU算力平台)
对于深度学习初学者来说,JupyterNoteBook的脚本运行形式显然更加友好,依托Python语言的跨平台特性,JupyterNoteBook既可以在本地线下环境运行,也可以在线上服务器上运行。GoogleColab作为免费GPU算力平台的执牛耳者,更是让JupyterNoteBook的脚本运行形式如虎添翼。 本次我们利用Bert-vits2的最终版Bert-vits2-v2.3和JupyterNoteBook的脚本来复刻生化危机6的人气角色艾达王(ada wong)。
Bert-vits2最终版Bert-vits2-2.3云端训练和推理(Colab免费GPU算力平台)
|
分布式计算 DataWorks 调度
DataWorks产品使用合集之数据地图里如何导出某个工作空间下的所有表明细
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
199 24
|
前端开发 应用服务中间件 nginx
网页设计,若依项目修改(It must be done)01----若依打包位置,nginx代理前端静态资源和后端接口,就是怎样设置转载,访问固定端口,让他访问其他资料的配置文件,访问/,给你那些
网页设计,若依项目修改(It must be done)01----若依打包位置,nginx代理前端静态资源和后端接口,就是怎样设置转载,访问固定端口,让他访问其他资料的配置文件,访问/,给你那些
|
前端开发 JavaScript
前端 CSS 经典:3D Hover Effect 效果
前端 CSS 经典:3D Hover Effect 效果
168 0
|
敏捷开发 开发者
Code Review 全面审查清单
Code Review 全面审查清单
997 0
Code Review 全面审查清单
|
Web App开发
WebRTC 音视频同步原理与实现
所有的基于网络传输的音视频采集播放系统都会存在音视频同步的问题,作为现代互联网实时音视频通信系统的代表,WebRTC 也不例外。本文将对音视频同步的原理以及 WebRTC 的实现做深入分析。
WebRTC 音视频同步原理与实现
隐式类型转换(整型提升和截断)、强制类型转换的总结
隐式类型转换(整型提升和截断)、强制类型转换的总结
|
存储 机器学习/深度学习 C++
C/C++数据在计算机内存中的存储形式详解
C/C++数据在计算机内存中的存储形式详解
|
Web App开发 编解码 JavaScript
webRTC架构说明
WebRTC系列
415 0

热门文章

最新文章