FFmpeg est une série de logiciels de lecture et de traitement de flux vidéo (enregistrement, lecture, conversion, etc…).
FFmpeg attend les différentes options dans un ordre précis :
ffmpeg [global options] [input file options] -i input-file-name [output options] output-file-name * __global options :__ options à appliquer aux fichiers en entrée (vidéo/audio), en amont du processus * __input file options :__ options à appliquer aux fichiers en entrée (vidéo/audio), en amont du processus * __-i input-file-name :__ le(s) fichier(s) en entrée * __output options :__ actions à appliquer au média * __output-file-name :__ fichier en sortie avec le rendu final
Pour connaître les détails d'encodage d'un fichier (audio ou vidéo), il suffit de ne renseigner que le fichier d'entrée :
ffmpeg -i music.mp3 ffmpeg -i video.mp4
Pour convertir une vidéo d'un format à un autre (résultat de qualité plutôt médiocre) :
ffmpeg -i MaVideoSource.flv MaVideoDestination.mpeg
Même conversion au format DVD (qualité plus grande signifiant taille de fichier plus grande) :
ffmpeg -i MaVideoSource.flv -target pal-dvd -sameq MaVideoDestination.mpg
audio vidéo encodage command-line
Webm est le format vidéo HTML5 supporté et conseillé pour Chrome et Firefox.
Le contrôle de la qualité se fait via l'option ```c:v libvpx```. Avec divers options (source) :
ffmpeg -i input.mp4 -c:v libvpx -qmin 0 -qmax 50 -crf 5 -b:v 1M -c:a libvorbis output.webm
-b:v 1M
: gère le bitrate moyen des frames. La valeur par défaut donne un résultat médiocre, il est donc conseillé d'utiliser ce réglage.-crf 5
: permet d'imposer une qualité estimée “constante” à chaque frame, au lieu d'une qualité variable. Valeur entre 4 et 63, le plus bas donnant la meilleur qualité. Des valeurs autour de 10 sont un bon point de départ.-qmin 0
et -qmax 50
: permet de définir l'amplitude de variation de qualité (encore une fois, plus bas signifie meilleure qualité). Valeurs entre 0 et 63.Il est conseillé d'utiliser au moins b:v et/ou crf. Les paramètres qmin/qmax sont secondaires.
ffmpeg -i input.mp4 -vf "transpose=2" output.mp4