all:bibles:linux:commandes:ffmpeg
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédente | |||
| all:bibles:linux:commandes:ffmpeg [2024/11/11 19:52] – [Copie de la partie vidéo sans l'audio] omeylhoc | all:bibles:linux:commandes:ffmpeg [2024/12/04 19:20] (Version actuelle) – [Copie d'une partie d'une vidéo (sans réencodage)] omeylhoc | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | ====== FFMPEG ====== | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Informations ===== | ||
| + | |||
| + | ==== Information sur le contenu d'une vidéo ==== | ||
| + | |||
| + | <code bash> | ||
| + | ffmpeg -i fichier | ||
| + | </ | ||
| + | |||
| + | ==== Liste des codecs ==== | ||
| + | |||
| + | === Liste des codecs === | ||
| + | |||
| + | * Liste tous les codecs (Audio, vidéo, sous-titres) disponibles en encodage et/ou décodage. | ||
| + | |||
| + | <code bash> | ||
| + | ffmpeg -codecs | ||
| + | </ | ||
| + | |||
| + | * Liste uniquement les codecs (Audio, vidéo, sous-titres) disponibles pour l' | ||
| + | |||
| + | <code bash> | ||
| + | ffmpeg -encoders | ||
| + | </ | ||
| + | |||
| + | * Liste uniquement les codecs (Audio, vidéo, sous-titres) disponibles pour le décodage. | ||
| + | |||
| + | <code bash> | ||
| + | ffmpeg -decoders | ||
| + | </ | ||
| + | |||
| + | === Liste les formats === | ||
| + | |||
| + | * Liste tous les formats de fichier (Audio, vidéo, sous-titres) disponibles en multiplexage et/ou démultiplexage. | ||
| + | |||
| + | <code bash> | ||
| + | ffmpeg -formats | ||
| + | </ | ||
| + | |||
| + | * Liste uniquement les formats de fichier (Audio, vidéo, sous-titres) disponibles pour le multiplexage. | ||
| + | |||
| + | <code bash> | ||
| + | ffmpeg -muxers | ||
| + | </ | ||
| + | |||
| + | * Liste uniquement les formats de fichier (Audio, vidéo, sous-titres) disponibles pour le démultiplexage. | ||
| + | |||
| + | <code bash> | ||
| + | ffmpeg -demuxers | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | [[all: | ||
| + | |||
| + | ===== Copie ===== | ||
| + | |||
| + | ==== Copie d'une partie d'une vidéo (sans réencodage) ==== | ||
| + | |||
| + | Permet de changer de container ou de prendre qu'une partie de la vidéo sans passer par un réencodage. | ||
| + | |||
| + | Exemple copie de la vidéo input.mkv dans output.mkv en commençant à partir de 3 mn et pour une durée de 10 mn et 1/2 seconde. | ||
| + | |||
| + | <code bash> | ||
| + | ffmpeg -i input.mkv -c copy -ss 00:03:00 -t 00:10:00.5 output.mkv | ||
| + | </ | ||
| + | |||
| + | ==== Copie de la partie vidéo sans l' | ||
| + | |||
| + | <code bash> | ||
| + | ffmpeg -i input.mkv -vcodec copy -an output.mkv | ||
| + | </ | ||
| + | |||
| + | ==== Copie de différents streams (audio/sous titres) ==== | ||
| + | |||
| + | * Identifier les streams avec la commande | ||
| + | |||
| + | <code bash> | ||
| + | ffmpeg -i input.mkv | ||
| + | </ | ||
| + | |||
| + | * Lancer la copie sur les streams désirés | ||
| + | |||
| + | <code bash> | ||
| + | ffmpeg -i input.mkv -map 0:0 -map 0:1 -map 0:2 -map 0:6 -map 0:7 -c copy output.mkv | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | [[all: | ||
| + | |||
| + | ===== Transformation ===== | ||
| + | |||
| + | ==== Réencodage ==== | ||
| + | |||
| + | === Réencodage de la partie vidéo === | ||
| + | |||
| + | <code bash> | ||
| + | ffmpeg -i input.mkv -vcodec hevc -acodec copy output.mkv | ||
| + | </ | ||
| + | |||
| + | === Réencodage de la partie audio === | ||
| + | |||
| + | <code bash> | ||
| + | ffmpeg -i input.mkv -vcodec copy -acodec libmp3lame output.mkv | ||
| + | </ | ||
| + | |||
| + | en précisant le bitrate : | ||
| + | |||
| + | <code bash> | ||
| + | ffmpeg -i input.mkv -vcodec hevc-acodec libmp3lame -b:a 64k output.mkv | ||
| + | </ | ||
| + | |||
| + | ==== Encodage à partir d'un DVD ==== | ||
| + | |||
| + | === Identification des streams à récupérer === | ||
| + | |||
| + | A partir du répertoire VIDEO_TS lister les streams disponibles : | ||
| + | |||
| + | <code bash> | ||
| + | ffmpeg -i VTS_01_1.VOB | ||
| + | </ | ||
| + | |||
| + | Noter les streams souhaités (stream vidéo 0:1 et stream audio 0:2 par exemple). | ||
| + | |||
| + | === Récupération des streams dans un seul fichier === | ||
| + | |||
| + | A partir du répertoire VIDEO_TS récupérer les streams souhaités de tous les fichiers VTS_xx_y.VOB : | ||
| + | |||
| + | <code bash> | ||
| + | ffmpeg -i " | ||
| + | </ | ||
| + | |||
| + | <note tip>On peut mettre les streams dans l' | ||
| + | |||
| + | === Encodage final === | ||
| + | |||
| + | Réencodage classique avec la commande : | ||
| + | |||
| + | <code bash> | ||
| + | ffmpeg -i fichier.mpeg -vcodec <codec video> -acodec <codec audio> <fichier de sortie> | ||
| + | </ | ||
| + | |||
| + | ==== Rotation d'une vidéo ==== | ||
| + | |||
| + | < | ||
| + | -vf " | ||
| + | </ | ||
| + | |||
| + | avec x : | ||
| + | |||
| + | * 0 : 90° antihoraire et miroir vertical | ||
| + | * 1 : 90° horaire | ||
| + | * 2 : 90° anti horaire | ||
| + | * 3 : 90° horaire et miroir vertical | ||
| + | |||
| + | Pour une rotation à 180° on fera 2 fois 90° : | ||
| + | |||
| + | < | ||
| + | -vf " | ||
| + | </ | ||
| + | |||
| + | ==== Effet miroir sur une vidéo ==== | ||
| + | |||
| + | <code bash> | ||
| + | ffmpeg -i input.mp4 -vf " | ||
| + | ffmpeg -i input.mp4 -vf " | ||
| + | </ | ||
| + | |||
| + | ==== Changement de résolution ==== | ||
| + | |||
| + | === format HD === | ||
| + | |||
| + | < | ||
| + | -vf scale=1920: | ||
| + | </ | ||
| + | |||
| + | ==== Modification vitesse ==== | ||
| + | |||
| + | L' | ||
| + | |||
| + | === Accélérer par 20 === | ||
| + | |||
| + | < | ||
| + | ffmpeg -r 500 -i input.mkv -r 25 output.mkv | ||
| + | </ | ||
| + | |||
| + | Ici on lit à 500 fps une source à 25 fps donc on accélère par 500/25 = 20 fois. Le fait d' | ||
| + | |||
| + | === Ralentir par 5 === | ||
| + | |||
| + | < | ||
| + | ffmpeg -r 5 -i input.mkv -r 25 output.mkv | ||
| + | </ | ||
| + | |||
| + | Ici on lit à 5 fps une source à 25 fps donc on accélère par 5/25 = 0,2 fois, on ralenti donc d'un facteur 5. | ||
| + | |||
| + | ==== Inverser une vidéo ==== | ||
| + | |||
| + | Appliquer le filtre d' | ||
| + | |||
| + | <code bash> | ||
| + | ffmpeg -i input.mp4 -vf reverse output.mp4 | ||
| + | </ | ||
| + | |||
| + | ==== Vidéo en split-screen ==== | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | ==== Mosaïque de vidéos==== | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | ---- | ||
| + | |||
| + | [[all: | ||
| + | |||
| + | ===== Concaténation de vidéos ===== | ||
| + | |||
| + | ==== Sans réencodage ==== | ||
| + | |||
| + | Créer un fichier " | ||
| + | |||
| + | < | ||
| + | file '/ | ||
| + | file '/ | ||
| + | ... | ||
| + | file '/ | ||
| + | </ | ||
| + | |||
| + | Puis lancer la commande : | ||
| + | |||
| + | <code bash> | ||
| + | ffmpeg -f concat -safe 0 -i liste.txt -c copy output.mkv | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | [[all: | ||
| + | |||
| + | ===== Sous titrage d'une vidéo ===== | ||
| + | |||
| + | ==== Intégration sous-titres dans la vidéo ==== | ||
| + | |||
| + | On peut intégrer un fichier de sous-titres au format SRT (SubRip). Le fichier doit être correctement formaté avec des marqueurs de temps. | ||
| + | |||
| + | <code bash> | ||
| + | ffmpeg -i input.mp4 -vf " | ||
| + | </ | ||
| + | |||
| + | === Personnalisation sous-titres === | ||
| + | |||
| + | <code bash> | ||
| + | ffmpeg -i input.mp4 -vf " | ||
| + | </ | ||
| + | |||
| + | ==== Ajout d'une piste de sous titres ==== | ||
| + | |||
| + | <code bash> | ||
| + | ffmpeg -i input.mkv -f srt -i sous-titres.srt -map 0:0 -map 0:1 -map 1:0 -c:v copy -c:a copy -c:s srt output.mkv | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | [[all: | ||
| + | |||
| + | ===== Chapitrage d'une vidéo ===== | ||
| + | |||
| + | ==== Créer fichier chapitres ==== | ||
| + | |||
| + | Créer un fichier au format OGG texte en évitant les accents et caractères spéciaux dans les titres : | ||
| + | |||
| + | < | ||
| + | CHAPTER01=00: | ||
| + | CHAPTER01NAME=Titre du premier chapitre | ||
| + | CHAPTER02=00: | ||
| + | CHAPTER02NAME=Titre du chapitre | ||
| + | ... | ||
| + | CHAPTER12=01: | ||
| + | CHAPTER12NAME=Titre du chapitre | ||
| + | </ | ||
| + | |||
| + | ==== Intégration à la vidéo ==== | ||
| + | |||
| + | Utiliser un outil comme [[https:// | ||
| + | |||
| + | ---- | ||
| + | |||
| + | [[all: | ||
| + | |||
| + | ===== Sources ===== | ||
| + | |||
| + | [[https:// | ||
| + | [[https:// | ||
| + | |||
| + | ---- | ||
| + | |||
| + | [[all: | ||
