1800字带您了解视频会议、视频聊天底层技术:WebRTC 网页实时通信

举报
wljslmz 发表于 2022/09/13 14:58:17 2022/09/13
【摘要】 你好,这里是网络技术联盟站。现在,基本Web的网络时间已经变得无所不能,甚至可以说一切皆可Web,虽然有点夸张,但是也体现了Web技术的强大性。比如在以前,我们要开视频会议,是不是得买一台专业的会议直播系统,会议的双方起初都要花费高昂的代价才能建立起这个系统,并且使用的时候非常麻烦。但是再想一想现在我们要开直播会议呢?是不是你的老大或者行政直接在群里发一下:xxx部门的同事,今天下午6点我们...

你好,这里是网络技术联盟站。

现在,基本Web的网络时间已经变得无所不能,甚至可以说一切皆可Web,虽然有点夸张,但是也体现了Web技术的强大性。比如在以前,我们要开视频会议,是不是得买一台专业的会议直播系统,会议的双方起初都要花费高昂的代价才能建立起这个系统,并且使用的时候非常麻烦。

但是再想一想现在我们要开直播会议呢?是不是你的老大或者行政直接在群里发一下:

xxx部门的同事,今天下午6点我们将和北京研发中心xxx部门的同事开视频会议讨论xxx事情,会议地址:XXXXXX,验证码:6666,请大家及时参加。

视频会议

很明显,现在的视频会议多简单,一个URL就搞定了,这要归功于 WebRTC 的强大功能,它为开发人员和企业打开了无限可能的大门。

什么是WebRTC?WebRTC的工作原理是什么?

带着这个问题,瑞哥今天就带着大家好好聊一聊WebRTC!

还是那句话,没有深奥得深不见底的技术,技术都是来源于生活,技术的底层都是艺术的结果,瑞哥要做的事情就是将晦涩的技术用人话讲出来,人人都能看得懂!💪💪💪

让我们直接开始吧!

WebRTC诞生的背景

互联网如今已经是全球最大的基础设施,将其称为基础设施一点也不为过,试想一下,如果没有互联网,那么历史就得倒退到工业时代,那个时代对于现在先进的互联网时代,跟古代没啥区别。

互联网

从互联网诞生开始,从传输数据包开始,互联网的发展一刻也没有停止,多媒体通信的发展可以追溯到 1990 年代中期在互联网上建立 IP 语音 (VoIP) 呼叫的系统。

Gmail 视频聊天在 2008 年开始流行,2011 年,谷歌推出了Talk ,然后收购了 GIPS,这家公司开发了 RTC 所需的许多组件,例如编解码器和回声消除技术,谷歌开源了 GIPS 开发的技术,并与互联网工程任务组 (IETF) 和万维网联盟 (W3C) 的相关标准机构合作,形成标准化,2011 年 5 月,爱立信构建了 WebRTC 的第一个实现。

什么是WebRTC?

  • 英文全称:Web real-time communication
  • 中文名称:网页实时通信

WebRTC 于 2011 年作为W3C标准提出,WebRTC 规范包括开发人员可以在浏览器中使用的 JavaScript API 和一套通信协议,后来,各个科技巨头的开发人员开始将WebRTC整合到他们的软件中,自 2017 年以来,所有主流浏览器都支持WebRTC,比如谷歌浏览器、火狐浏览器、苹果的Safari浏览器、微软的的Edge浏览器,W3C 于 2021 年最终确定了该标准。

我们访问这个网址可以看到https://www.w3.org/2021/01/pressrelease-webrtc-rec.html.en:

W3C webrtc标准

WebRTC官网

https://webrtc.org/

英文版界面

界面是英文版的,我们可以切换简体中文版:

点击右上方🌐图标:

切换语言

在这里切换成简体中文:

中文版界面

我们可以点击【指南】查看WebRTC使用说明。

WebRTC指南

WebRTC 是如何工作的?

WebRTC 使用三个主要组件来完成对等交互,这三个组件非常重要,而且相互独立,主要有:

WebRTC组件

媒体流

媒体流是一种 API,主要是提供访问设备摄像头和麦克风的方法,可以通过消耗的数据控制设备的多媒体活动,负责处理有关捕获和渲染媒体的设备信息,理想情况下,它支持通过设备流式传输音频和视频数据。

对等连接

对等连接主要是在不借助任何中间连接的情况下创建直接通信,对等点甚至可以获取音频和视频并对其进行处理。

数据通道

数据通道有助于在对等点之间创建任意数据的双向传输,可以确保通过网络可靠地传输流。

设置和运行 WebRTC 连接前提

设置和运行 WebRTC 连接一般有三个前提:

  • 信令
  • NAT穿越
  • 压缩解压
信令

WebRTC 信令是指在需要时建立、监视和终止通信会话的处理,可以帮助两个对等方了解彼此的能力和网络地址。

NAT穿越

NAT穿越允许路由器修改数据包来供多个设备通过单个公共 IP 地址共享资源。

压缩解压

在对等体双方交换数据的时候原始音频和视频文件太大了,如果直接发送原始文件,则连接将非常慢甚至直接会断开。

所以需要压缩数据来提高传输效率,一旦设备通过对等连接接收到媒体,就必须对其进行解压缩,这个过程是由编解码器进行完成的。

WebRTC 使用五个编解码器:

处理音频文件:

  • PCMU(单声道)
  • PCMA(单声道)
  • Opus(两个立体声通道)

处理视频文件:

  • VP8
  • H.264/AVC

WebRTC工作过程

  • 第 1 步:通过网络摄像头或麦克风访问媒体流
  • 第 2 步:基础网络端口和IP地址等相关信息,这些信息需要通过信令与其他浏览器共享
  • 第 3 步:媒体数据参数信息
  • 第 4 步:传输媒体数据

WebRTC优点

  • 支持主流网络浏览器,适应性强
  • 开源软件免费
  • 提供比其他各种流媒体系统更高级别的安全性,无需第三方软件
  • WebRTC 不仅限于浏览器,也可用于移动应用程序
  • WebRTC 不仅适用于语音或视频通话,也可以使用它来构建群呼服务、添加录音等
  • WebRTC 通过自适应网络编码确保在恶劣的网络条件下可靠发布

WebRTC缺点

  • WebRTC依赖于互联网,所以不支持离线操作
  • WebRTC作为一个服务端,所以需要占用服务器资源,硬件要求高

总结

WebRTC使得Web 浏览器和设备之间实现实时语音、文本和视频通信功能,本文着重于理论的讲解,关于如何使用WebRTC可以根据项目去适当看一下API,使用不难,并且方案也很多,用的恰到好处才是最重要的。

感谢您的阅读,如果觉得文章对您有帮助,别忘了点赞👍、收藏⭐哦!有任何问题,欢迎在下方评论区与我讨论!!!

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。