Ceci est une ancienne révision du document !
Table des matières
Convertion Video / Audio
type convertion | Commande |
---|---|
Caméscope MTS → MKV | ffmpeg -threads 8 -i "file.MTS" -codec:s copy -codec:v libx264 -codec:a copy "file.mkv" |
WebM → MP3 | ffmpeg -i "file.webm" -vn -ab 128k -ar 44100 -y "file.mp3" |
mp3/m4a → wav | ffmpeg -i "file.mp3/m4a" "file.wav" |
mp4 → mp3 | ffmpeg -i "file.mp4" "file.mp3" |
m4a → mp3 | ffmpeg -i "file.m4a" -acodec libmp3lame -ab 128k "file.mp3" |
wav → mp3 | ffmpeg -i "file.wav" -acodec libmp3lame -ac 2 -ar 44100 -ab 256k -f mp3 "file.mp3" |
mkv → mp4 | ffmpeg -i "file.mkv" -c copy "file.mp4" |
Boucle for pour convertir un ensemble de fichiers
Pour faire une convertion d'un ensemble de fichier, on utilise for. On récupère la commande dans le tableau au dessus, qu'on insère juste après for file in *.ext_in; do (en remplaçant .ext_in par l'extension source qui nous intéresse), à la place du file.ext_in source on met “$file”, à la place du file.ext_out destination on met “${file%.ext_in}.ext_out” et on ajoute ; done.
Je refais quand même un petit tableau :
type convertion | Commande avec une boucle for pour traiter plusieurs fichiers |
---|---|
Caméscope MTS → MKV | for file in *.mts; do ffmpeg -threads 8 -i "$file" -codec:s copy -codec:v libx264 -codec:a copy "${file%.mts}.mkv"; done |
WebM → MP3 | for file in *.webm; do ffmpeg -i "$file" -vn -ab 128k -ar 44100 -y "${file%.webm}.mp3"; done |
mp3/m4a → wav | for file in *.mp3/m4a; do ffmpeg -i "$file" "${file%.mp3/m4a}.wav"; done |
mp4 → mp3 | for file in *.mp4; do ffmpeg -i "$file" "${file%.mp4}.mp3"; done |
m4a → mp3 | for file in *.m4a; do ffmpeg -i "$file" -acodec libmp3lame -ab 128k "${file%.m4a}.mp3"; done |
mkv → mp3 | for file in *.mkv; do ffmpeg -i "$file" -vn -c:a libmp3lame "${file%.m4a}.mp3"; done |
mkv → mp4 | for file in *.mkv; do ffmpeg -i "$file" -c copy "${file%.mkv}.mp4"; done |
Réduire la résolution
ffmpeg -y -r 20 -i input.mp4 -vf "scale=iw/2:ih/2" output.mp4
-y | écrase si le fichier de sortie existe déjà |
-r | définir un nombre de FPS |
-vf “scale=iw/2:ih/2” | réduit de moitié (/2) la largeur (iw) et la hauteur (ih). Ce nombre peut etre augmenté. |
Recouper une vidéo (trim)
Attention il existe 2 méthodes pour couper une vidéo : une rapide et approximative (sans réencodage), et une lente et précise (avec réencodage).
Rapide approximative
La méthode rapide utilise le “input seeking”.
ffmpeg -i input.mp4 -ss 00:04:40 -to 01:25:37 -c copy output.mp4
- -ss spécifie le marqueur de départ
- -to spécifie le marqueur de fin
- -c copy spécifie d'utiliser le codec audio et vidéo identique à la source
Lente précise
La méthode précise est lente car elle réencode toute la vidéo. Mais cela nous permet de la recouper de façon très précise.
ffmpeg -i input.mp4 -ss 00:02:09 -to 00:29:17 -c:v libx264 -c:a copy output.mp4
- -ss spécifie le marqueur de départ
- -to spécifie le marqueur de fin
- -c:v spécifie le codec vidéo (libx264 dans l'exemple)
- -c:a spécifie le codec audio (copy dans l'exemple, qui reprend le codec source)