# versatica/mediasoup

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/versatica-mediasoup).**

7,146 stars · 1,222 forks · C++ · isc

## Links

- GitHub: https://github.com/versatica/mediasoup
- Homepage: https://mediasoup.org
- awesome-repositories: https://awesome-repositories.com/repository/versatica-mediasoup.md

## Topics

`c-plus-plus` `nodejs` `rust` `server-side` `sfu` `webrtc`

## Description

Mediasoup is a selective forwarding unit used for real-time media routing. It enables the development of low-latency audio and video communication systems by routing streams between participants without transcoding.

The project provides embedded media routing logic that can be integrated directly into an application. It supports simulcast and quality layering, allowing the system to adapt resolution and bitrate based on real-time bandwidth estimations to maintain connection stability.

The capability surface includes media track management for audio, video, and screen capture, as well as bidirectional data exchange via SCTP channels. It handles connection negotiation and secure session establishment across diverse platforms and browsers using WebRTC and RTP transport.

The system also includes observability tools for tracking real-time stream statistics and active speaker data.

## Tags

### Graphics & Multimedia

- [Realtime Media Routing](https://awesome-repositories.com/f/graphics-multimedia/streaming-distribution/streaming-broadcasting/media-streaming/stream-routing/realtime-media-routing.md) — Provides a library for embedding low-latency real-time media routing logic directly into applications. ([source](https://mediasoup.org/))
- [Media Distribution Networks](https://awesome-repositories.com/f/graphics-multimedia/media-distribution-networks.md) — Efficiently distributes media from a single producer to many consumers to optimize network bandwidth. ([source](https://mediasoup.org/documentation/publications/))
- [Media Track Management](https://awesome-repositories.com/f/graphics-multimedia/media-track-management.md) — Provides comprehensive controls for sending, receiving, and managing individual audio and video tracks between participants. ([source](https://mediasoup.org/documentation/examples/))
- [Simulcast Controllers](https://awesome-repositories.com/f/graphics-multimedia/streaming-distribution/streaming-broadcasting/media-streaming/simulcast-controllers.md) — Supports simulcast controllers to send multiple quality layers of a stream for adaptive bandwidth management.
- [Adaptive Quality Adjustments](https://awesome-repositories.com/f/graphics-multimedia/adaptive-quality-adjustments.md) — Optimizes stream resolution and bitrate dynamically using quality layers and bandwidth estimation. ([source](https://mediasoup.org/))
- [Spatial and Temporal Layering](https://awesome-repositories.com/f/graphics-multimedia/streaming-distribution/streaming-broadcasting/media-streaming/spatial-and-temporal-layering.md) — Allows requesting specific spatial or temporal layers of a media stream to balance bandwidth and visual quality. ([source](https://mediasoup.org/documentation/overview/))

### Networking & Communication

- [Low-Latency Streaming](https://awesome-repositories.com/f/networking-communication/low-latency-streaming.md) — Implements a selective forwarding unit to relay audio and video with minimal latency using WebRTC. ([source](https://cdn.jsdelivr.net/gh/versatica/mediasoup@v3/README.md))
- [Adaptive Bitrate Controllers](https://awesome-repositories.com/f/networking-communication/adaptive-bitrate-controllers.md) — Dynamically adjusts media resolution and bitrate based on real-time network congestion metrics.
- [Connection Handshake Protocols](https://awesome-repositories.com/f/networking-communication/connection-handshake-protocols.md) — Handles the complex signaling and handshake process required to establish stable media connections. ([source](https://mediasoup.org/documentation/v2/))
- [Selective Forwarding Units](https://awesome-repositories.com/f/networking-communication/ip-forwarding/selective-forwarding-units.md) — Functions as a selective forwarding unit that optimizes bandwidth by deciding which streams to forward to specific participants.
- [Network Transport Protocols](https://awesome-repositories.com/f/networking-communication/network-transport-protocols.md) — Provides optimized network transport layers for managing multiple media tracks over secure sessions.
- [Connectivity Establishment](https://awesome-repositories.com/f/networking-communication/peer-to-peer-clients/connectivity-establishment.md) — Facilitates the exchange of RTP and SCTP parameters to establish secure peer-to-peer media sessions. ([source](https://mediasoup.org/documentation/v3/))
- [Real-Time Media Transport](https://awesome-repositories.com/f/networking-communication/real-time-media-transport.md) — Implements low-latency transport of audio and video streams using the Real-time Transport Protocol (RTP).
- [Video Conferencing Systems](https://awesome-repositories.com/f/networking-communication/video-conferencing-systems.md) — Supports the creation of multi-party video conferencing systems where users share audio and video tracks.
- [WebRTC Media Orchestration](https://awesome-repositories.com/f/networking-communication/webrtc-media-orchestration.md) — Provides the orchestration layer for managing low-latency audio and video streaming using WebRTC.
- [Bandwidth Management](https://awesome-repositories.com/f/networking-communication/bandwidth-management.md) — Adjusts video resolution and bitrate based on real-time bandwidth estimations to prevent playback lag. ([source](https://cdn.jsdelivr.net/gh/versatica/mediasoup@v3/README.md))
- [Unified Media APIs](https://awesome-repositories.com/f/networking-communication/cross-platform-clients/unified-media-apis.md) — Provides a unified API to interface with browsers and various devices for transmitting media streams. ([source](https://mediasoup.org/))
- [Custom Data Channels](https://awesome-repositories.com/f/networking-communication/custom-data-channels.md) — Enables bidirectional exchange of arbitrary data between clients and servers via dedicated data channels. ([source](https://mediasoup.org/documentation/v3/))
- [Multi-Stream Transport Management](https://awesome-repositories.com/f/networking-communication/multi-stream-transport-management.md) — Transports multiple audio and video streams over a single connection to improve overall network efficiency. ([source](https://cdn.jsdelivr.net/gh/versatica/mediasoup@v3/README.md))
- [Peer-to-Peer Data Exchange](https://awesome-repositories.com/f/networking-communication/peer-to-peer-data-exchange.md) — Allows the transmission of non-media data packets between peers over secure network connections. ([source](https://cdn.jsdelivr.net/gh/versatica/mediasoup@v3/README.md))
- [SCTP Transmitters](https://awesome-repositories.com/f/networking-communication/streaming-data-protocols/sctp-transmitters.md) — Utilizes the Stream Control Transmission Protocol (SCTP) for reliable transmission of non-media data channels.

### Web Development

- [JSON Interfaces](https://awesome-repositories.com/f/web-development/json-apis/json-interfaces.md) — Uses a structured JSON interface for negotiating media parameters and connection handshakes between clients and servers.
- [Real-Time Media Servers](https://awesome-repositories.com/f/web-development/webrtc-configurations/real-time-media-servers.md) — Acts as a real-time media server that forwards audio and video streams between multiple participants. ([source](https://mediasoup.org/))
- [Real-Time Data Pushing](https://awesome-repositories.com/f/web-development/websocket-integrations/real-time-data-pushing.md) — Provides bidirectional channels for sending real-time data messages to synchronize application state.

### Data & Databases

- [Media Stream Statistics](https://awesome-repositories.com/f/data-databases/data-processing-pipelines/stream-processing-systems/data-streaming/real-time-stream-monitors/media-stream-statistics.md) — Tracks and displays performance metrics and active speaker data for all media participants in a session. ([source](https://mediasoup.org/documentation/examples/))

### Development Tools & Productivity

- [Screen Sharing](https://awesome-repositories.com/f/development-tools-productivity/screen-capture-tools/screen-sharing.md) — Supports sharing a user's screen as a media track to distribute visual content to other session participants. ([source](https://mediasoup.org/documentation/examples/))

### DevOps & Infrastructure

- [Worker Process Isolation](https://awesome-repositories.com/f/devops-infrastructure/polling-based-worker-execution/worker-process-isolation.md) — Implements native C++ worker processes to isolate heavy media processing from the main JavaScript event loop.
