Emmanuel Kasper : Créer un clip vidéo (waveform) pour n'importe quel mp3 avec ffmpeg/avconv
dimanche 20 novembre 2016 à 13:56J'avais envie de créer pour une collection de fichiers audio une vidéo affichant une courbe audio, afin d'avoir quelque chose de mieux à afficher sur youtube qu'un bête logo.
( le resultat final est visible ici: https://www.youtube.com/watch?v=oI32z19iu_o )
En utilisant ffmpeg et son filtre "showvaves", on arrive a un résultat assez convaincant.
ffmpeg -i mon_fichier.wav -filter_complex "[0:a]showwaves=s=720x576:mode=cline:rate=12:scale=log:colors=Black|LightBlue,format=yuv420p[v]" -map "[v]" -map 0:a -c:v libx264 -c:a aac -b:a 192k ma_video.mp4
Cette commande va créer a partir d'un fichier wav un video au format mp4, en utilisant les bons codecs que recommande youtube (x264 pour la video, aac pour l'audio)
La vidéo sera en résolution DVD ce qui est largement suffisant a mon avis pour le web, mais vous pouvez remplacer 720x576
par 1920×1080 si vous voulez absolument du full hd.
Maintenant que l'on a une belle courbe audio, pourquoi ne pas ajouter une image en fond ?
Cette fois ci nous allons utiliser le filtre "blend" avec un fichier mon_logo.jpg, qui devra être à la même résolution que le fichier audio (ici 720x576 donc) L'image sera ici en arrière plan, car mon_logo.jpg est specifié en deuxième paramètre sur la ligne de commande.
ffmpeg -i ma_video.mp4 -i mon_logo.jpg -filter_complex "blend=all_mode=overlay:all_opacity=0.7" ma_video_logo.mp4
( le resultat final est visible ici: https://www.youtube.com/watch?v=oI32z19iu_o )
En utilisant ffmpeg et son filtre "showvaves", on arrive a un résultat assez convaincant.
ffmpeg -i mon_fichier.wav -filter_complex "[0:a]showwaves=s=720x576:mode=cline:rate=12:scale=log:colors=Black|LightBlue,format=yuv420p[v]" -map "[v]" -map 0:a -c:v libx264 -c:a aac -b:a 192k ma_video.mp4
Cette commande va créer a partir d'un fichier wav un video au format mp4, en utilisant les bons codecs que recommande youtube (x264 pour la video, aac pour l'audio)
La vidéo sera en résolution DVD ce qui est largement suffisant a mon avis pour le web, mais vous pouvez remplacer 720x576
par 1920×1080 si vous voulez absolument du full hd.
Maintenant que l'on a une belle courbe audio, pourquoi ne pas ajouter une image en fond ?
Cette fois ci nous allons utiliser le filtre "blend" avec un fichier mon_logo.jpg, qui devra être à la même résolution que le fichier audio (ici 720x576 donc) L'image sera ici en arrière plan, car mon_logo.jpg est specifié en deuxième paramètre sur la ligne de commande.
ffmpeg -i ma_video.mp4 -i mon_logo.jpg -filter_complex "blend=all_mode=overlay:all_opacity=0.7" ma_video_logo.mp4
Original post of Emmanuel Kasper.Votez pour ce billet sur Planet Libre.
Articles similaires
- Nono : Nono's Vrac 101 - Dalmatiens (13/12/2013)
- Guiona : KSH – Modifier la configuration sudo au travers d'un script (01/08/2010)
- Guiona : KSH – Comment récupérer le répertoire d’exécution et le nom d’un script (02/06/2010)
- System Linux : Purges Suppressions de fichiers (Argument list too long) (26/05/2011)
- Malangot : Condenser une video de la journee avec motion (24/05/2011)