esup-pod

Arborescence des pages

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

...

  • 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-recorderbbb-downloadBigBlueButton-liveStreaming
Enregistre un cours BBB en vidéo(coche) 
format webm, mp4
(coche)(avertissement)
peut enregistré le cours qu'il publie en live au format mkv
Exporte un cours BBB en direct live(coche)(moins)(coche)
Enregistre un cours en temps réel(coche)(moins)(moins)
Indépendance vis-à-vis de BigBlueButton(coche)
peut-être installé sur n'importe quel serveur

(info)
doit être installé sur tous les serveurs BBB

(coche)
peut-être installé sur n'importe quel serveur
Contenu de la vidéo finale(coche) présentation
(coche) audio
(coche) vidéo
(coche)partage d'écran
(coche)chat
(coche)whiteboard
(coche) présentation
(coche) audio
(moins) vidéo
(coche) partage d'écran
(moins) chat
(moins) whiteboard
(coche) présentation
(coche) audio
(coche) vidéo
(coche) partage d'écran
(coche) chat
(question) whiteboard
TechnologiesNodeJS, xvfb, Chrome, ffmpeg, shellPython, ruby, ffmpeg, shellDocker, python, xvfb, ffmpeg, shell
Mise à jour régulière(coche)(moins) 
Dernière mise à jour en 2018
(coche)
Notion de charge(ampoule)
le
Le fichier vidéo fait entre 2 et 4Mo par minute, en webm ou mp4(ampoule)Encode nécessairement toutes les Web conférences en vidéo

(info) 1 stream nécessite (à minima ?) 8 CPU cores + 4 Go RAM
(question)possibilité de faire plusieurs streams sur une même VM ?
(ampoule)
le fichier vidéo fait ~19Mo par minute, en mkv

CommentairesFacilement 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 testsPeut également publier en live le cours (publication RTMP).
(erreur) Le fait de partager l'écran semble - dans certains cas - faire planter ce plugin, avec une erreur "Conversion failed ( Error writing trailer of rtmp://xxxx:xxxx@xxxx.umontpellier.fr:1935/live/myStream: Broken pipe)".

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

...

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

(info) 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
languagebash
titleInstallation réalisée sur un serveur d'encodage, compte root
# 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

(info) É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
languagebash
titleInstallation réalisée sur un serveur d'encodage, compte podtest
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
languagebash
titleCréation des répertoires
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
languagetext
titleEdition de /home/sun/bbb-recorder/config.json
{
"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
languagetext
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.

Configuration

Mise en place du job CRON


Exploitation