How to Download a BigBlueButton Presentation

Reading time ~3 minutes

How to Download a BigBlueButton Presentation

How to Download a BigBlueButton Presentation

BigBlueButton is a web conferencing system designed for online learning. One thing that I was missing on it was downloading a recorded presentation. In this blog I show a relatively easy hack for doing it, as well as other available options.

1 The problem

Although BBB is very easy to install and use, surprisingly it does not provide an easy way for downloading a recorded presentation. People would expect a button "Download" which they can click in order to download a video of the recorded presentation, which then can be uploaded to YouTube, FB, etc. There is even a quite old and still unresolved issue about this: https://github.com/bigbluebutton/bigbluebutton/issues/1969

Why is it so difficult? It turns out that BBB records separately the screenshare, the webcam (video+microphone), the slides, the comments etc. Since different presentations use these features in different ways, it is difficult to combine them in a single video that is suitable for all the cases.

For example, in my presentations/webinars I use only the screenshare and the voice from the webcams. It is not so difficult to combine these two in a single video, but this combination would not be suitable for another presentation that uses the slides as well. On the other hand, a video producing procedure that takes into account slides would not be suitable for my presentations.

So, there is no single way for producing a video that can be suitable for all the cases. Making a customizable and flexible video generation process that could cover all the cases seems to be difficult, and, as we will see later, maybe not necessary.

2 A simple hack for screenshare + webcam-audio

If the presentation has only the screenshare and the voice (audio) from the webcams, it is not so difficult to download these two recordings manually and to merge them into a video. It can be done like this:

  1. Open the playback of the recording and notice the meetingId on the URL. Something like meetingId=3edbe3939d18067a08299b9a0a9b8d590af2bb85-1588419273427. Copy it and paste it to the terminal:
    meetingId=3edbe3939d18067a08299b9a0a9b8d590af2bb85-1588419273427
    echo $meetingId
    
  2. Download the webcam and desktop-share recordings:
    mkdir my-presentation
    cd my-presentation/
    wget "https://my-bbb.org/presentation/$meetingId/video/webcams.webm"
    wget "https://my-bbb.org/presentation/$meetingId/deskshare/deskshare.webm"
    
  3. Merge them with ffmpeg:
    ffmpeg -i webcams.webm -i deskshare.webm -c copy presentation.webm
    

    You should first make sure that ffmpeg is installed (like: apt install ffmpeg).

3 Merging also the video from webcams

If the webcams have also video recordings and we want to merge them as well, we can try to scale it down and place it (embed) on a corner of the screenshare video.

Try commands like this:

ffmpeg -i webcams.webm -t 00:00:10 -c copy webcams1.webm
ffmpeg -i deskshare.webm -t 00:00:10 -c copy deskshare1.webm

ffmpeg -i deskshare1.webm -vf "movie=webcams1.webm, scale=300:-1 [inner]; \
           [in][inner] overlay=1000:500 [out]" presentation1.webm
ffplay presentation1.webm

Play with the numbers 300, 1000 and 500 until you get it right. Finally do this:

ffmpeg -i deskshare.webm -vf "movie=webcams.webm, scale=300:-1 [inner]; \
           [in][inner] overlay=1000:500 [out]" tmp.webm
ffmpeg -i tmp.webm -i webcams.webm -c copy presentation.webm

This blog page contains more details and options: https://www.daniel-mitchell.com/blog/video-in-a-video-ffmpeg/

Another solution is to use any video editing tools, like https://www.openshot.org/, to do the combination of different video recordings into a single one. This is in general much more flexible than using the ffmpeg command, but requires more work. It also allows combining the slides etc.

Note: By the way, the slides are saved by BBB as PNG files.

4 Other scripts and solutions

There is a Python script that generates a downloadable MP4 video that includes only webcams, audio and screenshares, but no presentation, no chat window and no whiteboard: https://github.com/ruess/bbb-download This is supposed to be installed on the BBB server and it generates the downloadable video on the server.

Note: I have tried it and it does not seem to work properly. Maybe it needs some small fixing.

There is also this solution which records the player of BBB while it plays a recorded session: https://github.com/jibon57/bbb-recorder

It should be installed and used on the client (not on the server). It basically opens the BBB recording link on a google-chrome tab on background and generates a video recording of the player while it is playing the recording. So, the resulting video includes everything: the presentation, webcams, drawing, chat, etc.

Date: 2020-06-07

Author: Dashamir Hoxha

Created: 2020-06-07 Sun 19:11

Emacs 25.2.2 (Org mode 8.2.10)

Validate

Using WireGuard VPN

Using WireGuard VPNUsing WireGuard VPNTable of Contents1. Introduction2. Installing and using a WireGuard server2.1. Install Docker and d...… Continue reading

Distributed Computer Lab

Published on November 08, 2020

Accessing Computer Labs Remotely

Published on November 05, 2020