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.


Avertissement

Cette documentation ne concerne que la version v2.X de Pod et non la version 3.X de Pod.

Le module utilisé sera supprimé de Pod dans une future version de Pod

v2.8, prévue en avril 2021.

.

Une solution à cette problématique est en cours de travaux. 

Sommaire

Contexte et solution apportée

Contexte

Suite à la pandémie de COVID-19, il a été mis en place, à l'université de Montpellier, un système de classe virtuelle Open Source reposant sur Big Blue Button (BBB).


Astuce
titleMise à jour du script bbb-pod-live.php

Le script pod/scripts/bbb-pod-live.php sera mis à jour dans la prochaine version v2.8.2 de Pod. Les modifications réalisées sont les suivantes :

  • Modification du nom du diffuseur créé : les diffuseurs créés par ce script commenceront par [BBB] et non (BBB) (cela permet d'éviter des problèmes en lien avec l'API Rest).
  • Il est maintenant possible de streamer une session BigBlueButton dont le nom contient une quote.
  • Un email est envoyé aux administrateurs en cas de démarrage d'un direct.

Contexte et solution apportée

Contexte

Suite à la pandémie de COVID-19, il a été mis en place, à l'université de Montpellier, un système de classe virtuelle Open Source reposant sur Big Blue Button (BBB).

Pour informations, BigBlueButton (https://bigbluebutton.org/) est un Pour informations, BigBlueButton (https://bigbluebutton.org/) est un outil de classe virtuelle ayant les fonctionnalités suivantes :

...

Avertissement
titleLes utilisateurs dans BigBlueButton

Les informations concernant les modérateurs dans BigBlueButton dépendent du client BBB utilisé : Greenlight ou le plugin mod_bigbluebuttonbn pour Moodle.

Le système réalisé n'a été testé qu'avec le plugin mod_bigbluebuttonbn pour Moodle (CASifié, donc les données proviennent de notre annuaire LDAP); cela signifie que les modérateurs sont définis - dans mon cas - sous la forme "Prenom Nom".

Il est possible de paramétrer ce format, via le paramètre BBB_USERNAME_FORMAT. A l'heure actuelle, les formats "Prenom Nom" ou "Nom Prenom" peuvent être gérés via ce paramétrage.

(avertissement) (avertissement) Ce point est crucial pour que le système fonctionne correctement : une correspondance doit exister sur le "Prenom Nom" ou "Nom Prenom" (selon la configuration BBB_USERNAME_FORMAT) des modérateurs de BigBlueButton et le "Prenom Nom" des utilisateurs dans la base de données de Pod.

(question) (question) A priori, cela devrait pouvoir fonctionner avec Greenlight si celui-ci est configuré pour utiliser l'annuaire LDAP de l'établissement et les champs givenName et sn.

...


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

(question) 

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

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

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

...

Installation et configuration à réaliser sur les serveurs bbb-pod-live

Installation des prérequis de BigBlueButton-liveStreaming

Pour installer les prérequis de BigBlueButton-liveStreaming, il suffit de consulter la documentation officielle du projet : https://github.com/aau-zid/BigBlueButton-liveStreaming

Au final, il suffit d'avoir Docker qui tourne sur cette machine bbb-pod-live.

...

-live

Installation des prérequis de BigBlueButton-liveStreaming

Pour installer les prérequis de BigBlueButton-liveStreaming, il suffit de consulter la documentation officielle du projet : https://github.com/aau-zid/BigBlueButton-liveStreaming

Au final, il suffit d'avoir Docker et Docker-compose qui tournent sur cette machine bbb-pod-live.

Info

Il n'est pas utile d'installer BigBlueButton-liveStreaming à ce stade. C'est le script PHP qui installera automatiquement BigBlueButton-liveStreaming et qui initialisera sa configuration.

Installation Docker et Docker-compose sous CentOS 7

Personnellement, sous Cent OS 7, j'ai utilisé les documentations suivantes : 

Au final, voici les commandes utilisées.

Installation Docker
Astuce
titleInstallation de Docker sous CentOS 7

Personnellement, sous Cent OS 7, j'ai utilisé les documentations suivantes : 

Installation de Docker sous CentOS 7 :

#Anciennement
# sudo yum check-update
#curl -fsSL

https://

www

get.

digitalocean

docker.com/

community/tutorials/how-to-install-and-use-docker-on-centos-7
  • (Au cas où) Installation de Docker sous Scientific Linux 7 : https://medium.com/@Dylan.Wang/how-to-install-docker-ce-on-scientific-linux-7-8-180e161f5947
  • Installation de Docker-compose sous CentOS 7 : https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-compose-on-centos-7
  • Au final, voici les commandes utilisées :

    sudo yum check-update
    curl -fsSL https://get.docker.com/ | sh
    sudo systemctl start docker
    sudo systemctl status docker
    sudo systemctl enable docker

    | sh

    sudo yum install -y yum-utils device-mapper-persistent-data lvm2

    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

    # Installation de la version 20.10.5
    #La version 20.10.6 pose problème au serveur n'ayant pas d'adresse IP v6 (Error starting userland proxy: listen tcp6 [::]:9982: socket: address family not supported by protocol) cf. https://forums.docker.com/t/ipv6-disabled-on-my-computer-but-docker-network-seems-looking-for-it/107299
    sudo yum install docker-ce-20.10.5 docker-ce-cli-20.10.5 containerd.io

    sudo systemctl enable docker && sudo systemctl start docker

    Installation Docker-compose
    Astuce
    titleInstallation de Docker-compose sous CentOS 7

    sudo curl -L "https://github.com/docker/compose/releases/download/1.2329.21/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

    sudo chmod +x /usr/local/bin/docker-compose

    docker-compose --version

    Gestion des droits

    Ces droits permettent de pouvoir lancer docker sans sudo et d'éviter l'erreur de type Permission denied.

    Astuce
    titleGestion des droits sous CentOS 7

    chown %USER% /usr/local/bin/docker-compose -R

    En cas d'erreur type Permission denied :#Si le groupe docker n'existe pas, on peut le créer

    sudo groupadd docker

    #Ajout de l'utilisateur à ce groupe

    sudo usermod -aG docker %USER%

    #Astuce permettant d'être sûr de ne plus avoir de problèmes de droit

    sudo chmod 666 /var/run/docker.sock

    (avertissement) Après avoir ajouté le user au groupe docker, ne pas oublier de fermer sa session et de se reconnecter pour que cela soit pris en compte.


    Installation Docker et Docker-compose sous Ubuntu 20.04


    Astuce
    titleInstallation de Docker et Docker-compose sous Ubuntu 20.04

    Sous Ubuntu 20.04, j'ai utilisé la documentation suivante : https://docs.docker.com/engine/install/ubuntu/

    Ce qui donne :

    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
    $(lsb_release -cs) \
    stable"
    sudo apt-get update
    sudo apt-get install docker-ce docker-ce-cli containerd.io
    sudo docker run hello-world
    docker -v
    sudo apt install docker-compose

    ...

    Info
    titleRépertoire bbb-pod-live

    Ce répertoire bbb-pod-live va contenir les différentes instances de BigBlueButton-liveStreaming, qui peuvent contenir les vidéos enregistrées (lorsque l'enseignant a sélectionné l'enregistrement du direct).

    Il faut donc prévoir un stockage suffisant (typiquement un minimum de 5Go par instance de BigBlueButton-liveStreaming souhaitée).

     

    • Vérifier qu'il y ait bien le script bbb-pod-live.php et le fichier docker-compose.default.yml dans ce répertoire, avec les bons droits utilisateurs.

    ...

    Fichier docker-compose.yml

     

    (avertissement) Il est primordial de ne pas modifier le fichier docker-compose.default.yml : il servira de modèle pour les containers bbb-liveStreaming.

     

    Lors de la première exécution, le fichier de référence docker-compose.default.yml va être copié en tant que fichier docker-compose.yml  et sera positionné dans chaque répertoire bbb-live-streaming créé :

    ...

    Bloc de code
    languagebash
    titleJob CRON
    crontab -e
    */1 * * * * /usr/bin/bash -c 'cd /home/user%USER%/bbb-pod-live/; php -f ./bbb-pod-live.php'

    ...

    • soit il faut configurer Pod pour être en mode debug (cf. settings_local.py).
      (avertissement)(avertissement) Attention : le mode debug ne doit pas être activé dans un environnement de production.

    • soit modifier directement le script /django_projects/podv2/pod/video/management/commands/bbb.py pour qu'il affiche directement les traitements réalisés (cf. fonction print_if_debug).

    ...