当前位置: 首页 > 工具软件 > mediasoup > 使用案例 >

mediasoup 集群_mediasoup介绍

谯皓君
2023-12-01

概述

mediasoup是SFU模式的媒体服务器。SFU(Selective Forwarding Unit)模式是从房间中的每个参与者接收音频和视频流,并将其转发给其他人(终端发送一个并接收很多)。 与mixer或MCU(Multipoint Control Unit)相比,这种设计有更好的性能,更高的吞吐量和更少的延迟。 它具有高度的可扩展性,因为它不会转码或混合媒体,所以需要更少的资源。

由于终端分别获取其他参与者的媒体,所以他们可以有一个个性化的布局,并能选择要渲染的流显示。有关SFU体系结构的详细信息可以在RFC 7667“RTP拓扑”部分3.7中找到。

mediasoup 目标成为WebRTC SFU(Selective Forwarding Unit)。

在服务器端是一个Node.js模块。

在客户端是一个小小的SDK。

极简主义: 仅仅处理媒体层。

在客户端和服务器端使用流行的ECMAScript 6 API。

支持所有现有的WebRTC和ORTC浏览器。

不要求特定的信令协议。

Server side

与其他现有的SFU实现不同,mediasoup不是一个独立的服务器,而是一个可以集成到一个更大的应用程序中的Node.js模块:

const mediasoup = require("mediasoup");

因此,在内部,媒体可以分解为两个分离的组件:一个为Node.js提供现代ECMAScript 6 API的JavaScript层,

处理媒体层(ICE,DTLS,RTP等)的一组C/C ++子进程。

两个组件通过进程间通信相互通信。 但是,从开发人员的角度来看,应用程序应该只关心JavaScript API集成。

FeaturesECMAScript 6 API。

多个会议室与多个参与者。

多码流:通过ICE + DTLS传输多个音频/视频流。

IPv6准备就绪。

基于UDP和TCP之上的ICE / DTLS / RTP / RTCP协议。

用于选择所需层的RTP同播支持API。

通过REMB进行拥塞控制。

功能非常强大(基于libuv之上的子进程)。

Client side

mediasoup-client 是构建JavaScript客户端应用程序的SDK。 这是一个小型库,公开了强大的跨浏览器API,可让客户端应用程序加入媒体室并管理音频/视频流。

mediasoup-client支持当前所有的WebRTC和ORTC浏览器,包括Chrome,Firefox,Safari,Microsoft Edge和 衍生浏览器(例如Opera或任何基于Chromium的浏览器)。 在内部,mediasoup-client兼容实现了WebRTC(Plan-B或Unified-Plan)或ORTC API(如Microsoft Edge)以不同的方式处理每个浏览器。

FeaturesECMAScript 6 API。

在Chrome,Firefox,Safari,Microsoft Edge和衍生浏览器上运行。

 类似资料: