SFU是一个基于服务器的架构,用于webrtc中进行多方视频通话、音频通话和数据传输。
SFU 充当设备之间的中介,从多个设备接收媒体流,然后决定哪些流必须发送到哪些设备。
WebRTC 是一个开源项目,使用它您可以在设备之间实现实时音频、视频和数据传输
WebRTC 在网络浏览器和应用程序中运行,WebRTC 受到几乎所有现代浏览器的支持,并且是视频、音频通信的标准
这是有关 SFU 如何工作的分步指南
每个参与者首先与SFU建立连接。此过程涉及交换会话描述的信令服务器。
会话描述包含重要信息,用于建立会话。
2.媒体流捕获
在客户端,从参与者设备捕获媒体流,例如来自麦克风的音频、来自摄像头的视频等。下一步,这些流将发送到 SFU
如果需要加密,可以使用 RTP 协议或 SRTP 协议来完成
2. SFU 收据
SFU 或选择性转发单元从每个连接的设备接收单独的流,并为每个设备维护单独的入站流。
在 SFU 中,与 MCU 相比,所有流都是彼此分离的,并且没有混合
2.选择性转发
SFU 从连接到 SFU 的每个设备接收单独的流,然后 SFU 为每个参与者维护单独的流
在将流转发到 uesrs 之前,SFU 对流执行某些调整,例如选择不同质量的视频编解码器以及在不同的联播流之间进行选择。
这些基于接收客户端 CPU 和带宽能力
2*。转发流*
SFU转发每个客户端请求的流。
客户端设备可以从 SFU 接收多个流,甚至单个视频和音频数据流
媒体以 RTP 或 SRTP 数据包形式发送,因为不同的客户端设备可能有不同的 CPU 和带宽限制。
SFU 优化流媒体数据包的流动,使流媒体流畅,视频质量在设备上流畅
解码:每个客户端从 SFU 接收 RTP 流,然后客户端对流进行解码并将其呈现在屏幕上
同步:音频和视频同步很重要,它是在客户端级别处理的。客户端使用 RTP 流中的时间戳和序列号来平滑同步视频和音频播放
在本节中,让我们考虑 SFU(选择性转发单元、点对点或 P2p)与 MCU(多点控制单元)之间的区别
选择性转发:SFU接收多个流并选择性地将流转发到设备,而不改变流内容
基于服务器:SFU 依赖于服务器,但该服务器用于路由流,而不用于其他任何用途。
优点:
可扩展性:SFU 具有高度可扩展性,它通过管理将哪个流发送到任何客户端设备来减少单个客户端设备的负载
处理要求低:因为SFU只是转发流,不对流进行任何处理,从而减少延迟和CPU处理要求
流媒体灵活性:
客户端设备可以接收多个流或仅接收一个流或根本不接收流,这完全取决于客户端设备请求哪个流并需要将其显示在屏幕上
缺点:
带宽密集型:SFU 在服务器端是带宽密集型的,因为每个流都由服务器接收,并且 SFU 应该有 CPU 和带宽来处理所有流
在 P2p 架构中,每个参与者直接连接到另一个参与者,而不需要中间服务器
但通常需要 STUN 服务器或 TURN 服务器来穿越 NAT 并在 NAT 周围中继流
如果您正在寻找 Turn 服务器,您可以考虑计量 TURN 服务器服务提供商
Metered 是一家全球 TURN 服务器提供商,在世界各地拥有 TURN 服务器,连接到距离 TURN 服务器最近的用户,以实现最小延迟和最佳性能
缺点:
如果会议中有多个设备,每个参与者设备必须处理多个流。
这对所有客户端设备来说都是 CPU 和带宽密集型的。为此,您可以考虑计量 SFU
MCU需要服务器上大量的CPU计算和资源,在传输流时也会产生延迟,但它有一个优点,它可以大大减少客户端设备上的计算和带宽要求
以前移动设备速度很慢,网络基础设施也很差,那时候MCU就发挥了很大的作用
但如今,随着技术的进步,它可能会带来延迟增加和视频传输缓慢的糟糕体验。
因此,每个客户端对带宽和 CPU 的需求呈指数级增长
一些不具备极高带宽和 CPU 计算能力的客户端在视频通话方面遇到困难
如果客户端设备的带宽较低,则 SFU 可以向该特定设备发送低质量流,以便视频流畅运行而无需缓冲
这对于移动设备和处理能力(即 CPU 能力)较低的设备很有帮助
因此,这些设备消耗的电池电量更少,运行温度更低,并且需要更少的 CPU 时间
它们还能够下载不同质量的流或使其自动,以便 SFU 根据客户端设备带宽容量和 CPU 能力选择最佳流
同播(能够发送单个视频流的多个质量)、可扩展视频编解码器以及更多
所有通过 SFU 的数据流都是端到端加密的,这意味着没有人知道什么数据流正在通过它,甚至连 SFU 也不知道
采用DTLS、SRTP等加密协议进行端到端加密
SFU 可以记录交互,但也无法出于合规目的拦截流。
API: 使用强大的 API 进行 TURN 服务器管理。您可以执行以下操作:通过 API 添加/删除凭据、通过 API 检索每个用户/凭据和用户指标、通过 API 启用/禁用凭据、通过 API 按日期检索使用数据。
全球地理位置定位:自动将流量定向到最近的服务器,以实现尽可能低的延迟和最高的质量性能。全球任何地方的延迟均低于 50 毫秒
全球所有地区的服务器:多伦多、迈阿密、旧金山、阿姆斯特丹、伦敦、法兰克福、班加罗尔、新加坡、悉尼、首尔、达拉斯、纽约
低延迟: 低于 50 毫秒的延迟,在世界任何地方。
成本效益:即用即付定价,并提供带宽和批量折扣。
轻松管理:获取使用日志、帐户达到阈值限制时的电子邮件、账单记录以及电子邮件和电话支持。
符合标准: 符合基于 UDP、TCP、TLS 和 DTLS 的 RFC 5389、5769、5780、5766、6062、6156、5245、5768、6336、6544、5928。
多租户: 创建多个凭据并按客户或不同应用程序分开使用。获取使用日志、计费记录和阈值警报。
企业可靠性: SLA 正常运行时间为 99.999%。
企业规模:并发流量或总流量不限制。计量 TURN 服务器提供企业可扩展性
每月 5 GB 免费: 通过免费计划每月获得 5 GB 免费 TURN 服务器使用量
在端口 80 和 443 上运行
支持 TURNS + SSL 以允许通过深度数据包检测防火墙进行连接。
同时支持 TCP 和 UDP
免费无限制 STUN
以上是WebRTC SFU:完整指南。的详细内容。更多信息请关注PHP中文网其他相关文章!