Skip to content

Back of the envelope calculations: mediasoup

Paulo Lanzarin edited this page Sep 22, 2021 · 16 revisions

I've assembled a quick cheatsheet for the curious about running mediasoup (non dockerized environment)

  1. git clone https://github.com/bigbluebutton/bbb-webrtc-sfu.git
  2. npm install -D
  3. cp /usr/local/bigbluebutton/bbb-webrtc-sfu/config/default.yml <CLONE_DIR>/bbb-webrtc-sfu/config/
    • Or set up a new default.yml on your own if you know your way around it
  4. Set https://github.com/bigbluebutton/bbb-webrtc-sfu/blob/5835e76748ede4c328becf78d42c99fc3410f186/config/default.example.yml#L309-L310
    • Server: if NAT, listenIp: 0.0.0.0, announcedIp: pub-IP
    • Server: if ~NAT, listenIp: pub-IP
    • It's an array, so you can set an ip: <IPv6> entry as well
  5. https://github.com/bigbluebutton/bbb-webrtc-sfu/blob/5835e76748ede4c328becf78d42c99fc3410f186/config/default.example.yml#L329-L330
    • Same as step 4 but single stack (just used internally, listen only/mic interop stuff, so prefer IPv4)
  6. Instruct webrtc-sfu to load the mediasoup adapter: https://github.com/bigbluebutton/bbb-webrtc-sfu/blob/5835e76748ede4c328becf78d42c99fc3410f186/config/default.example.yml#L135-L139
    • Add a new entry: with path: mediasoup/mediasoup-adapter.js and name: mediasoup
  7. At bbb-html5's config:
  8. Steps 1-7 should get you ready to use mediasoup, but the default is still Kurento. Bring the system's webrtc-sfu down (systemctl stop bbb-webrtc-sfu), start your local clone (npm start).
  9. Follow https://github.com/bigbluebutton/bigbluebutton/pull/13112 to control mediasoup usage per meeting (metadata) or server (settings.yml)
Clone this wiki locally