...
- bbb-recorder (https://github.com/jibon57/bbb-recorder) : un plugin, indépendant de BigBlueButton, qui permet de convertir - via un script - une présentation Web BigBlueButton en fichier vidéo. Ce plugin permet également une diffusion en direct (flux RTMP) d'un cours BigBlueButton.
- bbb-download (https://github.com/createwebinar/bbb-download) : un plugin, totalement couplé à BigBlueButton, qui convertit automatiquement les présentations Web de BigBlueButton en fichier vidéo.
- BigBlueButton-liveStreaming (https://github.com/aau-zid/BigBlueButton-liveStreaming) : un plugin, indépendant de BigBlueButton, permettant de publier en live (via RTMP) une session BigBlueButton et de l'enregistrer.
...
Au final, voici ce qui ressort de mes tests.
| bbb-recorder | bbb-download | BigBlueButton-liveStreaming | |
|---|---|---|---|
| Enregistre un cours BBB en vidéo | format webm, mp4 | peut enregistré le cours qu'il publie en live au format mkv | |
| Exporte un cours BBB en direct live | |||
| Enregistre un cours en temps réel | |||
| Indépendance vis-à-vis de BigBlueButton | peut-être installé sur n'importe quel serveur |
| peut-être installé sur n'importe quel serveur |
| Contenu de la vidéo finale | |||
| Technologies | NodeJS, xvfb, Chrome, ffmpeg, shell | Python, ruby, ffmpeg, shell | Docker, python, xvfb, ffmpeg, shell |
| Mise à jour régulière | Dernière mise à jour en 2018 | ||
| Notion de charge |
| Le fichier vidéo fait entre 2 et 4Mo par minute, en webm ou mp4 |
| ||
| Commentaires | Facilement modifiable (scripts JS pour NodeJS) | Complètement intégré à BBB (une fois un cours enregistré terminé, une vidéo - en plus de la présentation - est générée) | Il faut bien respecter l'ordre de démarrage (session BBB avant liveStreaming). |
|---|---|---|---|
| Remarques sur mes tests | Peut également publier en live le cours (publication RTMP). |
Aux vues des besoins, j'ai alors choisi bbb-recorder comme solution pour la conversion des présentations Web BigBlueButton en fichier vidéo.
Installation et configuration
Pré-requis
Techniquement, la solution repose sur le :
- Le développement d'un plugin BBB pour Pod v2
...
- ,
- L'utilisation du plugin spécifique bbb-recorder (https://github.com/jibon57/bbb-recorder).
Le fait d'exécuter le script bbb-recorder réalise les étapes suivantes :
- Lance un navigateur Chrome en arrière-plan,
- Chrome visite le lien - correspondant à la présentation Web BigBlueButton - fourni,
- Il effectue l'enregistrement d'écran sous la forme d'un fichier vidéo.
Installation de bbb-recorder sur les serveurs d'encodage
Il est nécessaire d'installer bbb-recorder sur les serveurs d'encodage.
La documentation de référence est accessible ici : https://github.com/jibon57/bbb-recorder
Pour ma part, sur les serveurs CentOS 7, voici ce qui a été réalisé.
Installation de bbb-recorder sur CentOS7
Ce plugin n'a pas besoin d'être installé sur un serveur BigBlueButton.
Installation de Chrome et des pré-requis (sous root)
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
# Install xvfb
podtest@ts-sun:~/$ yum install xorg-x11-server-Xvfb
podtest@ts-sun:~/$ wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
podtest@ts-sun:~/$ yum localinstall google-chrome-stable_current_x86_64.rpm |
Étant un serveur d'encodage, je considère que ffmpeg est déjà installé. Si besoin, il est nécessaire d'installer ffmpeg.
Installation effective
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
podtest@ts-sun:~/$ cd ~ podtest@ts-sun:~/$ git clone https://github.com/jibon57/bbb-recorder podtest@ts-sun:~/$ cd bbb-recorder podtest@ts-sun:~/bbb-recorder/$ npm install --ignore-scripts podtest@ts-sun:~/bbb-recorder/$ cp .env.example .env |
Gestion du répertoire contenant les vidéos, /data/www/podtest/bbb-recorder et du répertoire de logs /data/www/podtest/bbb-recorder/logs.
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
podtest@ts-sun:~/bbb-recorder/$ mkdir /data/www/podtest/bbb-recorder
podtest@ts-sun:~/bbb-recorder/$ mkdir /data/www/podtest/bbb-recorder/logs
|
Paramétrage
- Édition du fichier de configuration ~/bbb-recorder/.env pour paramétrer le RTMP (inutile ici) et le répertoire des vidéos.
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
{
"rtmpUrl": "rtmp://xxxxxxxx:xxxxxxxxxx@xxxxx.umontpellier.fr:1935/live/stream",
"ffmpegServer": "ws://localhost",
"ffmpegServerPort": 4000,
"auth": "xxxx",
"copyToPath": "/data/www/podtest/bbb-recorder"
} |
- Si besoin, réaliser le paramétrage dans le fichier examples/index.js (pour réaliser un live ou enregistrer en direct une Web conférence) :
| Bloc de code | ||
|---|---|---|
| ||
const BBBUrl = "https://xxxx.umontpellier.fr/bigbluebutton/",
BBBSalt = "xxxxxxxxxxxxxxxxxxxx",
joinName = "recorder"; |
- Configurer le bitrate pour contrôler la qualité de la vidéo exportée en ajustant la propriété videoBitsPerSecond dans background.js.