现在,基本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标准C++音视频开发学习资料:点击领取→音视频开发(资料文档+视频教程+面试题)(FFmpeg+WebRTC+RTMP+RTSP+HLS+RTP)WebRTC官网https://webrtc.org/我们可以点击【指南】查看WebRTC使用说明。WebRTC 是如何工作的?WebRTC 使用三个主要组件来完成对等交互,这三个组件非常重要,而且相互独立,主要有:媒体流媒体流是一种 API,主要是提供访问设备摄像头和麦克风的方法,可以通过消耗的数据控制设备的多媒体活动,负责处理有关捕获和渲染媒体的设备信息,理想情况下,它支持通过设备流式传输音频和视频数据。对等连接对等连接主要是在不借助任何中间连接的情况下创建直接通信,对等点甚至可以获取音频和视频并对其进行处理。数据通道数据通道有助于在对等点之间创建任意数据的双向传输,可以确保通过网络可靠地传输流。设置和运行 WebRTC 连接前提设置和运行 WebRTC 连接一般有三个前提:信令NAT穿越压缩解压信令WebRTC 信令是指在需要时建立、监视和终止通信会话的处理,可以帮助两个对等方了解彼此的能力和网络地址。NAT穿越NAT穿越允许路由器修改数据包来供多个设备通过单个公共 IP 地址共享资源。压缩解压在对等体双方交换数据的时候原始音频和视频文件太大了,如果直接发送原始文件,则连接将非常慢甚至直接会断开。所以需要压缩数据来提高传输效率,一旦设备通过对等连接接收到媒体,就必须对其进行解压缩,这个过程是由编解码器进行完成的。WebRTC 使用五个编解码器:处理音频文件:PCMU(单声道)PCMA(单声道)Opus(两个立体声通道)处理视频文件:VP8H.264/AVCWebRTC工作过程第 1 步:通过网络摄像头或麦克风访问媒体流第 2 步:基础网络端口和IP地址等相关信息,这些信息需要通过信令与其他浏览器共享第 3 步:媒体数据参数信息第 4 步:传输媒体数据WebRTC优点支持主流网络浏览器,适应性强开源软件免费提供比其他各种流媒体系统更高级别的安全性,无需第三方软件WebRTC 不仅限于浏览器,也可用于移动应用程序WebRTC 不仅适用于语音或视频通话,也可以使用它来构建群呼服务、添加录音等WebRTC 通过自适应网络编码确保在恶劣的网络条件下可靠发布WebRTC缺点WebRTC依赖于互联网,所以不支持离线操作WebRTC作为一个服务端,所以需要占用服务器资源,硬件要求高总结WebRTC使得Web 浏览器和设备之间实现实时语音、文本和视频通信功能,本文着重于理论的讲解,关于如何使用WebRTC可以根据项目去适当看一下API,使用不难,并且方案也很多,用的恰到好处才是最重要的。感谢您的阅读,如果觉得文章对您有帮助,别忘了点赞、收藏⭐哦!
本文出自快速备案,转载时请注明出处及相应链接。