Introduction
Ce script permet de redimensionner des vidéos tout en conservant ou non leur bande son. Il s’adapte automatiquement aux dimensions cibles en respectant le ratio d’aspect. Vous pouvez également traiter des vidéos par lot en spécifiant un répertoire source et un répertoire de destination.
Fonctionnalités principales
- Récupération des dimensions d’une vidéo :
- Détecte automatiquement la largeur et la hauteur d’une vidéo à l’aide de
ffprobe
.
- Détecte automatiquement la largeur et la hauteur d’une vidéo à l’aide de
- Calcul des dimensions plein écran :
- Adapte les dimensions d’une vidéo pour qu’elle s’ajuste à l’écran cible en conservant le ratio d’aspect.
- Redimensionnement des vidéos :
- Deux options disponibles : avec ou sans bande son.
- Traitement par lot :
- Redimensionne toutes les vidéos d’un répertoire et sauvegarde les vidéos redimensionnées dans un autre répertoire.
Prérequis
- Outils requis :
ffmpeg
etffprobe
doivent être installés et accessibles dans votre PATH.- Python 3.x avec les modules standards (
subprocess
,json
,os
).
- Commande pour installer ffmpeg (sous Ubuntu/Debian) :
Shell
Fonctionnement des fonctions
1. Récupération des dimensions : get_video_dimensions(video_path)
- Entrée : Chemin du fichier vidéo.
- Sortie : Tuple
(largeur, hauteur)
ouNone
en cas d’erreur.
2. Calcul des dimensions plein écran : calculate_fullscreen_dimensions(video_dimensions, screen_dimensions)
- Entrée : Dimensions de la vidéo
(largeur, hauteur)
et de l’écran cible(largeur, hauteur)
. - Sortie : Nouvelle taille
(nouvelle_largeur, nouvelle_hauteur)
adaptée à l’écran.
3. Redimensionnement avec audio : resize_video_with_audio(input_video, output_video, target_dimensions)
- Entrée :
input_video
: Chemin de la vidéo source.output_video
: Chemin pour enregistrer la vidéo redimensionnée.target_dimensions
: Dimensions cibles(largeur, hauteur)
.
4. Redimensionnement sans audio : resize_video_without_audio(input_video, output_video, target_dimensions)
- Identique à la précédente, mais supprime la bande son avec
-an
.
5. Lister les fichiers d’un répertoire : list_files_in_directory(directory_path)
- Entrée : Chemin du répertoire.
- Sortie : Liste des fichiers.
6. Traitement par lot : resize_videos_in_directory(input_directory, output_directory, target_dimensions)
- Entrée :
input_directory
: Répertoire source contenant les vidéos.output_directory
: Répertoire cible pour les vidéos redimensionnées.target_dimensions
: Dimensions cibles.
Exemple d’utilisation
Redimensionner une vidéo unique
Python
Redimensionner toutes les vidéos d’un répertoire
Python
Notes importantes
- Qualité et compression :
- La qualité vidéo est définie par
-crf
(23 par défaut). Plus la valeur est basse, meilleure est la qualité (et plus le fichier est volumineux).
- La qualité vidéo est définie par
- Gestion des erreurs :
- Les erreurs sont gérées avec des messages explicites.
- Adaptation automatique :
- Si les dimensions spécifiées ne respectent pas le ratio d’aspect, le script ajuste automatiquement les dimensions pour éviter toute déformation.
Dépannage
- Erreur
ffprobe
introuvable :- Vérifiez que
ffmpeg
etffprobe
sont correctement installés et accessibles dans votre terminal.
- Vérifiez que
- Chemin de fichier invalide :
- Assurez-vous que les chemins vers les fichiers et répertoires sont corrects.
Source normevideo.py
Python