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.
 
 
 
 
 
 
Go to file
Iñaki Baz Castillo b6e7732715 update npm deps 2 days ago
.github WorkerSettings: Add disableLiburing option (enable_liburing in Rust) (#1442) 1 month ago
art flatbuffers (#1064) 10 months ago
doc CI: Run worker tests with Address Sanitizer (only Linux) (disabled for now) (#1416) 3 months ago
node/src Node: Fix types in mediasoup.types are empty/undefined (#1453) 1 week ago
rust update mediasoup-rust versions 1 month ago
worker DtlsTransport: remove SSL_CTX_set_read_ahead() call which is noop in DTLS 2 weeks ago
.gitignore Use Prettier (#1302) 8 months ago
.npmrc Node: Remove compiled JavaScript from repository and compile TypeScript code on NPM `prepare` script on demand when installed via git (#954) 2 years ago
.prettierrc.json Update deps 8 months ago
CHANGELOG.md 3.14.14 1 week ago
CONTRIBUTING.md Improvements ro Prettier and ESLint (#1305) 8 months ago
Cargo.lock Replace support template message with a link (#1406) 3 months ago
Cargo.toml flatbuffers (#1064) 10 months ago
LICENSE Update Copyright year (must be the creation/registration/publication date) 5 years ago
README.md Improvements ro Prettier and ESLint (#1305) 8 months ago
eslint.config.mjs Update to ESLint 9 (#1436) 1 month ago
npm-scripts.mjs Update to ESLint 9 (#1436) 1 month ago
package-lock.json update npm deps 2 days ago
package.json update npm deps 2 days ago
rust-toolchain.toml refactor: make `hex_as_bytes` DRY (#1409) 3 months ago
tsconfig.json Update to ESLint 9 (#1436) 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

Sponsor

You can support mediasoup by sponsoring it. Thanks!

License

ISC