versatica/mediasoup-demo
versatica/mediasoup-demo has 1,275 GitHub stars and 673 forks. Star changes are not measured yet. Last checked 2026-11-09 07:09 UTC. Last push 2026-10-30.
mediasoup official demo application
Measured star growth
- in 24h
- Update delayed
- in 7 days
- Update delayed
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
Originalmediasoup-demo v3
A demo application of mediasoup.
Try it online at https://v3demo.mediasoup.org
Resources
- mediasoup website and documentation: mediasoup.org
- mediasoup support forum: mediasoup.discourse.group
Configuration via query parameters
By adding query parameters into the URL you can set certain settings of the application:
| Parameter | Type | Description | Default Value |
|---|---|---|---|
roomId |
String | Id of the room | Autogenerated |
displayName |
String | Display name of your participant | Autogenerated |
handlerName |
String | Handler name of the mediasoup-client Device instance |
Autodetected |
forceTcp |
Boolean | Force RTC (audio/video/datachannel) over TCP instead of UDP | false |
produce |
Boolean | Enable sending of audio/video | true |
consume |
Boolean | Enable reception of audio/video | true |
mic |
Boolean | Enable microphone by default | true |
webcam |
Boolean | Enable webcam by default | undefined (it respects stored settings, initially true) |
datachannel |
Boolean | Enable DataChannels | true |
preferLocalCodecsOrder |
Boolean | Prefer the codecs order of the browser instead of the codecs order configured in the server | false |
forcePCMA |
Boolean | Force PCMA codec for microphone | false |
forceVP8 |
Boolean | Force VP8 codec for webcam and screen sharing | false |
forceH264 |
Boolean | Force H264 codec for webcam and screen sharing | false |
forceVP9 |
Boolean | Force VP9 codec for webcam and screen sharing | false |
forceAV1 |
Boolean | Force AV1 codec for webcam and screen sharing | false |
enableWebcamLayers |
Boolean | Enable simulcast or SVC for webcam | true |
enableSharingLayers |
Boolean | Enable simulcast or SVC for screen sharing | true |
webcamScalabilityMode |
String | scalabilityMode for webcam |
'L1T3' for VP8/H264 (in each simulcast encoding), 'L3T3_KEY' for VP9 |
sharingScalabilityMode |
String | scalabilityMode for screen sharing |
'L1T3' for VP8/H264 (in each simulcast encoding), 'L3T3' for VP9 |
numWebcamSimulcastStreams |
Number | Number of streams for simulcast in webcam | 3 |
numSharingSimulcastStreams |
Number | Number of streams for simulcast in screen sharing | 3 |
videoContentHint |
String | Value to apply to track.contentHint in produced video tracks (for webcam and screen sharing) | '' |
screenSharing4K |
Boolean | Use 4K resolution for screen sharing | false |
info |
Boolean | Display detailed information about media transmission over each peer | false |
stats |
Boolean | Display detailed information about WebRTC stats | false |
faceDetection |
Boolean | Run face detection | false |
externalVideo |
Boolean | Send an external video instead of local webcam | false |
e2eKey |
String | Key for media E2E encryption/decryption (just works with some OPUS and VP8 codecs) | |
throttleSecret |
String | Secret to enable network throttling (the server must run with a NETWORK_THROTTLE_SECRET environment variable with same value |
|
unlimitedRoomSecret |
String | Secret to enable unlimited room (otherwise rooms are limited to 10 minutes, the server must run with a UNLIMITED_ROOM_SECRET environment variable with same value |
|
consumerReplicas |
Number | Create artificial replicas of yourself and receive their audio and video (not displayed in the UI) | 0 |
usePipeTransports |
Boolean | If true, each room will use separate mediasoup routers to produce and consume and will communicate them with pipe transports |
false |
disableBwe |
Boolean | Disable Bandwidth Estimation (BWE). If true, no BWE logic will be run in mediasoup-worker. |
false |
removeBweExtensions |
Boolean | Remove "transport-wide-cc-01" and "abs-send-time" RTP header extensions and "transport-cc" and "goog-remb" RTCP feedback from router RTP capabilities before loading the mediasoup-client Device |
false |
enableAbsCaptureTime |
Boolean | Enable "abs-capture-time" RTP extension | false |
disableDD |
Boolean | Remove "dependency-descriptor" RTP header extension from router RTP capabilities before loading the mediasoup-client Device |
false |
rtcstatsUrl |
String | If present, Websocket URL to connect to an rtcstats-server, including token (it overrides the providers.rtcstatsUrl value in config.mjs in the server) |
Installation
- Clone the project:
git clone https://github.com/versatica/mediasoup-demo.git
cd mediasoup-demo
Ensure you have installed the dependencies required by mediasoup to build.
Set up the mediasoup-demo server, read server/README.md.
Set up the mediasoup-demo browser app:
cd app
npm install --legacy-peer-deps
Authors
License
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
561,398 starspublic-apis/public-apis
A collective list of free APIs
497,679 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
447,495 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,261 stars