Commit Graph

19 Commits

Author SHA1 Message Date
Paulo Lanzarin
89209fc7ee
feat(audio): dedicate mediasoup workers for audio streams
mediasoup workers are currently for general use,
regardless of stream type. This makes it difficult to give
different scheduling priorities for audio workers or prevent
noise from video streams, when our goal is to give higher
priority to audio in all ends of the system.

Set `mediasoup.dedicatedMediaTypeWorkers.audio` to `auto`. This will spin up 
`ceil((min(nproc, 32) * 0.8) + (max(0, nproc - 32))` mediasoup workers 
dedicated to handling audio streams.
2024-08-20 15:06:32 -03:00
Paulo Lanzarin
936363b310 feat(bbb-webrtc-sfu): enable new mediasoup balancing strategies
We currently use a simple producer round-robin algorithm to distribute
elements between mediasoup workers. This works for most scenarios but
fails in some edge cases, such as:
  - 1-to-N scenarios where N >= ~600-800 (sample number, varies by
  single-core performance). This is due to subscribers being pinned to a
  producer's worker.
  - Poor distribution results from round-robin.

Enable the following new features in bbb-webrtc-sfu via after-install by
default:
  - `mediasoup.workerBalancing.strategy: least-loaded`: Replaces
  round-robin with load scoring. Workers are selected based on which is
  least loaded.
  - `mediasoup.enableWorkerTransposing: true`: Allows media streams to be
  bridged between workers through internal RTP pipes. This, along with a
  per-worker stream limit, enables seamless offloading of streams between
  workers (whether publishers or subscribers). The per-worker stream limit
  is still under review.

These changes should address the issues mentioned. They are enabled via
after-install because the SFU version is shared with previous BBB versions
where these features are not desirable yet.
2024-08-01 18:21:07 +00:00
Anton Georgiev
fabcb7a3ef
build: Clean up sfu after-install (#20595) 2024-06-27 19:24:37 -04:00
Paulo Lanzarin
a3759f681f
build(bbb-webrtc-sfu): use bbb-webrtc-recorder, drop kurento from config
- Set bbb-webrtc-recorder as the default `recordingAdapter` in bbb-webrtc-sfu by default
  - Set `kurento` in SFU's config to an empty array; Kurento isn't provided by 2.8+ by default
2023-08-22 17:55:34 -03:00
Anton Georgiev
a3f07f700f made bbb-graphql-server dep of bbb-html again 2023-07-20 08:18:58 -04:00
Anton Georgiev
543be9e44e sfu after-install to not mention kurento 2023-07-19 20:31:02 -04:00
Anton Georgiev
334a83a1b2 change yq syntax in sfu after-install 2023-07-19 10:24:52 -04:00
Anton Georgiev
ff086191ae
build: fix mismatched quote 2023-06-21 09:14:32 -04:00
Anton Georgiev
3b5062ed16
build: resetting mcs-address from localhost to 127.0.01 2023-06-21 08:58:23 -04:00
Anton Georgiev
3de540f0ab build: swap bionic with focal 2022-03-14 19:04:23 +00:00
Anton Georgiev
8674cf7615 !build: remove config storing to /tmp when upgrading a package
Remaining, to be handles separately:
bbb-html5 before-remove and after-install -- sip.nginx needs to be
handled in bbb-conf
bbb-freeswitch-core -- /tmp/vars xml, etc. -- not sure how to handle
2022-02-27 19:08:25 +00:00
Anton Georgiev
9c2f85ceea
Merge pull request #13479 from prlanzarin/u24-ferrofluid
build: set mediasoup IPs in webrtc-sfu post install
2021-10-14 09:28:02 -04:00
Anton Georgiev
164258274b
Merge pull request #13451 from schrd/bbb-webrtc-package-size
Update bbb-webrtc-sfu packaging to include mediasoup
2021-10-14 09:24:21 -04:00
Anton Georgiev
906b4253de
Merge pull request #13403 from prlanzarin/u24-parasole
chore(build): bbb-conf and build script changes to handle /var/mediasoup
2021-10-14 09:11:14 -04:00
prlanzarin
1a439a371c chore(build): make sure /var/mediasoup is created (webrtc-sfu) 2021-10-13 14:37:21 +00:00
prlanzarin
7e49069add build: set mediasoup IPs in webrtc-sfu post install 2021-10-13 13:39:14 +00:00
Daniel Schreiber
c5f351d238 Update bbb-webrtc-sfu packaging to include mediasoup and ...
... drop build artifacts from compiling mediasoup. This reduces package
size from ~ 54 MB to ~ 12 MB.

Additionally this drops the `npm rebuild` command from the after-install
script. It should not be necessary to recompile stuff during
installation. To ensure a clean `node_modules` directory, it will be
cleaned in the before-install script.
2021-10-08 22:54:57 +02:00
prlanzarin
ca8df23002 refactor(build): webrtc-sfu`s localIpAddress is defunct 2021-10-06 22:53:04 +00:00
Johannes Barthel
6c8525ef54 initial public version 2021-08-13 12:53:18 +02:00