Ffmpeg
De Linuxmemo.
(→Information sur la video) |
|||
Ligne 26 : | Ligne 26 : | ||
ou | ou | ||
ffprobe file.avi | ffprobe file.avi | ||
- | + | ||
- | + | tbn = the time base in AVStream that has come from the container | |
+ | tbc = the time base in AVCodecContext for the codec used for a particular stream | ||
+ | tbr = tbr is guessed from the video stream and is the value users want to see when they look for the video frame rate | ||
+ | |||
===Encoder la vidéo=== | ===Encoder la vidéo=== | ||
-b configuration du débit binaire par défaut 200 kbps | -b configuration du débit binaire par défaut 200 kbps |
Version du 2 janvier 2018 à 14:53
Sources: https://wiki.debian.org/fr/ffmpeg
FFmpeg/Libav permet de multiplexer ou de-multiplexer dans différents formats:
des flux vidéos compressés (ou pas), des flux audio compressés (ou pas), des sous-titres dans différents formats.
Et de modifier, à l'aide de filtre, le contenu de chaque flux indépendamment.
insérer (muxer) ou extraire (demuxer)
"avconv" est un lien symbolic de "ffmpeg".
Sommaire |
Encodage
Formats + Codecs + Filtres
- liste des formats (container)
ffmpeg -formats
- liste les codecs disponible pour l'encodage
ffmpeg -codecs
- liste des filtre
ffmpeg -filters ffmpeg --help filter=filter_name
Information sur la video
ffmpeg -i file.avi ou avprobe file.avi ou ffprobe file.avi
tbn = the time base in AVStream that has come from the container tbc = the time base in AVCodecContext for the codec used for a particular stream tbr = tbr is guessed from the video stream and is the value users want to see when they look for the video frame rate
Encoder la vidéo
-b configuration du débit binaire par défaut 200 kbps -sameq copie à l'identique le débit binaire -s lxh configuration de la taille du cadre d'affichage (l est la largeur et h la hauteur) Resolutions -aspect configuration du format d'affichage (4:3, 16:9 ou 1.3333, 1.7777) -vcodec ou -c:v décision du choix du codec -pass nombre de passage à l'encodage, une passe (-pass 1) ou deux passes (-pass 2) -qmin détermine le seuil minimum du débit binaire variable (VBR) -qmax détermine le seuil maximum du débit binaire variable (VBR) -f sélectionne le nom du conteneur -r définit le nombre d'images par seconde
ffmpeg -i file.ts -map 0:1 -s 1024x600 -map 0:2 -c:a copy file.avi
Il est important de mapper tous les flux a garder.
Encoder le son
-acodec ou -c:a détermine le choix du codec -ar configuration de la fréquence d'échantillonnage (44100 Hz) -ab configuration du débit binaire par défaut 64 kbps -ac configure le nombre de canaux (mono-stéréo)
Conversion
Choix du format de sortie
C'est l’extension du fichier output qui détermine le type de la sortie
ffmpeg -i file.mkv -c copy output.avi
- ) lister les streams (pistes): ffmpeg -i file.mkv
- ) lister les streams que l'on garde avec -map: ffmpeg -i file.mkv -map 0:1 -map 0:2 -vcodec copy -acodec copy output.mkv
Changer de format sans toucher au flux
ffmpeg -i file.mkv -c copy file.mov -c copy: copie à l'identique la totalité des flux -c:v copy : copie à l'identique les pistes vidéos (ou -vcodec copy) -c:a copy : copie à l'identique les pistes audio (ou -acodec copy) -c:s copy : copie à l'identique les pistes sous-titres (ou -scodec copy)
Changer l'ordre des flux (mapping)
ffmpeg -i file.mkv -map 0:0 -map 0:2 -map 0:1 -map 0:4 -map 0:3 -c copy file-v2.mkv
Ajouter un flux
Le paramètre -map permet aussi d'ajouter un flux, dans l'exemple qui suit un sous-titre en espagnol (TOS-es.srt) en position 4 :
ffmpeg -i file.mkv -i TOS-es.srt -map 0:0 -map 0:1 -map 0:2 -map 1:0 -map 0:3 -map 0:4 -c:v copy -c:a copy -metadata:s:s:0 language=esp file-v2.mkv
Extraire un flux
En utilisant les possibilités du mapping il est très facile d'extraire un seul flux d'un fichier en comportant plusieurs :
ffmpeg -i file.mkv -map 0:2 -acodec copy file_BO.mkv
Dans cet exemple, on ne copie qu'une seule des pistes audio.
Extraire une piste audio en MP3
ffmpeg -i file.mkv -map 0:2 -acodec libmp3lame -ar 44100 -ac 2 -ab 192k file_BO.mp3
Extraire un sous-titre
ffmpeg -i file.mkv -map 0:4 -c:s srt file_FR.srt
Découpage
Extraire un segment
FFmpeg/Libav permet d'extraire, des morceaux d'un média, en précisant un point d'entrée avec -ss (-ss 00:06:46) et précisant un durée avec -t (-t 00:01:00). Cette fonction est très utile pour faire des tests d'encodage et pour valider sa commande. À noter que -ss et -t doivent être placés devant le premier input (-i).
ffmpeg -ss 00:06:46 -t 00:01:00 -i file.mkv -c copy file_extrait.mkv
Parfois la durée -t n'est pas prise en compte. On peut utiliser l'option -to en la plaçant au niveau du fichier de sortie
ffmpeg -ss 00:06:46 -i file.mkv -c copy -to 00:01:00 file_extrait.mkv
Actuces
- choisir ses codecs
ffmpeg -i input.webm -c:v copy -c:a flac output.mkv -c:v copy => codec:video copy l'originale -c:a flac => codec:audio en flac ou bien -c:av copy -> en une seule option
- supprimer des pistes audio ou vidéo (streams)
- utiliser plusieurs "threads"
ffmpeg -threads 4 -i file.mkv -c copy file.avi