ffmpeg, la boite à outils multimédia
Table des matières
ffmpeg est un logiciel très puissant de lecture et encodage de vidéo, s'utilisant en ligne de commande. Il existe des interfaces graphiques, mais ici, je parlerai de la ligne de commande.
Quelques commandes tordues qui m'ont "sauvé la vie" se trouvent ci-dessous.
Hé oui, cela ne sert à rien d'utiliser ffmpeg si le format qu'on souhaite traiter n'est pas pris en charge
La commande suivante répondra à nos interrogations :
Vous avez pris une vidéo avec votre smartphone préféré en mode portrait, et quand vous lisez celle-ci sur votre PC, il faut tourner la tête.
Voici la commande magique (exemple réalisé avec un fichier mp4)
Pour cela, rien de plus simple :
Par défaut, la qualité est de 128kb/s Pour changer cette valeur utiliser -ab :
Il est aussi possible d'enregistrer son bureau :
Et avec le microphone en HD :
Pour conserver la même qualité, utiliser le paramètre -qscale :
Si vous êtes comme moi, à aimer les photos, parfois, on est moins réactif qu'en effectuant une vidéo.
Pour extraire les images d'une vidéo (à environ 25 images par secondes), voici l'a ligne de commande à utiliser :
Pour couper une scène de la vidéo, on peut utiliser -ss pour le début de la séquence et -t pour sa durée.
Par exemple, pour couper 30 secondes de vidéo à partir de 39 minutes 45 secondes (en conservant la qualité originale), on utilisera :
Avec OpenShot, je ne peux exporter en HD qu'en format 16/9. Or, ma vidéo de base est en 4/3. Ca me créé donc 2 bandes noires de chaque côté. Voici l'astuce pour rogner la vidéo avec ffmpeg
La vidéo a été sortie en 1280x720. Je conserve les 720 de hauteur. La vidéo est centrée (Les 2 bandes noires sont de la même largeur).
(720x4)/3 = 960 au total.
Donc, j'ai 1280-960=320px à rogner (160 de chaque côté).
La commande que je vais utiliser est
où
Ici j'ai une vidéo en MP4, je veux la convertir en OGG mais en ne dépassant pas un bitrate vidéo de 512k et audio de 96k :
Introduction
ffmpeg est un logiciel très puissant de lecture et encodage de vidéo, s'utilisant en ligne de commande. Il existe des interfaces graphiques, mais ici, je parlerai de la ligne de commande.
Commandes
Quelques commandes tordues qui m'ont "sauvé la vie" se trouvent ci-dessous.
Que puis-je lire ? et encoder ?
Hé oui, cela ne sert à rien d'utiliser ffmpeg si le format qu'on souhaite traiter n'est pas pris en charge
La commande suivante répondra à nos interrogations :
Code BASH :
ffmpeg -formats
Pivoter une vidéo de 90°
Vous avez pris une vidéo avec votre smartphone préféré en mode portrait, et quand vous lisez celle-ci sur votre PC, il faut tourner la tête.
Voici la commande magique (exemple réalisé avec un fichier mp4)
Code BASH :
ffmpeg -i ori.mp4 -vf "transpose=1" ret.mp4
Valeurs possibles de transpose :
0 = 90CounterCLockwise and Vertical Flip (default)
1 = 90Clockwise
2 = 90CounterClockwise
3 = 90Clockwise and Vertical Flip
1 = 90Clockwise
2 = 90CounterClockwise
3 = 90Clockwise and Vertical Flip
Extraire l'audio d'une vidéo
Pour cela, rien de plus simple :
Code BASH :
ffmpeg -i video.mp4 audio.mp3
Par défaut, la qualité est de 128kb/s Pour changer cette valeur utiliser -ab :
Code BASH :
ffmpeg -i video.mp4 -ab 256k son.mp3
Capturer l'écran de son bureau
Il est aussi possible d'enregistrer son bureau :
Code BASH :
ffmpeg -b 3000k -f x11grab -s 1920x1080 -r 30 -i :0.0 bureau.mpg
- -b 3000k : correspond au bitrate
- -s 1920x1080 : correspond à la résolution en partant du coin supérieur gauche
Et avec le microphone en HD :
Code BASH :
ffmpeg -f alsa -ac 2 -i pulse -f x11grab -r 30 -s 1920x1080 -i :0.0 -acodec pcm_s16le -vcodec libx264 bureau.mkv
Convertir une vidéo mp4 en avi en conservant la même qualité
Pour conserver la même qualité, utiliser le paramètre -qscale :
Code BASH :
ffmpeg -i video.mp4 -qscale 0 video.avi
Extraire d'une vidéo les images en png
Si vous êtes comme moi, à aimer les photos, parfois, on est moins réactif qu'en effectuant une vidéo.
Pour extraire les images d'une vidéo (à environ 25 images par secondes), voici l'a ligne de commande à utiliser :
Code BASH :
ffmpeg -i video.mp4 -r 25 output_%04d.png
Couper une vidéo
Pour couper une scène de la vidéo, on peut utiliser -ss pour le début de la séquence et -t pour sa durée.
Par exemple, pour couper 30 secondes de vidéo à partir de 39 minutes 45 secondes (en conservant la qualité originale), on utilisera :
Code BASH :
ffmpeg -i sequenceacouper.avi -ss 00:39:45.00 -t 00:00:30.00 -c:v copy -c:a copy nouvellesequence.avi
Rogner une vidéo
Avec OpenShot, je ne peux exporter en HD qu'en format 16/9. Or, ma vidéo de base est en 4/3. Ca me créé donc 2 bandes noires de chaque côté. Voici l'astuce pour rogner la vidéo avec ffmpeg
La vidéo a été sortie en 1280x720. Je conserve les 720 de hauteur. La vidéo est centrée (Les 2 bandes noires sont de la même largeur).
(720x4)/3 = 960 au total.
Donc, j'ai 1280-960=320px à rogner (160 de chaque côté).
La commande que je vais utiliser est
Code BASH :
ffmpeg -i in.mp4 -filter:v "crop=out_w:out_h:x:y" out.mp4
où
- out_w est la largeur de la vidéo finale
- out_h est la hauteur de la vidéo finale
- x et y spécifient les coordonnées du coin supérieur gauche du rectangle précédemment défini (les coordonnées 0:0 sont en haut à gauche de la vidéo
Dans mon exemple, j'ai donc utilisé :
Code BASH :ffmpeg -i in.mp4 -filter:v "crop=960:720:160:0" out.mp4
Convertir une vidéo en forcant un bitrate
Ici j'ai une vidéo en MP4, je veux la convertir en OGG mais en ne dépassant pas un bitrate vidéo de 512k et audio de 96k :
Code BASH :
ffmpeg -i CLDM.mp4 -b:v 512k -b:a 96k CLDM-2.ogg