學習使用Mediasoup,最好的方式自然是先看官方文檔,以下將對mediasoup官網文檔做簡要翻譯。
https://mediasoup.org/documentation/overview/
概述:
一個SFU接收來自端點的音頻流和視頻流,然后將它們轉發給其他每一個端。每個接收端可以選擇其接收的流和spatial/temporal 層。相比混合器或者MCU,該設計具有更好的性能,更高的吞吐量和更少的延遲。它具有高度的可擴展性,並且由於它不會轉碼或混合媒體,因此所需資源少得多。
由於端點可以分別獲取其他端點的媒體,因此它們可以具有個性化的布局,可選擇要渲染的流以及如何顯示它們。
設計目標
mediasoup and its client side libraries are designed to accomplish with the following goals:
- Be a SFU (Selective Forwarding Unit).
- Support both WebRTC and plain RTP input and output.
- Be a Node.js module in server side.
- Be a tiny JavaScript and C++ libraries in client side.
- Be minimalist: just handle the media layer.
- Be signaling agnostic: do not mandate any signaling protocol.
- Be super low level API.
- Support all existing WebRTC endpoints.
- Enable integration with well known multimedia libraries/tools.
用例
mediasoup and its client side libraries provide a super low level API. They are intended to enable different use cases and scenarios, without any constraint or assumption. Some of these use cases are:
- Group video chat applications.
- One-to-many (or few-to-many) broadcasting applications in real-time.
- RTP streaming.