1. Qu'est-ce que MoviePy et pourquoi c'est trop cool ?
Salut les étudiant·e·s ! Aujourd'hui, on plonge dans le monde passionnant du traitement vidéo avec MoviePy — un outil qui vous permettra de créer de la magie vidéo à partir de clips ordinaires. Si vous avez toujours pensé que le montage vidéo était réservé aux pros avec des outils coûteux, je vais vous prouver le contraire aujourd'hui. C'est parti !
MoviePy, c'est une bibliothèque Python pour le traitement vidéo. Elle vous permet de lire, écrire, modifier des fichiers vidéo et même de bosser avec l'audio ! Et tout ça sans avoir à suivre des cours de montage vidéo. Un peu de magie et votre Python se met à chuchoter des vidéos dans toutes les langues que vous lui demandez.
Pourquoi MoviePy ?
- Facilité d'utilisation: MoviePy offre une interface intuitive qui permet de travailler avec des vidéos sans se perdre dans le code.
- Polyvalence: De la découpe de vidéos à l'ajout de textes et d'effets, MoviePy gère la plupart des tâches.
- Compatibilité: Fonctionne sur diverses plateformes et peut être utilisé avec d'autres bibliothèques comme NumPy et PIL (Pillow).
2. Installer MoviePy
Installons MoviePy ! Pour cela, vous aurez besoin de Python et d'un accès pour installer des packages en ligne. Connectez-vous au Wi-Fi (ou utilisez GitHub comme un Wi-Fi gratuit — paraît que les pros font ça), ouvrez un terminal et tapez :
pip install moviepy
Si quelque chose tourne mal, ne paniquez pas ! On est dans le monde du dev où "rien ne marche" est souvent une feature améliorée.
Résoudre les problèmes d'installation
Si vous rencontrez des erreurs lors de l'installation, pas de panique. Essayez ces solutions :
- Vérifiez votre version de Python: MoviePy nécessite Python version 3.5 ou supérieure.
- Assurez-vous d'avoir toutes les dépendances nécessaires: Certaines fonctionnalités de MoviePy peuvent nécessiter FFMPEG. Installez-le en suivant les instructions sur la page officielle de FFMPEG.
- Essayez un environnement virtuel: Dans certains cas, les conflits de dépendances se résolvent en créant un nouvel environnement virtuel. Essayez
python -m venv myenv
.
3. Ouvrir et lire une vidéo
Maintenant qu'on a installé MoviePy, on peut passer aux choses sérieuses. Imaginez que vous prenez un vieux projecteur de cinéma et que vous démontez la bobine pour en faire des blagues ou des œuvres d'art. Voyons comment ça marche dans le code.
Pour travailler avec des vidéos dans MoviePy, on utilise la classe VideoFileClip
, qui permet de charger et manipuler des fichiers vidéo. Ouvrir un fichier vidéo est la première étape qui donne accès à ses propriétés et possibilités de montage.
Ouvrir un fichier vidéo
from moviepy.editor import VideoFileClip
# Ouvrir un fichier vidéo
video = VideoFileClip("sample_video.mp4")
# Obtenir des informations de base sur la vidéo
print("Durée :", video.duration, "secondes")
print("Résolution :", video.size)
print("Fréquence d'images :", video.fps, "images par seconde")
Explication du code
VideoFileClip("sample_video.mp4")
: Charge le fichier vidéosample_video.mp4
, créant un objetvideo
pour le manipuler.video.duration
: Affiche la durée de la vidéo en secondes.video.size
: Renvoie les dimensions de la vidéo (largeur et hauteur).video.fps
: Renvoie la fréquence d'images de la vidéo (frames per second).
4. Modifier les dimensions de la vidéo
Parfois, pour une publication ou une optimisation, il est nécessaire de changer les dimensions d'une vidéo. Avec MoviePy, on peut le faire via la méthode resize()
, qui permet de redimensionner une vidéo à une taille ou un pourcentage spécifique.
Exemple
# Réduire la taille de la vidéo à 50 % de l'original
video_resized = video.resize(0.5)
video_resized.write_videofile("resized_video.mp4")
Explication du code
video.resize(0.5)
: Réduit les dimensions de la vidéo à 50 % de la taille originale.write_videofile()
: Enregistre le résultat dans un nouveau fichier vidéoresized_video.mp4
.
En plus de redimensionner en pourcentage, on peut spécifier une taille précise, comme ajuster la largeur de la vidéo à 640 pixels :
# Définir la largeur de la vidéo à 640 pixels
video_resized = video.resize(width=640)
video_resized.write_videofile("resized_video_640.mp4")
Si vous ne spécifiez qu'un côté (par exemple, width=640
), l'autre sera automatiquement ajusté pour conserver les proportions.
5. Découper la vidéo (crop)
Le découpage (crop) est une opération utile lorsqu'il faut supprimer des parties inutiles d'une vidéo pour ne garder qu'une zone spécifique. La méthode crop()
permet de définir les coordonnées de découpe : les limites supérieure, inférieure, gauche et droite.
Exemple
# Découper la vidéo : supprimer les bords
video_cropped = video.crop(x1=50, y1=50, x2=500, y2=400)
video_cropped.write_videofile("cropped_video.mp4")
Explication du code
video.crop(x1=50, y1=50, x2=500, y2=400)
: Découpe la vidéo, en gardant la zone des coordonnées(50, 50)
à(500, 400)
.write_videofile()
: Enregistre la vidéo découpée commecropped_video.mp4
.
6. Rotation vidéo
MoviePy permet également de faire tourner une vidéo de 90, 180 ou 270 degrés, ce qui est utile pour les vidéos prises dans différentes orientations.
Tourner une vidéo de 90 degrés
# Tourner la vidéo de 90 degrés
video_rotated = video.rotate(90)
video_rotated.write_videofile("rotated_video.mp4")
Explication du code
video.rotate(90)
: Fait tourner la vidéo de 90 degrés dans le sens horaire.write_videofile()
: Enregistre la vidéo tournée commerotated_video.mp4
.
7. Changer la vitesse de lecture
Dans certains cas, il est pratique d'accélérer ou de ralentir une vidéo. Avec MoviePy, on peut y parvenir grâce à la méthode fx
, qui permet de modifier la vitesse de lecture.
Accélérer une vidéo 2x
from moviepy.video.fx.all import speedx
# Accélérer la vidéo 2x
video_fast = video.fx(speedx, 2)
video_fast.write_videofile("fast_video.mp4")
Explication du code
video.fx(speedx, 2)
: Accélère la vidéo deux fois. Si vous voulez ralentir la vidéo, utilisez une valeur inférieure à 1 (par exemple,0.5
).write_videofile()
: Enregistre la vidéo accélérée commefast_video.mp4
.
8. Découper par durée (montage vidéo)
MoviePy permet aussi de découper une vidéo selon une durée, ce qui est pratique pour isoler une certaine portion de la vidéo.
Exemple : Couper une vidéo de la 10e à la 30e seconde
# Couper la vidéo de 10 à 30 secondes
video_subclip = video.subclip(10, 30)
video_subclip.write_videofile("subclip_video.mp4")
Explication du code
video.subclip(10, 30)
: Crée un nouveau clip vidéo qui commence à 10 secondes et se termine à 30 secondes de la vidéo originale.write_videofile()
: Enregistre le segment découpé commesubclip_video.mp4
.
GO TO FULL VERSION