You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
b6e7732715 | 2 days ago | |
---|---|---|
.github | 1 month ago | |
art | 10 months ago | |
doc | 3 months ago | |
node/src | 1 week ago | |
rust | 1 month ago | |
worker | 2 weeks ago | |
.gitignore | 8 months ago | |
.npmrc | 2 years ago | |
.prettierrc.json | 8 months ago | |
CHANGELOG.md | 1 week ago | |
CONTRIBUTING.md | 8 months ago | |
Cargo.lock | 3 months ago | |
Cargo.toml | 10 months ago | |
LICENSE | 5 years ago | |
README.md | 8 months ago | |
eslint.config.mjs | 1 month ago | |
npm-scripts.mjs | 1 month ago | |
package-lock.json | 2 days ago | |
package.json | 2 days ago | |
rust-toolchain.toml | 3 months ago | |
tsconfig.json | 1 month ago |
README.md
mediasoup v3
Website and Documentation
Support Forum
Design Goals
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 or Rust crate in server side.
- Be a tiny TypeScript 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.
Architecture
Use Cases
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.
Features
- ECMAScript 6/Idiomatic Rust low level API.
- Multi-stream: multiple audio/video streams over a single ICE + DTLS transport.
- IPv6 ready.
- ICE / DTLS / RTP / RTCP over UDP and TCP.
- Simulcast and SVC support.
- Congestion control.
- Sender and receiver bandwidth estimation with spatial/temporal layers distribution algorithm.
- Data message exchange (via WebRTC DataChannels, SCTP over plain UDP, and direct termination in Node.js/Rust).
- Extremely powerful (media worker thread/subprocess coded in C++ on top of libuv).
Demo Online
Try it at v3demo.mediasoup.org (source code).
Authors
Social
- Twitter: @mediasoup_sfu
Sponsor
You can support mediasoup by sponsoring it. Thanks!