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" |
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 |
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é. |
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).
La méthode rapide utilise le “input seeking”.
ffmpeg -i input.mp4 -ss 00:04:40 -to 01:25:37 -c copy output.mp4
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