| Sommaire | ||
|---|---|---|
|
1. En local
Par défaut, l'application exécute les taches d'encodage et de transcription sur la même machine que celle sur laquelle elle tourne.
...
Pour configurer ces taches et leur executionexécution, vous pouvez vous reporter sur le fichier de configuration disponible à cette adresse :
Pour configurer les taches ActivityPub, suivez Mise en place du protocole ActivityPub
| Astuce | ||
|---|---|---|
| ||
Dans le cas d'un usage déporté (en micro-service ou non), vous aurez besoin d'ouvrir l'accès à votre Redis. (voir page installation de Pod pour son installation). Vous pouvez, soit le laisser sur le frontal web de Pod, soit l'installer sur une machine dédiée. |
2. Déporté sur une machine distante
Vous pouvez déporter l'encodage, la transcription et le traitement de l'xAPI sur des environnements distants (VM ou Docker) avec soit un seul environnement pour les 3 taches, soit "n" environnements pour chaque tache.
...
- Déporter l'encodage sur un ou plusieurs serveurs en Pod V3
- Installation de l'autotranscription en Pod V3 (avec possibilité de déport sur le serveur d'encodage)
- Mise en place de l'xAPI sur le serveur d'encodage
3. Déporté sur une machine ou un docker en microservice
Depuis la version 3.4.0, il est possible de déporter l'encodage, la transcription et l'xAPI en micro-service. Ces micro-services sont autonome autonomes et ne nécessite nécessitent pas de lien avec la base de données ou le moteur de recherche comme précédemment.
Cela se faite fait selon le schéma suivant :
...
Il faut que chaque service ait accès au même espace de fichier Pod (espace partagé) et accès à Redis qui va jouer de role rôle de file d'attente pour les taches d'encodage, de transcription ou d'envoi xAPI.
Chaque micro-service est lancé via une commance Celery.
3.1 Microservice Encodage
| Astuce |
|---|
Nous appellerons dans la suite de cette documentation, serveur Pod backend le serveur où la partie web serveur est installée et serveur Pod encodage le serveur où est déporté l'encodage |
Pré-requis :
- Il faut que votre répertoire "
podv3"du serveur backend soit partagé entre vos serveurs (montage NFS par exemple)
Configuration sur le serveur Pod backend :
Dans le fichier settings_local.py
...
| Bloc de code | ||
|---|---|---|
| ||
# Configuration Celery sur le frontal USE_DISTANTREMOTE_ENCODING_TRANSCODING = True ENCODING_TRANSCODING_CELERY_BROKER_URL = "redis://redis:6379/5" |
Installation sur le serveur d’encodage :
Installation des lib tierces
...
| Bloc de code | ||
|---|---|---|
| ||
(django_pod3) pod@pod-encodage:/usr/local/django_projects/podv3$ pip3 install --no-cache-dir -r requirements-encode.txt |
Configuration requise, dans le fichier settings_local.py :
| Bloc de code | ||
|---|---|---|
| ||
(django_pod3) pod@pod:/usr/local/django_projects/podv3$ vim pod/custom/settings_local.py |
| Bloc de code | ||
|---|---|---|
| ||
# Configuration nécessaire sur le serveur d'encodage
# Adresse de l’API rest à appeler en fin d’encodage distant ou de transcription à distance.
POD_API_URL = "https://pod.univ.fr/rest/"
# Token d’authentification utilisé pour l’appel en fin d’encodage distant ou de transcription à distance. Pour le créer, il faut aller dans la partie Admin > Jeton d’authentification > token.
POD_API_TOKEN = "xxxx" |
Il suffit ensuite de lancer Celery via la commande suivante (vous pouvez également créer un fichier init.d pour lancer cette commande ou ajouter --detach pour lancer en mode démon)
| Bloc de code | ||
|---|---|---|
| ||
(django_pod3) pod@pod-encodage:/usr/local/django_projects/podv3$ celery -A pod.video_encode_transcript.encoding_tasks worker -l INFO -Q encoding --concurrency 1 -n encode |
3.2 Microservice Transcodage
| Astuce |
|---|
Nous appellerons dans la suite de cette documentation, serveur Pod backend le serveur où la partie web serveur est installée et serveur Pod transcodage le serveur où est effectué le transcodage |
Pré-requis :
- Il faut que votre répertoire "
podv3"du serveur backend soit partagé entre vos serveurs (montage NFS par exemple)
Configuration sur le serveur Pod backend :
Dans le fichier settings_local.py
...
| Bloc de code | ||
|---|---|---|
| ||
# Configuration Celery sur le frontal USE_DISTANTREMOTE_ENCODING_TRANSCODING = True ENCODING_TRANSCODING_CELERY_BROKER_URL = "redis://redis:6379/5" |
Installation sur le serveur de transcodage:
Installation des lib tierces
...
| Bloc de code | ||
|---|---|---|
| ||
(django_pod3) pod@pod-transcodage:/usr/local/django_projects/podv3$ pip3 install --no-cache-dir -r requirements-transcripts.txt \
&& pip3 install --no-cache-dir -r requirements-encode.txt |
Configuration requise, dans le fichier settings_local.py :
| Bloc de code | ||
|---|---|---|
| ||
(django_pod3) pod@pod:/usr/local/django_projects/podv3$ vim pod/custom/settings_local.py |
| Bloc de code | ||
|---|---|---|
| ||
# Configuration nécessaire sur le serveur d'encodage
# Adresse de l’API rest à appeler en fin d’encodage distant ou de transcription à distance.
POD_API_URL = "https://pod.univ.fr/rest/"
# Token d’authentification utilisé pour l’appel en fin d’encodage distant ou de transcription à distance. Pour le créer, il faut aller dans la partie Admin > Jeton d’authentification > token.
POD_API_TOKEN = "xxxx" |
Il suffit ensuite de lancer Celery via la commande suivante (vous pouvez également créer un fichier init.d pour lancer cette commande ou ajouter --detach pour lancer en mode démon)
| Bloc de code | ||
|---|---|---|
| ||
(django_pod3) pod@pod-transcodage:/usr/local/django_projects/podv3$ celery -A pod.video_encode_transcript.transcripting_tasks worker -l INFO -Q transcripting --concurrency 1 -n transcript |
3.2 Microservice xAPI
| Astuce |
|---|
Nous appellerons dans la suite de cette documentation, serveur Pod backend le serveur où la partie web serveur est installée et serveur Pod xAPI le serveur où est effectué le traitement xAPI |
Pré-requis :
- Il faut que votre répertoire "
podv3"du serveur backend soit partagé entre vos serveurs (montage NFS par exemple)
Configuration sur le serveur Pod backend :
Dans le fichier settings_local.py
...
| Bloc de code | ||
|---|---|---|
| ||
USE_XAPI = True XAPI_ANONYMIZE_ACTOR = False XAPI_LRS_LOGIN = "XXXX" XAPI_LRS_PWD = "XXXXX" XAPI_LRS_URL = "http://xapi.univ.fr/xAPI/statements/" USE_XAPI_VIDEO = True XAPI_CELERY_BROKER_URL = "redis://redis:6379/6" |
Installation sur le serveur de traitement xAPI:
Installation des lib python (dans un environnement virtuel) et oui, c'est le même requirement que pour l'encodage
...
| Bloc de code | ||
|---|---|---|
| ||
(django_pod3) pod@pod-transcodage:/usr/local/django_projects/podv3$ celery -A pod.xapi.xapi_tasks worker -l INFO -Q xapi --concurrency 1 -n xapi |
4. Monitoring
Pour monitorer la liste des encodages en cours ou en attente, vous pouvez utiliser l'outil celery en ligne de commande.
...
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
# Liste des tâches en attente : (django_pod3) pod@pod-transcodage:/$ celery --broker=redis://redis:6379/<ID> inspect reserved |