Hi there,
just wanted to quickly present a little tool I've been working on for a few days now.
A lot of people are using BigBlueButton for public conferences and try to create livestreams so a bigger audience can watch. For now that's basically done using a (virtualized) webbrowser and a screen capture.
There isn't much control over what's shown on stream and it takes up a lot of cpu and memory that way.
I decided to write my own tool for this. The goals were to get rid of the browser completely, but still support audio, webcams, screenshares and even the whiteboard. I also wanted to make this compatible with completely unmodified servers.
I got it working.
For now it's still WIP but you can find the (actually working!) code and a link to a demo video here:
It's based around gstreamer. Audio/Webcams/Screenshare are received using WebRTC, the presentation is rendered internally using Cairo and RSVG and reusing my old slide-exporter code
https://github.com/lukas2511/bbb-stuff with modifications for live-rendering. It's streaming to a user-defined rtmp endpoint but that's easily modified for e.g. SRT or whatever gstreamer supports.
Internally it takes a join_url variable with the BBB API join request. For testing it tries to enter a conference using greenlight but you could easily change that to provide the join request in any other way.
Screenshare/Whiteboard are switched automatically like in the browser, camera view is currently following active voice participants.
There currently are four supported scenes which can be switched via "!view <sbs|pip|pres|cam>" chat messages.
- Side-By-Side (making basically anything visible at the same time and allowing a nice background image with logo/conference name to be embedded)
- Picture-In-Picture (cam overlayed on presentation)
- Fullscreen presentation
- Fullscreen cam
I'm planning to move those chat commands to a private chat and implement a little browser extension / userscript to show actual buttons for quick scene-switching on the BBB UI.
I've tested it with the newest BBB 2.2 release and it seems to be working fine. I'd guess that most of the underlying stuff didn't change with 2.3 so it should probably be easy to support that too.
Hope you have some use for this, I'd love to have some beta testers and feedback on the project.
Lukas