WebRTC音视频会议底层支撑技术

这篇具有很好参考价值的文章主要介绍了WebRTC音视频会议底层支撑技术。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

WebRTC允许应用使用P2P通信。WebRTC是一个广泛的话题,在本文中,我们将重点讨以下问题。

为什么Web RTC 如此受欢迎?

在P2P连接过程中会发生什么

信号传递

NATs和ICE

STUN & TURN服务器

VP9视频编解码器

WebRTC APIs

安全

1.为什么Web RTC 如此受欢迎?
开放源代码 它为浏览器提供了端到端的通信,并且很容易使用。

速度提升 不需要通过服务器进行路由,它减少了延迟和带宽消耗。直接通信提高了数据传输&文件共享的速度。

不需要第三方应用程序 不需要额外的软件、插件或服务器持续参与(仅在初始的时候需要)。可以轻松嵌入到任何网站中,就可以连接互联网上的Peer。

易于实现 使用P2P(点对点)连接更加容易。所有的功能都可以通过客户端完成。开发者只需要下载一个与WebRTC兼容的浏览器。

兼容性 支持大多数流行的浏览器。Microsoft Edge、Google Chrome、Mozilla Firefox、Safari、Safari、Opera、Vivaldi。支持Android、Chrome OS、Firefox OS、黑莓10、iOS、Tizen。

提供跨多种浏览器的安全连接 所有的WebRTC组件都必须进行加密。由于它不是一个插件,所以它运行在浏览器的沙盒内,不需要创建一个新的进程,这样就不会有任何恶意软件进入用户操作系统。无需跟踪更新。它会随着浏览器版本的自动更新。

2.在P2P连接期间会发生什么?
WebRTC音视频会议底层支撑技术

要连接两个浏览器,Web RTC需要执行五个步骤来建立P2P连接。

信号处理,以去除音频或视频中的环境噪声。

编解码器处理,以压缩和解压音频或视频。

通过防火墙、(NAT)和中继器建立从一个Peer 到另一个Peer的路由,以创建一个ICE(交互式链接建立)。

用户数据在进行连接传输前都会进行加密。

管理带宽,给每个Peer的带宽不同

2.1信号传递
浏览器中的P2P连接由服务器建立,以确保所有Peer同意建立会话。

Peer之间共享会话密钥、错误信息、媒体元数据、编解码器、带宽、公共IP地址和端口等信息以创建连接。 服务器向两个Peer发出信号,以确定使用什么媒体格式以及每个Peer要向对方发送什么。
WebRTC音视频会议底层支撑技术

2.2网络地址转换(NAT)和ICE
NATs将家庭路由器等设备上的私有IP地址转换为公网IP地址。防火墙和NATs通过阻止特定的协议或端口来减慢这一过程。WebRTC使用的解决方案是ICE框架。

ICE通过并行尝试所有连接并选择最有效的路径,在互联网上建立P2P连接。有两种类型的连接可选 STUN & TURN

2.3STUN服务器
它首先连接到STUN(Session Traversal Utilities for NAT)服务器,获得直接连接。

STUN服务器为请求者提供了公网IP地址,以便与他人进行通信。其目的是帮助请求者回答 "我的IP地址是啥 "这个问题。

STUN服务器如何工作
WebRTC音视频会议底层支撑技术

 文章来源地址https://www.toymoban.com/news/detail-503076.html

 

要建立与其他Peer的连接,需要终端知道自己的公网IP才能与他人共享。

当一个Peer(Calvin)在NAT/防火墙后面时,它只能识别它的私有IP地址,而另一个Peer(Elana)由于防火墙的安全性,无法连接到本地IP。

这个Peer会向STUN服务器请求,获取它的公网IP地址和一种可用NAT类型。

另一个Peer(Elana)可以使用STUN服务器给定的公网IP地址尝试进行连接。

如果成功,数据将通过点对点网络传输,而不需要第三方或其他服务器。

为了安全起见,所有STUN服务器将被丢弃并等待下一次查询。

限制 - 对称NAT

但是,上述情况有时可能会失败,IP地址和端口会发生变化。 这种情况称为 "对称NAT",STUN服务器的公网IP地址没有足够的能力在这里建立连接,因为端口也需要转换。

有些路由器使用对称NAT,是为了使终端设备更加安全,或者说避免很多陌生人连到你的设备上。对称NAT不仅可以将IP地址从私有地址转换成公共地址,还可以转换端口。

换句话说,路由器只会接受用户已经有过的连接。因此,另一种确保两个Peer之间连接的解决方案是通过TURN服务器。

为什么STUN服务器如此有用

作为一种协议,STUN具有超快、轻量的特点。它可以在很短的时间内将数据直接传送给对方。STUN有利于加快连接速度,更快地获取结果。

当用户使用LAN局域网传输数据时,场景类似,比使用Wi-Fi传输更快。最重要的是,可以直接在两个Peer之间传输数据。

TURN 服务器

TURN(Traversal Using Relays around NAT)服务器作为中继服务器,以防P2P连接中断。当STUN服务器用于建立连接时,TURN服务器在整个连接过程中保持活跃。

TURN服务器在WebRTC Peer之间不断中继数据。这就是为什么用 "中继 "一词来定义TURN。

TURN 服务器如何工作
WebRTC音视频会议底层支撑技术

这个中继服务器是在STUN服务器出现故障时用来中继流量的,同时也具有STUN的功能。

TURN服务器是一个内置传输功能的STUN服务器。更具体地说,TURN是用来中继Peer之间的音视频/数据流,而不是信令数据。

按照上文STUN服务器的步骤运行

如果STUN失败,终端用户会与TURN服务器建立连接,通知所有Peer向服务器发送数据,服务器负责向第一个终端用户传输数据。

为什么总是先使用STUN服务器,主要原因是TURN服务器成本太高,如果在线传输高清视频的话,会消耗大量带宽。

2.4VP9视频编解码器
为什么很多人开始使用WebRTC,其中一个主要原因就是因为视频。随着视频直播越来越成为主流,视频质量的要求也越来越高,这就要求数据传输的速度要快,或者数据包的大小要小,才能方便传输速度高。

VP9视频编解码器用于对音频或视频进行压缩和解压。音视频数据压缩后大大减小体积,因此VP9可以帮助流媒体视频更快传输。Safari 12.1(通过支持VP8)可以与其他Peer进行在线实时视频。

VP9是在VP8的基础上改进而来的,是谷歌旗下的由On2科技公司创建的视频压缩格式。主要功能是隐藏丢包和清理嘈杂的图像,以及多平台的采集和播放功能。

通过VP9,用户可以使用WebRTC传输720p视频,而不会出现丢包或延迟。同时,它还可以在同样的带宽下支持1080p视频通话,并帮助优化连接和数据使用,避免带宽成本过于高昂。

3.JS APIs
有三个主要的Javascript API可以处理音频捕获、视频会议和数据传输。

MediaStream

使用用户的摄像头和麦克风来获取和传输音频和视频。使用这个API可以让你获得麦克风和网络摄像头等设备的访问权限。

当开发人员将WebRTC集成到他们的网站中时,他们可以对他们想要的音频和视频流的参数进行设置,比如帧率、视频帧的大小、分辨率等。

这个API是作为HTML 5的一部分提供的,而其他两个API是专门为WebRTC提供的。

RTCPeerConnection

将采集到的音视频流实时发送至另一个WebRTC Peer。使用该API,用户可以将getUserMedia捕获的音频和视频传输给其他Peer。

该API具有连接到远程Peer,维护和监控连接,并在完成后关闭连接等功能。

RTCDataChannel

传输任意数据。每个数据通道都与一个RTCPeerConnection相关联。内置安全(DTLS)和拥塞控制。

4.安全
在实时通信的数据传输过程中可能会产生很多安全风险。因此,加密是WebRTC的强制性功能,并在所有组件上强制执行。

WebRTC使用两种标准加密协议。

数据报传输层安全协议(DTLS)

一种建立在浏览器中的标准化协议。它用于加密数据流。它基于传输层协议(TLP)。

保留了传输语义,DTLS使用用户数据协议(UDP)。

它是安全套接字层(SSL)的扩展;任何SSL协议都可以用来保护WebRTC数据的安全,允许端到端加密。

安全实时传输协议(SRTP)

用于加密媒体流。

它是实时传输协议(RTP)的扩展,RTP没有任何内置的安全机制。

在RTP的基础上增加了保护、完整性检查和消息认证。

缺点是 虽然它为RTP数据包提供了加密,但它并没有对报头进行加密。

确保2个Peer之间连接安全的步骤

启动信令过程在两个Peer之间交换元数据。

执行ICE检查,ICE在双方之间建立通道。

进行DTLS握手。如果有多媒体传输,SRTP使用DTLS握手步骤中导出的密钥。

所有Peer都有安全通道。

Peer之间交换密钥。

使用WebRTC的应用

Google Meet/ Google Hangout

Facebook Messenger

Discord

Amazon Chime

 

 

到了这里,关于WebRTC音视频会议底层支撑技术的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用WebRTC实现多人视频会议

    1.1.使用同事nodejs开发的一个信令服务器。提供Https的WebSocket功能 1.2.准备一个多人视频会议的客户端Web程序client.html 2.1.在Tomcat下打开client.html,如果不使用http://127.0.0.1:8081/vedio/client.html,而使用实际IP地址访问如http://192.168.1.136:8081/vedio/client.html  就会出现如下图的问题,没有

    2024年02月16日
    浏览(32)
  • WebRTC技术文档 -- 1.音视频直播(笔记)

    1.1 两条技术路线 1.1.1 以音视频会议为代表的实时互动直播 互动直播主要解决音视频远程交流问题,实时性较强,时延一般低于500ms。 1.1.2 以娱乐直播为代表的流媒体分发 娱乐直播主要解决音视频大规模分发问题,实时性较差,时延一般在3s以上。 1.2 直播技术 WebRTC用于实时

    2024年02月22日
    浏览(43)
  • Web端Webrtc,SIP,RTSP/RTMP,硬件端,MCU/SFU融合视频会议系统方案分析

    Web端视频融合,会议互通已经是视频会议应用的大趋势,一是目前企业有大量的老视频会议硬件设,二新业务又需要Web端支持视频会议监控直播需求,迫切需要一个融合对接的方案,即能把老的设备用起来,又能对接新的业务系统,加入Web视频参会互动。 分析: 1,老视频设

    2024年04月25日
    浏览(28)
  • WebRTC音视频通话(二)简单音视频通话

    本篇不详细介绍websocket,只针对websocket整合rtc。 webrtc是P2P通信,也就是实际交流的 只有两个人 ,而要建立通信,这两个人需要 交换一些信息来保证通信安全 。而且, webrtc必须通过ssh加密 ,也就是使用https协议、wss协议。 借用一幅图 1.1 创建端点的解析 以下解析不包括we

    2023年04月09日
    浏览(48)
  • WebRTC音视频通话-WebRTC视频自定义RTCVideoCapturer相机

    WebRTC音视频通话-WebRTC视频自定义RTCVideoCapturer相机 在之前已经实现了WebRTC调用ossrs服务,实现直播视频通话功能。但是在使用过程中,RTCCameraVideoCapturer类提供的方法不能修改及调节相机的灯光等设置,那就需要自定义RTCVideoCapturer自行采集画面了。 iOS端WebRTC调用ossrs相关,实现

    2024年02月12日
    浏览(42)
  • WebRTC音视频原理

    WebRTC,网页即时通讯(Web Real-Time Communication),是直接在 Web 浏览器内驱动实时通信(语音、视频和任意数据)方法的API。它于2011年6月1日开源并在Google、Mozilla、Opera支持下被纳入万维网联盟的W3C推荐标准,并于 2011 年标准化,是谷歌开源的一款产品。 WebRTC 实现了浏览器快速

    2023年04月08日
    浏览(59)
  • 【WebRTC】音视频通信

    WebRTC对等体还需要查找并交换本地和远程音频和视频媒体信息,例如分辨率和编解码器功能。 交换媒体配置信息的信令通过使用被称为SDP的会话描述协议格式来交换,被称为提议和应答的元数据块 一方发起调用 getUserMedia 打开本地摄像头 媒体协商(信令交换,媒体协商主要

    2024年02月07日
    浏览(42)
  • WebRTC音视频通话-WebRTC本地视频通话使用ossrs服务搭建

    iOS开发-ossrs服务WebRTC本地视频通话服务搭建 之前开发中使用到了ossrs,这里记录一下ossrs支持的WebRTC本地服务搭建。 ossrs是什么呢? SRS(Simple Realtime Server)是一个简单高效的实时视频服务器,支持RTMP、WebRTC、HLS、HTTP-FLV、SRT等多种实时流媒体协议。 官网地址:https://ossrs.net/lt

    2024年02月12日
    浏览(30)
  • webRTC一对一音视频对话

    环境 阿里云操作系统: ubuntu 18.4 amd         注意:安全组一定添加对应的入口端口 nodejs -v 18.19.0 npm -v 10.2.3 需要安装的库 package.json 服务器端         webRTC一定要使用https服务器,如果没有ssl证书,可以使用自制证书         1.创建HTTPS服务器                 使用soc

    2024年01月19日
    浏览(44)
  • WebRTC实战-第二章-使用WebRTC实现音视频通话

    、 什么是WebRTC|WebRTC入门到精通必看|快速学会音视频通话原理|WebRTC超全资料分享FFmpeg/rtmp/hls/rtsp/SRS WebRTC **WebRTC详细指南** http://www.vue5.com/webrtc/webrtc.html WEBRTC三种类型(Mesh、MCU 和 SFU)的多方通信架构 WebRTC API包括媒体捕获,音频和视频编码和解码,传输层和会话管理 。 假设

    2023年04月12日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包