A client- and (future) server side script to enable users to download a BigBlueButton recording as a single video file.
This is still a work in progress that downloads Big Blue Button's shapes.svg
file to locally recreate the recording played in the browser as a webm
or .mp4
file.
✅ Quick export of BigBlueButton presentations containing audio, slides and whiteboard annotations
✅ Option to render the webcams and screen sharings (deskshare) in addition to the presentation
✅ Saving annotated slides as PNG so they can be merged into a new PDF
🔜 Transition from client- to server side code
🔜 Rewrite of how annotations are rendered to fix bugs
🔜 Integration into Greenlight's UI
🔜 Conversion of annotated slides into PDF using Cairo
🔜 Support of further interactive elements such as the cursor, chat, and polls
🔜 Speed improvements
In your terminal, type
ruby presentation-render.rb "URL_OF_YOUR_BBB-RECORDING"
librsvg
ffmpeg version 4.4, compiled with --enable-librsvg
Ruby with Nokogiri, open-uri, cgi, and fileutils
Only tested and developed on macOS Big Sur so far for BBB 2.3 recordings.
The script creates an SVG frame for every timestep in the recording and uses FFmpeg's Concatenate format to render the animation as a slideshow. This is achieved by exporting the SVG frames as intermediate PNG files using librsvg
, which in turn allows the final annotated slides to be saved separately as well.
In contrast to other approaches, this script is not dependent on headless browsers, screen recorders, open source video editors... just plain Ruby to generate well-formed SVGs. Since the generated video has a variable frame rate, rendering happens blazing fast and results in small file sizes.
The end goal is to integrate this script in Greenlight's GUI with further options such as allowing the students and teachers to add webcams, screen recordings (deskshare), trim the file given start- and end times, download the annotated slides as a PDF with Cairo, choosing the desired resolution and so on.