1. Vidéoclips et clips audio
Bienvenue dans cette conférence où nous allons devenir de vrais magiciens des vidéos et apprendre à assembler images et sons pour créer de la magie. Bien sûr, avec Python et la bibliothèque MoviePy ! Aujourd'hui, l'objectif est d'apprendre à manipuler des vidéos et des clips audio, ajouter des pistes sonores aux vidéos et exporter le résultat dans un fichier élégant.
Alors, préparons-nous avec un brin de patience et d'attention, et allons conquérir les sommets du montage vidéo avec Python !
Commençons par les bases : créer des vidéoclips. Comme de vrais maestros, nous devons savoir extraire des frames de vidéos, ajouter de l'audio, et bien sûr, savoir exporter tout ça. MoviePy est parfait pour cette tâche.
Les principales classes pour travailler avec les vidéos et clips audio
Dans MoviePy, les classes principales pour manipuler le multimédia sont :
VideoFileClip
— pour créer et manipuler des vidéoclips.AudioFileClip
— pour travailler avec des clips audio.
Création d'un objet vidéoclip
Pour commencer, créons un vidéoclip en utilisant la classe VideoFileClip
. Elle permet d'ouvrir un fichier vidéo et d'accéder à divers paramètres et méthodes d'édition.
from moviepy.editor import VideoFileClip
# Ouverture du fichier vidéo et création d'un vidéoclip
video_clip = VideoFileClip("sample_video.mp4")
# Affichage des informations sur le vidéoclip
print("Durée de la vidéo :", video_clip.duration, "secondes")
print("Dimensions de la vidéo :", video_clip.size)
Dans cet exemple :
VideoFileClip("sample_video.mp4")
ouvre le fichier vidéo et crée un objetvideo_clip
, que vous pouvez utiliser pour ajouter du son ou d'autres modifications.video_clip.duration
etvideo_clip.size
fournissent des informations sur la durée et les dimensions de la vidéo.
Création d'un vidéoclip vide
Parfois, il faut commencer avec une page blanche — créer un clip depuis zéro. MoviePy permet de le faire avec un simple appel à ColorClip
.
from moviepy.editor import ColorClip
# Création d'un clip rouge taille 640x360 et de 5 secondes
blank_clip = ColorClip(size=(640, 360), color=[255, 0, 0], duration=5)
blank_clip.write_videofile("blank_clip.mp4", fps=25)
Cela créera une vidéo rouge de 5 secondes. Simple, mais avec beaucoup de potentiel, non ?
Extraction d’audio depuis un vidéoclip
Commençons par extraire l’audio d’un vidéoclip. Cela pourrait être utile si la bande sonore originale vous plaît et que vous souhaitez la réutiliser séparément.
# Extraction de l'audio depuis une vidéo
audio = video.audio
# Sauvegarde de l'audio dans un fichier
audio.write_audiofile("extracted_audio.mp3")
Vous avez maintenant un fichier audio tiré de votre vidéo. Pratique quand vous avez juste besoin de l'accompagnement sonore.
Création d’un objet audioclip
MoviePy permet également d'ajouter des audioclips. Pour cela, on utilise la classe AudioFileClip
, qui ouvre un fichier audio et permet de le manipuler comme un vidéoclip.
from moviepy.editor import AudioFileClip
# Ouverture du fichier audio et création d'un audioclip
audio_clip = AudioFileClip("background_music.mp3")
# Affichage des informations sur la durée de l'audio
print("Durée de l'audio :", audio_clip.duration, "secondes")
2. Montage des vidéoclips et audioclips
Ajouter de l'audio à une vidéo
Maintenant que nous avons un vidéoclip et un audioclip, nous pouvons les combiner en ajoutant une piste audio à la vidéo. Dans MoviePy, cela se fait avec la méthode set_audio()
.
# Ajouter un audioclip à un vidéoclip
video_with_audio = video_clip.set_audio(audio_clip)
Ce code crée un nouvel objet video_with_audio
où l'audioclip audio_clip
est intégré dans le vidéoclip video_clip
.
Adapter la durée de l’audioclip
Parfois, la durée de l’audioclip et celle du vidéoclip diffèrent. Pour que l’audioclip corresponde à la vidéo, vous pouvez utiliser la méthode subclip()
pour couper l'audio ou le faire boucler jusqu’à la fin de la vidéo.
Couper l’audioclip à la longueur de la vidéo
# Couper l'audioclip pour qu'il ait la même durée que la vidéo
audio_clip_trimmed = audio_clip.subclip(0, video_clip.duration)
# Ajouter l’audio coupé à la vidéo
video_with_audio = video_clip.set_audio(audio_clip_trimmed)
Dans cet exemple :
audio_clip.subclip(0, video_clip.duration)
crée un nouvel audioclip découpé à la durée du vidéoclip.- La méthode
set_audio()
ajoute l’audio découpé à la vidéo.
Répéter l’audioclip pour correspondre à la vidéo
Si vous souhaitez que l’audioclip se répète jusqu’à la fin de la vidéo, utilisez la méthode fx()
avec la fonction loop
.
from moviepy.audio.fx.all import loop
# Répéter l'audioclip jusqu'à la durée de la vidéo
audio_clip_looped = loop(audio_clip, duration=video_clip.duration)
# Ajouter l'audio répété à la vidéo
video_with_audio = video_clip.set_audio(audio_clip_looped)
Dans cet exemple :
loop(audio_clip, duration=video_clip.duration)
crée un audio bouclé qui se répète jusqu’à la fin de la vidéo.- Nous ajoutons l’audio bouclé à la vidéo avec
set_audio()
.
3. Exporter une vidéo avec audio ajouté
Exporter un vidéoclip avec audio
Assurez-vous d'avoir les bons codecs installés, comme libx264
pour la vidéo et aac
pour l'audio, sinon personne ne pourra profiter de votre chef-d'œuvre.
Lors de l’exportation, vous pouvez spécifier différents paramètres, comme la résolution et le nombre d'images par seconde :
# Exporter une vidéo avec de nouveaux paramètres
video_with_audio.write_videofile(
"output_video_with_audio.mp4",
codec='libx264',
audio_codec='aac',
fps=30,
preset='medium',
bitrate="2000k"
)
Dans cet exemple :
write_videofile("output_video_with_audio.mp4", codec="libx264", audio_codec="aac")
sauvegarde une vidéo avec audio au format MP4, en utilisant les codecs vidéolibx264
et audioaac
.
Voilà ! Votre chef-d'œuvre est prêt à être téléchargé sur YouTube, Vimeo, ou tout simplement envoyé à vos amis.
Après avoir ajouté une piste audio à la vidéo, vous pouvez exporter le résultat sous forme de nouveau fichier en utilisant la méthode write_videofile()
.
Régler le volume de l’audioclip
Pour ajuster le volume de l’audio dans la vidéo, utilisez la méthode volumex()
, qui modifie le volume par un coefficient donné. Par exemple, pour réduire le son, utilisez une valeur inférieure à 1, et pour augmenter le son, une valeur supérieure à 1.
Exemple : Réduire le volume de l’audio
# Réduire le volume de l'audioclip de moitié
audio_clip_quieter = audio_clip.volumex(0.5)
# Ajouter l'audio avec volume réduit à la vidéo
video_with_audio = video_clip.set_audio(audio_clip_quieter)
video_with_audio.write_videofile("output_video_quieter.mp4")
Dans cet exemple :
audio_clip.volumex(0.5)
réduit le volume de l’audio à 50 % de l’original.set_audio()
etwrite_videofile()
ajoutent cet audio à la vidéo et sauvegardent le résultat.
4. Exemple complet
Créer une vidéo avec audio et paramètres ajustés
Mettons enfin tous les points abordés ensemble dans un exemple, où nous ajoutons une audio à une vidéo, la coupons à la bonne durée, ajustons le volume et exportons la vidéo finale.
from moviepy.editor import VideoFileClip, AudioFileClip
from moviepy.audio.fx.all import loop
# Ouverture du fichier vidéo
video_clip = VideoFileClip("sample_video.mp4")
# Ouverture du fichier audio
audio_clip = AudioFileClip("background_music.mp3")
# Ajustement du volume audio
audio_clip_adjusted = audio_clip.volumex(0.7)
# Boucler audio jusqu'à la fin de la vidéo
audio_clip_looped = loop(audio_clip_adjusted, duration=video_clip.duration)
# Ajouter de l'audio à la vidéo
video_with_audio = video_clip.set_audio(audio_clip_looped)
# Exporter vidéo avec audio
video_with_audio.write_videofile("final_output_with_audio.mp4", codec="libx264", audio_codec="aac")
Dans cet exemple :
- Nous chargeons la vidéo et l’audio.
- Nous ajustons le volume audio avec
volumex()
. - Nous bouclons l'audio à la durée de la vidéo.
- Nous ajoutons l'audio à la vidéo.
- Nous exportons la vidéo avec audio dans un fichier
final_output_with_audio.mp4
.
Erreurs fréquentes et solutions
En manipulant MoviePy, certaines erreurs — comme de vilains démons — pourraient gêner votre créativité, par exemple des problèmes avec les codecs audio ou l’incompatibilité des formats. Utilisez audio_codec='aac'
pour une encodage audio moderne, cela résoudra beaucoup de problèmes.
Si vidéo ou audio ne s’exportent pas, même si le code semble correct, vérifiez que les bons codecs sont installés. Téléchargez ou mettez à jour FFMPEG, utilisé par MoviePy comme moteur pour traiter vidéo et audio.
Plus maintenant que vous savez comment créer et exporter des vidéos, les possibilités sont infinies. Ces compétences pourraient être utiles dans des projets variés : depuis la création de tutoriels vidéo jusqu'à des contenus marketing. Lors d'entretiens, votre capacité à automatiser le travail avec des vidéos pourrait être votre atout. Et dans votre travail quotidien — elle pourrait vous faire gagner beaucoup de temps lors du traitement de contenu multimédia.
Il est temps de combiner magie du codage et créativité en pratique, et d’impressionner le monde avec vos vidéoclips. Et n’oubliez pas, comme l’a dit un sage programmeur : "Si le code ne fonctionne pas, ajoutez plus de caféine ; s’il fonctionne, ajoutez plus de panache !"
GO TO FULL VERSION