写点什么

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

作者:wljslmz
  • 2022 年 7 月 14 日
  • 本文字数:2024 字

    阅读完需:约 7 分钟

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

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


现在,基本 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:


WebRTC 官网

https://webrtc.org/
复制代码



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


点击右上方🌐图标:



在这里切换成简体中文:



我们可以点击【指南】查看 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,使用不难,并且方案也很多,用的恰到好处才是最重要的。


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

发布于: 10 小时前阅读数: 16
用户头像

wljslmz

关注

极致主义者,追求技术的路上,勇往直前! 2021.05.24 加入

订阅号:网络技术联盟站 个站:https://www.wljslmz.cn

评论

发布
暂无评论
1800字带您了解视频会议、视频聊天底层技术:WebRTC 网页实时通信_WebRTC_wljslmz_InfoQ写作社区