Mise en place du studio Opencast
Installation
Pour rajouter le studio d’Opencast dans votre instance d’Esup-Pod, voici les étapes à suivre :
- Récupérer les sources Opencast Studio via la commande suivante :
git clone https://github.com/elan-ev/opencast-studio/
- Créer l’Opencast Studio avec la bonne configuration pour Pod via les commandes suivantes :
cd opencast-studio/
export PUBLIC_PATH=/studio
npm install
npm run build:release
- Un répertoire
buildest alors généré. Renommez ce répertoirebuildenstudio, puis copier le dans le répertoirepod/custom/static/opencast/
mkdir -p pod/custom/static/opencast/studio
cp -r build/* pod/custom/static/opencast/studio
- Finalement, n’oubliez pas de collecter vos fichiers statiques pour la mise en production via la commande :
(django_pod4) [userpod@video][/data/www/userpod/django_projects/podv4] python manage.py collectstatic
La génération d’Opencast Studio peut très bien se réaliser sur un autre serveur. Pod n’a besoin que du répertoire build, renommé en studio, et positionné dans le sous-répertoire pod/custom/static/opencast.
Il est indispensable que le serveur soit configuré en HTTPS (et non en HTTP) pour que l’Opencast Studio puisse fonctionner.
Configuration et pré-requis
Configuration
Dans votre custom/settings-local.py, les paramètres suivants concernent l’utilisation d’Opencast Studio :
| Propriété | Description | Valeur par défaut |
|---|---|---|
| USE_OPENCAST_STUDIO | Activer l’enregistreur Opencast Studio | False |
| OPENCAST_FILES_DIR | Répertoire de travail pour les fichiers générés par Opencast Studio (sera accessible dans le media) | "opencast-files" |
| ENCODE_STUDIO | Fonction appelée pour lancer l’encodage des vidéos intermédiaires du studio | "start_encode_studio" |
| OPENCAST_DEFAULT_PRESENTER | Paramètre permettant de savoir le comportement par défaut lors de l’enregistrement de la caméra et de l’écran (modifiable par l’utilisateur). Valeurs possibles : mid : Même taille pour l’écran et la caméra, piph : Pip - caméra à l’intérieur de la vidéo de l’écran en haut à droite, pipb : Pip - caméra à l’intérieur de la vidéo de l’écran en bas à droite |
"mid" |
| FFMPEG_STUDIO_COMMAND | Commande ffmpeg utilisée pour l’encodage des vidéos du studio | cf. remarque ci-dessous |
Pensez à vérifier la version de ffmpeg utilisée par le serveur d’encodage. S’il s’agit d’une version 5 ou plus, il est nécessaire de surcharger le paramètre FFMPEG_STUDIO_COMMAND de votre custom/settings-local.py avec :
FFMPEG_STUDIO_COMMAND = (
" -hide_banner -threads %(nb_threads)s %(input)s %(subtime)s"
+ " -c:a aac -ar 48000 -c:v h264 -profile:v high -pix_fmt yuv420p"
+ " -crf %(crf)s -sc_threshold 0 -force_key_frames"
+ ' "expr:gte(t,n_forced*1)" -max_muxing_queue_size 4000 '
)
Par défaut, l’encodage utilise l’option -deinterlace qui a été supprimée depuis la version 5 de ffmpeg.
Pré-requis
Il est aussi nécessaire de créer, via l’interface d’administration, un nouvel Enregistreur de type Studio :

Il est indispensable que cet enregistreur ait comme type d’enregistrement Studio; concernant le répertoire des publications, mettre opencast-files, ou du moins, la valeur configurée dans le paramètre OPENCAST_FILES_DIR.
Vous pouvez faire cette création en ligne de commande si vous le souhaitez :
(django_pod4) [userpod@video][/data/www/userpod/django_projects/podv4] echo "from pod.recorder.models import Recorder; from pod.video.models import Type; type=Type.objects.get(pk=1); rec=Recorder.objects.create(name=’Studio’, address_ip=’127.0.0.1’, recording_type=’studio’, type=type)" | python manage.py shell
Exploitation
Les fichiers d’Opencast Studio sont générés dans le répertoire /media/opencast-files/ et tout est loggué dans l’interface d’administration de Pod.
En effet, il est possible de retrouver les enregistrements réalisés par les usagers via le module Recorder / Enregistrement pour l’enregistreur de type Studio défini :
