A demo application of mediasoup.
Try it online at https://v3demo.mediasoup.org
- mediasoup website and documentation: mediasoup.org
- mediasoup support forum: mediasoup.discourse.group
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 |
- 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