Stearinrin / mediasoup-demo

mediasoup official demo application
https://demo.mediasoup.org
MIT License
0 stars 0 forks source link

mediasoup-demo v3

A demo application of mediasoup v3.

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:

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
datachannel Boolean Enable DataChannels true
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
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
numSimulcastStreams Number Number of streams for simulcast in webcam and screen sharing 3
info Boolean Display detailed information about media transmission 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

Installation

$ git clone https://github.com/versatica/mediasoup-demo.git
$ cd mediasoup-demo
$ git checkout v3
$ cd server
$ npm install
$ cp config.example.js config.js

NOTE: To be perfectly clear, "customize it for your scenario" is not something "optional". If you don't set proper values in config.js the application won't work. You must configure a tls certificate.

$ cd app
# For node 16
$ npm install
# For node 18, use legacy peer dependencies
$ npm install --legacy-peer-deps  

Run it locally

$ cd server
$ npm start
$ cd app
$ npm start

If you configured a self-signed tls certificate, and receive wss: connection errors, open the wss: url with https: protocol to accept the cert and allow wss: connections in your browser.

Deploy it in a server

$ npm install -g gulp-cli
$ cd app
$ gulp dist
$ DEBUG="*mediasoup* *ERROR* *WARN*" node server.js
$ npm run connect

Run mediasoup server with Docker

$ cd server
$ docker/build.sh
$ MEDIASOUP_ANNOUNCED_IP=192.168.1.34 ./docker/run.sh

Considerations for config.js

Authors

License

MIT