Mediasoup Demo
mediasoup official demo application
Install / Use
npx skills add versatica/mediasoup-demoInstalls into whichever agent you are using.
README
mediasoup-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) | |
| 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 |
| 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) | |
| disableBwe | Boolean | Disable Bandwidth Estimation (BWE). If true, no BWE logic will be run in mediasoup-worker. | false |
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
Related Skills
node-connect
385.5kDiagnose OpenClaw Android, iOS, or macOS node pairing, QR/setup code, route, auth, and connection failures.
blender-python-addon
40.5kBlender Python add-on rules for operators, panels, properties, registration, testing, and API-safe scripting
flutter-development-guidelines-cursorrules-prompt-file
40.5kCursor rules for Flutter development with MVVM architecture, Riverpod state management, Material widgets, and Dart style guidelines.
commit-push-pr
140.7kCommit, push, and open a PR
