bbb-video-download

Mo, 12. Juli 2021, Lioh Möller

Standardmässig stellt weder BigBlueButton noch das Frontend Greenlight eine Möglichkeit zum Herunterladen von aufgezeichneten Videos zur Verfügung.

Diese Lücke versucht der Entwickler Tilman Moser mit dem von ihm bereitgestellten Tool namens bbb-video-download zu schliessen.

Die Anwendung läuft in einem Docker-Container und kann als sogenanntes Post-Script in BBB eingebunden werden. Der Aufruf erfolgt in diesem Falle nach der Verarbeitung der Aufzeichnungen.

Eine Installation ist in wenigen Schritten erledigt. Zunächst sollte sichergestellt werden, dass docker und docker-compose auf dem Server verfügbar sind.

Die eigentliche Installation von bbb-video-download erfolgt mit Root-Rechten.

cd /opt

## Clonen des Git-Repositories
git clone https://github.com/tilmanmoser/bbb-video-download.git
cd bbb-video-download

## Erstellen der Applikation mittels docker-compose
docker-compose build app

## Anlegen des Arbeitsverzeichnisses, so wie es in der docker-compose.yml Datei angegeben wurde
mkdir tmp
chown bigbluebutton:bigbluebutton tmp

## Hinzufügen des bigbluebutton Benutzers zur docker Systemgruppe
usermod -aG docker bigbluebutton

Das Post-Script für BigBlueButton kann daraufhin wie folgt angelegt werden:

cd /opt/bbb-video-download
export BBB_VIDEO_DOWNLOAD_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
export BBB_UID="$(cat /etc/passwd | grep bigbluebutton | cut -d: -f3)"
export BBB_GID="$(cat /etc/passwd | grep bigbluebutton | cut -d: -f4)"

## bbb v2.2:
envsubst < ./snippets/post_publish_bbb_video_download.rb.template > /usr/local/bigbluebutton/core/scripts/post_publish/a0_post_publish_bbb_video_download.rb

## bbb v2.3:
envsubst < ./snippets/bbb23_post_publish_bbb_video_download.rb.template > /usr/local/bigbluebutton/core/scripts/post_publish/a0_post_publish_bbb_video_download.rb

Dabei ist zu beachten, dass je nach verwendeter BBB-Version unterschiedliche Script-Templates zum Einsatz kommen. Daher sollte der letzte Befehl in Abhängigkeit zur genutzten BBB-Version ausgeführt werden.

Für alle neu verarbeiteten Aufzeichnungen wird nun zusätzlich eine Datei video.mp4 im Aufzeichnungsorder erstellt.

Das so zusammengestellte Video enthält:

  • Audio und Webcam-Videos
  • präsentierte Folien mit
    • Whiteboard-Aktionen (Text und Zeichnungen)
    • Cursor-Bewegungen
    • Zoomen
  • Bildschirmfreigabe
  • Untertitel

Alternativ lässt sich die Erstellung des Videos auch manuell auslösen.

cd /opt/bbb-video-download
sudo -u bigbluebutton docker-compose run --rm --user 998:998 app node index.js -i /var/bigbluebutton/published/presentation/7e941b4a35730d561f7f76db20e84dc1c20cfc7f-1625897714716 -o /var/bigbluebutton/published/presentation/7e941b4a35730d561f7f76db20e84dc1c20cfc7f-1625897714716/video.mp4

In obigem Beispiel wird das herunterladbare Video für das Meeting mit der internen Meeting-ID 7e941b4a35730d561f7f76db20e84dc1c20cfc7f-1625897714716 erzeugt.

Die Videos lassen sich auch via Script oder Cronjob generieren. Im folgenden Beispiel werden Videos für alle Aufzeichnungen erstellt welche nicht älter als 14 Tage sind und für die bisher noch keine video.mp4 Datei existiert:

for i in $(find /var/bigbluebutton/published/presentation/ -mindepth 1 -maxdepth 1 -mtime -14 -type d '!' -exec test -e "{}/video.mp4" ';' -print); do $(cd /opt/docker/bbb-video-download/; sudo -u bigbluebutton docker-compose run --rm --user 998:998 app node index.js -i $i -o $i/video.mp4) ; done;

Grundsätzlich ist zu bedenken, dass eine Verarbeitung der Aufnahmen je nach Grösse einige Zeit in Anspruch nehmen kann.

Die fertigen Videos lassen sich über eine URL in der Form aufrufen:

https://mein-bbb-server.tld/presentation/7e941b4a35730d561f7f76db20e84dc1c20cfc7f-1625897714716/video.mp4

Quelle: https://github.com/tilmanmoser/bbb-video-download

Es wurden noch keine Kommentare verfasst, sei der erste!