Cette documentation ne concerne que la version 3.3.X et supérieure d'Esup-Pod.
Contexte et application des réunions dans Esup-Pod
Depuis la version 3.X d'Esup-Pod, et la mise en place de l'application de réunions - reposant sur une architecture Big Blue Button (BBB) - il est dorénavant possible aux usagers d'utiliser cette plateforme comme point central pour tout ce qui concerne les vidéos ainsi que pour les classes virtuelles et réunions en visioconférence.
Pour rappel, le module des réunions d'Esup-Pod repose sur une architecture Big Blue Button (https://bigbluebutton.org/) qui est un outil de classe virtuelle, ayant les fonctionnalités suivantes :
- Vidéo/webcam
- Audio
- Chat
- Partage de document + annotation
- Partage d’écran
- Sondage
- Enregistrement
- Création de groupes
- Prises de notes partagées
- Intégration de vidéos externes
- Intégration Moodle, WordPress, Esup-Pod...
Interface Esup-Pod / Mes réunions Big Blue Button
Big Blue Button
Interface Esup-Pod / Enregistrements de réunion Big Blue Button
Dans cette interface, l'action "Téléverser sur Esup-Pod en tant que vidéo" est disponible car nous utilisons une architecture Big Blue Button 2.6 avec le système d'enregistrement vidéo (cf. paragraphe ci-dessous).
Problématique et solution apportée
La problématique
Ainsi, en passant par Esup-Pod pour réaliser nos réunions, classes virtuelles et autres visioconférences, nous avons également accès aux enregistrements de celles-ci, directement dans Esup-Pod et nous avons la possibilité d'importer ces enregistrements dans Pod directement en un clic.
Cependant, lorsque nous utilisons d'autres services ou applications externes pour réaliser ses réunions, classes virtuelles et autres visioconférences (typiquement, réaliser une classe virtuelle Big Blue Button via Moodle), il n'y avait jusque là aucun outil permettant d'importer facilement ces enregistrements dans la plateforme.
La solution
La solution repose alors sur l'application d'import des vidéos externes dans Esup-Pod.
Cette solution repose sur :
- l'enregistrement des sessions sous Big Blue Button au format vidéo, de façon native grâce à la version 2.6 et + de Big Blue Button.
- le développement, dans Esup-Pod 3.3, du module d'import des vidéos en provenance de sources suivantes :
- Big Blue Button (si l'enregistrement vidéo a été installé)
- Fichier vidéo direct
- PeerTube
- Youtube
A l'heure actuelle, cette liste est exhaustive mais peut être amené à évoluer selon les besoins.
Architecture de la solution
Activer l'enregistrement au format vidéo dans Big Blue Button 2.6 et supérieure
Comme expliqué ci-dessus, si l'on souhaite pouvoir importer sur Esup-Pod les enregistrements Big Blue Button, il est nécessaire que ces derniers soient sauvegardés au format vidéo.
Le fait d'activer cet enregistrement au format vidéo dans Big Blue Button va demander plus d'espace de stockage sur l'architecture Big Blue Button.
Pour ce faire, voici la marche à suivre pour chaque serveur BBB 2.6+ de l'architecture (cf. documentation https://docs.bigbluebutton.org/administration/customize/#install-additional-recording-processing-formats) :
Installer le format vidéo de traitement d'enregistrement supplémentaire via la commande suivante :
sudo apt install bbb-playback-video
Réaliser la configuration suivante dans le fichier /usr/local/bigbluebutton/core/scripts/bigbluebutton.yml :
steps: archive: 'sanity' sanity: 'captions' captions: - 'process:presentation' - 'process:video' 'process:presentation': 'publish:presentation' 'process:video': 'publish:video'- Optimisation (optionnelle) :
Par défaut, la vidéo encodée ne me semble pas être de très bonne qualité.
Après recherche, il s'avère que l'encodage se réalise par défaut avec les paramètres ffmpeg suivants : -preset fast -crf 23
Pour modifier ce comportement, il est possible de jouer sur le fichier suivant :
- /usr/local/bigbluebutton/core/lib/recordandplayback/edl/video.rb : partie FFMPEG_WF_ARGS
FFMPEG_WF_ARGS = ['-codec', FFMPEG_WF_CODEC.to_s,'-preset','fast','-crf','23','-x264opts','stitchable=1','-force_key_frames','expr:gte(t,n_forced*10)','-pix_fmt','yuv420p',]Personnellement, c'est sur ce fichier que j'ai directement modifié les valeurs, pour mettre : -preset medium -crf 20
Redémarrer à minima la file d'attente de traitement d'enregistrements :
sudo systemctl restart bbb-rap-resque-worker.service # Il se peut qu'il faille aussi redémarrer le service Nginx # Personnellement, je préfère redémarrer tous les services BBB (attention s'il y a des sessions en cours) via : # sudo bbb-conf --restart
- Si nécessaire, supprimer le bas de page “Recorded by bigbluebutton“ en éditant le fichier /usr/local/bigbluebutton/core/playback/video/index.html.erb et en supprimant le <footer>.
Dans un deuxième temps, il sera sûrement intéressant de réaliser un script (s'il n'existe pas d'ici là) permettant de supprimer les fichiers vidéos générées au bout d'un certain temps (paramétrable).
Choix des modules Python utilisés et pré-requis
Aucune module spécifique Python n'a été utile pour l'import des vidéos depuis Big Blue Button, PeerTube ou en accès direct.
Par contre, pour l'import des vidéos en provenance de Youtube, j'ai utilisé le module Python PyTube : https://pytube.io/en/latest/
Il aurait aussi été possible d'utiliser le module Python YT-DLP : https://github.com/yt-dlp/yt-dlp
Juin 2023 - Mise à jour Youtube
Suite à la mise à jour de Youtube de Juin 2023, PyTube n'est pas encore à jour.
Il a alors été nécessaire de réaliser directement la mise à jour de code directement dans /home/pod/.virtualenvs/django_pod3/lib/python3.9/site-packages/pytube/cipher.py
La mise à jour concerne la chaîne suivante : https://github.com/pytube/pytube/commit/22d20bd92b3bb16a5fb5d7d86572d97287161e8f
Une mise à jour de PyTube ne devrait plus tarder à arriver; il suffira de mettre à jour ce module via la commande suivante : python3 -m pip install --upgrade pytube
Configuration de l'application Import_Video
Le paramétrage du module d'import des vidéos externes se réalise, comme habituellement, via le fichier de settings_local.py, avec l'utilisation des paramètres suivants :
| Paramètre | Version minimale | Valeur par défaut | Description |
|---|---|---|---|
| USE_IMPORT_VIDEO | 3.3.0 | True | Activation de l’application d'import des vidéos (True / False) |
| RESTRICT_EDIT_IMPORT_VIDEO_ACCESS_TO_STAFF_ONLY | 3.3.0 | True | Seuls les utilisateurs "staff" pourront importer des vidéos (True / False) |
| MAX_UPLOAD_SIZE_ON_IMPORT | A venir | 0 | Taille maximum en Go des fichiers vidéos qui peuvent être téléversés sur la plateforme via ce module (0 = pas de limite) |


