mediasoup-demo v3

August 14, 2026 · View on GitHub

A demo application of mediasoup.

Try it online at https://v3demo.mediasoup.org

Resources

Configuration via query parameters

By adding query parameters into the URL you can set certain settings of the application:

ParameterTypeDescriptionDefault Value
roomIdStringId of the roomAutogenerated
displayNameStringDisplay name of your participantAutogenerated
handlerNameStringHandler name of the mediasoup-client Device instanceAutodetected
forceTcpBooleanForce RTC (audio/video/datachannel) over TCP instead of UDPfalse
produceBooleanEnable sending of audio/videotrue
consumeBooleanEnable reception of audio/videotrue
micBooleanEnable microphone by defaulttrue
webcamBooleanEnable webcam by defaultundefined (it respects stored settings, initially true)
datachannelBooleanEnable DataChannelstrue
preferLocalCodecsOrderBooleanPrefer the codecs order of the browser instead of the codecs order configured in the serverfalse
forcePCMABooleanForce PCMA codec for microphonefalse
forceVP8BooleanForce VP8 codec for webcam and screen sharingfalse
forceH264BooleanForce H264 codec for webcam and screen sharingfalse
forceVP9BooleanForce VP9 codec for webcam and screen sharingfalse
forceAV1BooleanForce AV1 codec for webcam and screen sharingfalse
enableWebcamLayersBooleanEnable simulcast or SVC for webcamtrue
enableSharingLayersBooleanEnable simulcast or SVC for screen sharingtrue
webcamScalabilityModeStringscalabilityMode for webcam'L1T3' for VP8/H264 (in each simulcast encoding), 'L3T3_KEY' for VP9
sharingScalabilityModeStringscalabilityMode for screen sharing'L1T3' for VP8/H264 (in each simulcast encoding), 'L3T3' for VP9
numWebcamSimulcastStreamsNumberNumber of streams for simulcast in webcam3
numSharingSimulcastStreamsNumberNumber of streams for simulcast in screen sharing3
videoContentHintStringValue to apply to track.contentHint in produced video tracks (for webcam and screen sharing)''
screenSharing4KBooleanUse 4K resolution for screen sharingfalse
infoBooleanDisplay detailed information about media transmission over each peerfalse
statsBooleanDisplay detailed information about WebRTC statsfalse
faceDetectionBooleanRun face detectionfalse
externalVideoBooleanSend an external video instead of local webcamfalse
e2eKeyStringKey for media E2E encryption/decryption (just works with some OPUS and VP8 codecs)
consumerReplicasNumberCreate artificial replicas of yourself and receive their audio and video (not displayed in the UI)0
usePipeTransportsBooleanIf true, each room will use separate mediasoup routers to produce and consume and will communicate them with pipe transportsfalse
disableBweBooleanDisable Bandwidth Estimation (BWE). If true, no BWE logic will be run in mediasoup-worker.false
absCaptureTimeForAudioBooleanEnable "abs-capture-time" RTP extension for audiofalse
absCaptureTimeForVideoBooleanEnable "abs-capture-time" RTP extension for videofalse
rtcstatsUrlStringIf 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

ISC