什么是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 既要保证高效的传输性,又要保证稳定的连通性。

相关文章
|
6月前
|
Web App开发 前端开发
ZLMediaKit解决webrtc前端replaceTrack断流问题
ZLMediaKit解决webrtc前端replaceTrack断流问题
|
Web App开发 编解码 算法
WebRTC简介
WebRTC (Web Real-Time Communications) 是一项实时通讯技术,它允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点(Peer-to-Peer)的连接,实现视频流和(或)音频流或者其他任意数据的传输。WebRTC包含的这些标准使用户在无需安装任何插件或者第三方的软件的情况下,创建点对点(Peer-to-Peer)的数据分享和电话会议成为可能。
626 0
WebRTC简介
|
1月前
|
Web App开发 编解码 API
WebRTC简介及使用
WebRTC简介及使用
149 0
|
9月前
|
Web App开发 开发工具 Android开发
利用RTMP或RTSP实现跨平台一对一互动功能
目前市面上大多一对一互动都是基于WebRTC,缺点如下: 1. 服务器部署非常复杂,不利于私有部署,在一些私密性高的场景下,无法使用,如公安、市政等体系; 2. 传输基于UDP,很难保证传输质量,由于UDP是不可靠的传输协议,在复杂的公网网络环境下,各种突发流量、偶尔的传输错误、网络抖动、超时等等都会引起丢包异常,都会在一定程度上影响音视频通信的质量; 3. 难以应对复杂的互联网环境,如跨区跨运营商、低带宽、高丢包等场景; 4. 整个框架体系不够灵活,代码复杂度高,行话说的好:从demo到实用,中间还差1万个WebRTC。
|
10月前
|
Web App开发 编解码 网络协议
Android平台一对一音视频通话方案对比:WebRTC VS RTMP VS RTSP
Android平台一对一音视频通话方案对比:WebRTC VS RTMP VS RTSP
310 0
|
Web App开发 监控 网络协议
WebRTC 网络协议
WebRTC 网络技术理论与实战(二) - WebRTC 网络协议
153 0
|
Web App开发 编解码 安全
WebRTC的应用
WebRTC的应用
|
Web App开发 编解码 JavaScript
webRTC架构说明
WebRTC系列
169 0
|
Web App开发 JSON 监控
一次webrtc视频拉流的摸爬滚打全纪录
上周五的上午突然接到了一个需求,要在前端页面中增加的摄像头的画面预览功能,要在周一(昨天)完成,我本来以为接入视频流并不会很困难,毕竟之前也做过视频相关的需求。
605 0
|
Web App开发 编解码 网络协议
WebRTC SDP 详解和剖析
WebRTC 技术体系中,SDP 是看起来简单却坑非常多的点,就像直播中的时间戳几乎占据了 80% 的问题,SDP 也是问题频发的点。这篇文章详细分享了 SDP 的关键点,容易出问题的点,是非常实用的满满的干货。
WebRTC SDP 详解和剖析