FFmpeg
FFmpeg est un ensemble d'outils informatiques pour traiter les documents vidéos et les documents audios.
C'est en ligne de commande que sont exécutées les actions.
Généralité
FFmpeg est proposée en deux versions :
- la version static contient deux fichiers autonomes. Cette version est utile pour l'usage en ligne de commande ;
- la version shared contient tous les fichiers séparés : exécutables et bibliothèques (dll). C'est la version qui permet à d'autres applications d'utiliser la bibliothèque.
FFmpeg
Site officiel :
Il existe plusieurs paquets :
- shared pour partagé : les bibliothèques (dll) sont à part des exécutables ; en conséquence l'exécutable ffmpeg.exe a une taille de 0,290 Mo
- static : ce paquet propose les programmes principaux incluant les bibliothèques (dll) ; en conséquence l'exécutable ffmpeg.exe a une taille de 60 Mo
Téléchargement de FFmpeg :
- site officiel :
- liens internes :
- FFmpeg 3.4.2, Cantor : http://www.phpage.fr/download/ffmpeg-3.4-win64-shared.zip
- FFmpeg 4.0.1, Wu : http://www.phpage.fr/download/ffmpeg-4.0-win64-shared.zip
- FFmpeg 4.1, al-Khwarizmi : http://www.phpage.fr/download/ffmpeg-4.1-win64-static.zip
ffmpeg.exe
, version 4.1, 64 bit, seul : http://www.phpage.fr/download/ffmpeg.exe-4.1-win64.zip
FFmpeg et capture d'écran
ffmpeg -f gdigrab -framerate 25 -i desktop bureau.mp4
: capture de tout le bureau ;ffmpeg -f gdigrab -framerate 2 -i title=ffmpeg fenetre.mp4
: capture la fenêtre dont le nom est "ffmpeg", en l'occurence c'est une fenêtre de l'explorateur de fichier avec le dossier "ffmpeg" qui est ouverte ;
FFmpeg et vidéo
FFmpeg est une collection de logiciels libres destinés au traitement de flux audio ou vidéo (enregistrement, lecture ou conversion d'un format à un autre).
ffmpeg -i videoorigine.avi -vf scale=320:240 videodestination.avi
ffmpeg -i videoorigine.webm -s 720x540 videodestination.webm
redimensionne la vidéo en 720 x 540 pixels ;ffmpeg -i arte.mpg -q 0 -ss "00:03:50" -t "00:00:05" arte-03-50.mpg
extrait cinq secondes de vidéo à partir de 3 min 50 s en qualité d'origine ;ffmpeg -i videoorigine.mov -r 25 videodestination.mp4
convertit le format (de .mov à .mp4) et force la fréquence d'image à 25 images par secondes (de 30 ips à 25 ips).
Pour copier tous les flux, avec le deuxième flux (index numéro 1) encodé sous libx264 et le flux audio numéro 138 (index numéro 137) encodé sous libvorbis :
ffmpeg -i INPUT -map 0 -c copy -c:v:1 libx264 -c:a:137 libvorbis OUTPUT
FFmpeg et image
ffmpeg -i img.jpeg img.png
: pour convertir du format JPEG au format PNG.
FFmpeg et audio
Analyser un document multimédia (audio ou vidéo) :
ffmpeg -i input.wav -filter:a volumedetect -f null /dev/null
ffmpeg -i video.mp4 -filter:a volumedetect -f null /dev/null
Une fois le résultat donné, récupérer la valeur maximum du volume (max_volume) et appliquer la valeur avec son opposé pour la modification ; par exemple, si la valeur maximum est -17, appliquer une modification de +17. Si la valeur maximum est 5, appliquer une modification de -5.
Exemple pour modifier le volume sonore, sans réencoder la vidéo :
ffmpeg -i video.mp4 -vcodec copy -af "volume=10dB" video-augmentee.mp4
ffmpeg -i video.mp4 -vcodec copy -af "volume=-5dB" video-diminuee.mp4
Un décalage de l'audio de 0,7 seconde par rapport à la vidéo est présent ; pour corriger cela :
ffmpeg.exe -i source-original.mp4 -itsoffset 0.7 -i source-original.mp4 -map 0:v -map 1:a -c copy destination.mp4
Pour faire des tests
La commande ci dessous permet de faire un essai d'encodage :
ffmpeg -ss 80 -t 60 -i videoInput.mpg -s 240x180 -b 380k -ab 64k videoOutput.flv
Cette commande convertit la portion commençant à t0 = 80 secondes (option -ss) et s'étendant sur une durée de 60 secondes (option -t) du fichier d'entrée "videoInput.mpg" codé en MPEG. Le fichier produit sera encodé en Flash, la taille d'image sera de 240×180, le débit engendré par son affichage de 380 kbps et le débit audio de 64 kbps.
Conversion par copie des flux vidéo et audio d'une portion commençant à 2 minutes et 58 secondes et d'une durée de 9 minutes et 34 secondes :
ffmpeg -ss 00:02:58 -t 00:09:34 -i entree.webm -vcodec copy -acodec copy sortie.webm
Exemple pour sortir un fichier AVI en qualité moyenne, à partir d'un fichier OGG Theora :
ffmpeg -ss 4518 -t 1100 -b 768k -ab 128k -i videoInput.ogv -f avi videoOutput.avi
Autres exemples :
rem transformation 1920x1080, 60 ips en 1920x1080 : original 137 Mo, après traitement 29 Mo ffmpeg -i fichiersource.mp4 -vf scale=1920:1080 mieux1920-60.mp4 rem transformation 1920x1080, 60 ips, 28000 kb/s, audio 256 kb/s en 1920x1080, 25 ips, 2048 kb/s, audio 96 kb/s : original 137 Mo, après traitement 10,5 Mo ffmpeg -i fichiersource.mp4 -r 25 -b:v 2048k -b:a 96k -vf scale=1920:1080 mieux-1920-25-v2048-a096.mp4 rem transformation 1920x1080, 60 ips en 1280x720 : original 137 Mo, après traitement 12,7 Mo ffmpeg -i fichiersource.mp4 -vf scale=1280:720 mieux-1280-60.mp4 rem transformation 1920x1080, 60 ips en 1024x576 : original 137 Mo, après traitement 8,4 Mo ffmpeg -i fichiersource.mp4 -vf scale=1024:576 mieux-1024-60.mp4
À noter : ne pas utiliser de valeur impaires pour les dimensions d'images.
ffmpeg et PowerShell
Pour utiliser ffmpeg en ligne de commande avec PowerShell, il est impératif de séparer l'exécutable ffmpeg.exe et les arguments :
start-process ffmpeg.exe -argumentlist "-i 20191220_154316.mp4 -r 25 -b:v 2048k -b:a 96k -vf scale=1280:720 mieux-1280-25-v2048-a096.mp4"
À l'exécution, cette syntaxe lance une fenêtre de commande DOS le temps de l'exécution de la commande.
Repère
Taille des vidéos :
Taille | Proportion | Nom |
---|---|---|
16 x 9 | 1,777:1 | 16/9e |
320 x 180 | 1,777:1 | |
480 x 270 | 1,777:1 | |
640 x 360 | 1,777:1 | |
720 x 406 | 1,777:1 | |
1 024 x 576 | 1,777:1 | SD (720 x 576) |
1 280 x 720 | 1,777:1 | 720p, HD TV |
1 920 x 1 080 | 1,777:1 | 1080p, Full HD |
Taille | Proportion | Nom |
---|---|---|
2,35 x 1 | 2.35:1 | CinemaScope ou Panavision |
1 920 x 818 | 2.35:1 | CinemaScope ou Panavision |
720 x 302 | 2,379 | |
1 024 x 430 | 2,379 | |
1 280 x 538 | 2,379 |
Repère de paramétrage
Type | Durée | Dimension en pixel |
Poids | Débit vidéo | Débit audio | Observation |
---|---|---|---|---|---|---|
Original | 1 h 37 min 55 s | 1 280 x 720 | 1 969 584 ko | 2 616 kb/s | 125 kb/s | |
Essai 1 | 1 h 37 min 55 s | 1 024 x 576 | 1 538 461 ko | 2 042 kb/s | 96 kb/s | dimension et débit audio forcés |
Essai 2 | 1 h 37 min 55 s | 1 024 x 576 | 804 928 ko | 1 024 kb/s | 96 kb/s | dimension, débit vidéo et débit audio forcés |
Essai 3 | 1 h 37 min 55 s | 1 024 x 576 | 621 760 ko | 768 kb/s | 96 kb/s | dimension, débit vidéo et débit audio forcés |
Essai 4 | 1 h 37 min 55 s | 720 x 406 | 344 605 ko | 480 kb/s | 128 kb/s | dimension forcée |
Source Wikipédia, définition d'écran : https://fr.wikipedia.org/wiki/D%C3%A9finition_d%27%C3%A9cran