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.

Sommaire

Avertissement
Cette documentation ne concerne que la future version de Pod v2.8, prévue fin février 2021.

Contexte et solution apportée

...

Architecture de la solution

Choix du plugin permettant la diffusion de la session BigBlueButton en direct

Pour diffuser une session BigBlueButton en direct, certains plugins existent déjà sur Github; il ne paraît pas raisonnable de redévelopper un tel système.

Pour arriver à faire mon choix, j'ai testé les 2 solutions suivantes :

  • 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 et qui permet également une diffusion en direct (flux RTMP) d'un cours BigBlueButton.
  • 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 est ressorti de mes tests.


bbb-recorderBigBlueButton-liveStreaming
Exporte un cours BBB en direct live(coche)(coche)
Enregistre un cours BBB en vidéo(coche) 
format webm, mp4
(avertissement)
peut enregistré le cours qu'il publie en live au format mkv
Indépendance vis-à-vis de BigBlueButton(coche)
peut-être installé sur n'importe quel serveur
(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
(coche) vidéo
(coche) partage d'écran
(coche) chat
(coche) whiteboard
Possibilité de chat depuis la page de direct avec BBB(moins)(coche)
Possibilité de faire plusieurs streams sur une même VM(question)(coche)
TechnologiesNodeJS, xvfb, Chrome, ffmpeg, shellDocker, python, xvfb, ffmpeg, shell
Mise à jour régulière(coche)(coche)
Notion de charge

(question) 

(ampoule)Le fichier vidéo fait entre 2 et 4Mo par minute, en webm ou mp4

(info) 1 stream nécessite 4-6 vCPU + 4 Go RAM

(ampoule)le fichier vidéo fait ~19Mo par minute, en mkv

Aux vues des besoins, et en particulier suite à la possibilité d'ajouter un tchat public à la page de direct, j'ai alors choisi BigBlueButton-liveStreamong comme solution pour la diffusion de sessions BigBlueButton en direct.

Installation et configuration

Prérequis

Techniquement, la solution repose sur :

  • Le projet Github BigBlueButton-liveStreaming: installé sur les serveurs bbb-pod-live (sous la forme de containers Docker).
    https://github.com/aau-zid/BigBlueButton-liveStreaming

  • Un serveur de streaming pour la publication RTMP reposant sur RTMP Nginx.

  • Le système existant de publication des présentations Web de BigBlueButton vers Pod (CRON job, plugin BBB).

  • De nouvelles API REST pour Pod.

  • Un script PHP (CRON job) pour le démarrage/arrêt des directs, création/suppression des diffuseurs…
    • Totalement indépendant des serveurs de Pod et de BigBlueButton.
    • Peut être installé sur des serveurs spécifiques bbb-pod-live (load balancing simpliste).
    • Ce script PHP peut gérer plusieurs instances de BigBlueButton-liveStreaming.

Installation de BigBlueButton-liveStreaming sur les serveurs bbb-pod-live

Mise en place du job CRON (sur les serveurs spécifiques bbb-pod-live)

Configuration dans Pod

Exploitation