Le sondage d'une vidéo dans Forge¶
Ce document décrit l'extraction des métadonnées vidéo via ffprobe.
Le fichier de code correspondant est forge_mvc_video/probe.py.
1. À quoi sert ce module ?¶
Le sondage lance ffprobe (lecture seule) sur une source et en lit les caractéristiques : durée, dimensions, codecs, conteneur.
Il sert aussi de validation profonde : un fichier sans flux vidéo, ou que ffprobe refuse, est rejeté.
2. Sonder une vidéo¶
from forge_mvc_video import probe_video, VideoProbeError
try:
meta = probe_video("storage/video/<uuid>.mov")
except VideoProbeError as err:
return Response.text(str(err), status=400)
3. Les métadonnées (VideoMetadata)¶
| Attribut | Contenu |
|---|---|
duration_seconds |
durée en secondes |
width, height |
dimensions de l'image |
video_codec |
codec vidéo (h264…) |
audio_codec |
codec audio (aac…) |
container |
format conteneur (mp4, mov…) |
Chaque champ vaut None si ffprobe ne l'a pas fourni.
4. La signature¶
L'exécution de ffprobe est déléguée à un runner injectable : le parsing est testable sans ffprobe réel.
parse_probe_json(payload) transforme une sortie ffprobe -print_format json en VideoMetadata, sans rien exécuter.
5. La validation profonde¶
probe_video rejette une source sans flux vidéo, ou dont la durée dépasse max_duration_seconds, en levant VideoProbeError.
6. Contextes d'utilisation¶
- Après ingestion : valider la source avant de transcoder.
- Tests : injecter un
runnerrenvoyant une sortie figée.
7. Voir aussi¶
- L'ingestion : l'étape précédente.
- Le transcodage : l'étape suivante.
- La configuration :
ffprobe_bin,max_duration_seconds.