A future proof, experimental WebRTC VP9 SVC SFU
Clone or download
Latest commit 14f1928 Mar 16, 2018
Failed to load latest commit information.
lib Do not dump by default Dec 29, 2017
www Update dependencies Mar 16, 2018
.gitignore Initial commit Dec 27, 2017
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md Dec 28, 2017
LICENSE Initial commit May 25, 2017
README.md Fixed typo Dec 27, 2017
index.js Update dependencies Mar 16, 2018
package-lock.json Update dependencies Mar 16, 2018
package.json Update dependencies Mar 16, 2018


Medooze SFU

A future proof, experimental WebRTC VP9 SVC SFU.


There are already several good production ready alternatives for implementing multiconferencing on webrtc, like Jitsi, Janus or SwitchRTC SFUs and even if you need more legacy support you can try our MCU. Our goal is to experiment and provide an early access to the functionalities that will be available in the near future that will improve drastically the performance and quality of multiconferencing services on WebRTC.

Due to the experimental nature of this functionalities we will only officially support Chrome Canary to be able to access the very latest functionalities available (sometimes even running behind a flag). We don't care about interporeability with other browsers (they will eventually catch up) nor SDP legacy support.


It is our goal to implement only the We intent to implement support the following features:

This is a moving target as new functionalities will be available on Chrome and some others will be removed, we will update our targets appropiatelly.

To enable Flex FEC and VP9 SVC on Chrome Canary you must use the following command line:

chrome.exe --force-fieldtrials=WebRTC-SupportVP9SVC/EnabledByFlag2SL3TL/WebRTC-FlexFEC-03/Enabled


You just need to install all the depencencies and generate the ssl certificates:

npm install 
openssl req -sha256 -days 3650 -newkey rsa:1024 -nodes -new -x509 -keyout server.key -out server.cert

If you get an error like this

gyp verb build dir attempting to create "build" dir: /usr/local/src/medooze/sfu/node_modules/medooze-media-server/build
gyp ERR! configure error
gyp ERR! stack Error: EACCES: permission denied, mkdir '/usr/local/src/medooze/sfu/node_modules/medooze-media-server/build'

You may try instead with:

npm install --unsafe-perm


In order to run the sfu just:

node index.js [ip]

where the ip is the ICE candidate ip address used for RTP media. To test a simple web client just browse to https://[ip]:8000/.