936363b310
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. |
||
---|---|---|
.github | ||
akka-bbb-apps | ||
akka-bbb-fsesl | ||
bbb-common-message | ||
bbb-common-web | ||
bbb-export-annotations | ||
bbb-fsesl-client | ||
bbb-graphql-actions | ||
bbb-graphql-client-test | ||
bbb-graphql-middleware | ||
bbb-graphql-server | ||
bbb-learning-dashboard | ||
bbb-libreoffice | ||
bbb-livekit | ||
bbb-recording-imex | ||
bbb-voice-conference/config/freeswitch | ||
bigbluebutton-config | ||
bigbluebutton-html5 | ||
bigbluebutton-tests | ||
bigbluebutton-web | ||
build | ||
docs | ||
labs/stress-testing | ||
record-and-playback | ||
scripts/code-review | ||
.gitignore | ||
.gitlab-ci.yml | ||
.nvmrc | ||
bbb-etherpad.placeholder.sh | ||
bbb-pads.placeholder.sh | ||
bbb-playback.placeholder.sh | ||
bbb-presentation-video.placeholder.sh | ||
bbb-transcription-controller.placeholder.sh | ||
bbb-webhooks.placeholder.sh | ||
bbb-webrtc-recorder.placeholder.sh | ||
bbb-webrtc-sfu.placeholder.sh | ||
freeswitch.placeholder.sh | ||
LICENSE | ||
README.md | ||
SECURITY.md | ||
transifex.yml |
BigBlueButton
BigBlueButton is an open-source virtual classroom designed to help teachers teach and learners learn.
BigBlueButton supports real-time sharing of audio, video, slides (with whiteboard annotations), chat, and the screen. Instructors can engage remote students with polling, emojis, multi-user whiteboards, shared notes, and breakout rooms. During the session, BigBlueButton generates analytics that are visible to moderators in the Learning Analytics Dashboard.
Presenters can record and playback content for later sharing with others.
We designed BigBlueButton for online learning, it can be used for many other applications as well. The educational use cases for BigBlueButton are
- Online tutoring (one-to-one)
- Flipped classrooms (recording content ahead of your session)
- Group collaboration (many-to-many)
- Online classes (one-to-many)
The latest version is BigBlueButton 2.7. You can install BigBlueButton 2.6 on Ubuntu 20.04 using bbb-install.sh within 30 minutes (or your money back 😉).
For full technical documentation of BigBlueButton -- including architecture, features, API, and GreenLight (the default front-end) -- see https://docs.bigbluebutton.org/.
BigBlueButton and the BigBlueButton Logo are trademarks of BigBlueButton Inc.