ffmpeg & Sox le mémo

Installation

Debian, installer les bons dépôts apt-get install ffmpeg sox

MacOS, utiliser homebrew

brew install ffmpeg sox

Générer une vidéo mp4/aac h264 à partir d'une image .jpg et d'un son .wav

ffmpeg -loop 1 -i input.jpg -i input.wav -c:v libx264 -c:a aac -strict experimental -b:a 192k -shortest output.mp4

Convertir un mp2 256Kb/s 48KHz stéréo issu d'Adeuxi en un mp3 128Kb/s 44.1Khz stéreo

ffmpeg -i input.mp2 -b:a 128k -ar 44100 output.mp3

Convertir un répertoire de wav en mp3, en qualité max (320Kbps)

for i in *.wav; do ffmpeg -i "$i" -q:a 0 "${i%.wav}.mp3"; done;

Réduire une grande image à une largeur max de 500px, hauteur libre

ffmpeg -i input.jpg -vf scale=500:-1 output.jpg

Convertir un m4v export de Final Cut, en format mp4 lisible pour le web (chargement court, débit moyen)

ffmpeg -i video.m4v -movflags +faststart -b:v 1500k -b:a 192k video.mp4

Note Noémie

1- cut : (ss = timecode début, to = durée)

ffmpeg -ss 00:09:10 -i ZOOM0021.MOV -to 00:50:00 -c copy les-mondes-engloutis.mp4

2- la complète : normalisation, brightness, faststart, débit audio/video

ffmpeg -i les-mondes-engloutis.mp4 -af "volume=12.3dB" -vf "lutyuv=y=val*1.5" -c:a aac -strict experimental -b:a 192k -movflags faststart -b:v 1200k export/les-mondes-engloutis.mp4

detect niveau d'amplification possible. ex niveau max -5dB

ffmpeg -i video.avi -af "volumedetect" -f null /dev/null

normalize avec +5dB

ffmpeg -i cornflakes-girl.mp4 -af "volume=12.2dB" -c:v copy -c:a aac -strict experimental -b:a 192k cornflakes-girl2.mp4

video + lumineuse

ffmpeg -i input.avi -vf "lutyuv=y=val*1.3" -vcodec ... -acodec ... output.avi ffmpeg -i ZOOM0001.MOV -ss 25 -t 5 -vf "lutyuv=y=val*1.3" 1.mp4

fast start

ffmpeg -i in.mp4 -c:a copy -c:v copy -movflags faststart out.mp4

Désentrelacement, conv DV vers mp4, limitation du débit

ffmpeg -ss 00:00:00 -i cam4-1.dv -to 00:04:14 -vf yadif -b:v 3000k cam4-1.mp4

Split d'un fichier audio par détection de silence

1er triplet : détection d'un silence initial, d'au moins 0.5 sec en dessous d'un seuil à 0.1% 2ème triplet : détection d'un silence au cours du fichier, d'au moins 0.5 sec en dessous d'un seuile à 0.1% boucler et écrire des fichiers séparés : export_001.wav, export_002.wav ...

sox source.wav export_.wav silence 1 0.5 0.1% 1 0.5 0.1% : newfile : restart

Incrustation par chromakey

colorkey prend une valeur rgb chromakey prend une valeur yuv

ffmpeg -y -i background.mp4 -i overlay-with-chromakey.mp4 -filter_complex "[1:v]colorkey=0x22aa00:similarity=0.3[1v]; [0:v][1v]overlay[v]" -map "[v]" -an output.mp4

tests

ffmpeg -ss 00:00:00 -i cam4-1.dv -to 00:00:05 -vf yadif -vf scale=1024x576 -b:v 2000k _cam4-1.mp4 ffmpeg -ss 00:00:00 -i cam4-1.dv -to 00:00:10 -vf yadif -vf scale=1024x576,setdar=4:3 -b:v 2000k _cam4-1.mp4 ffmpeg -ss 00:00:00 -i cam4-1.dv -to 00:00:10 -vf yadif -vf scale=1024x576,setdar=16:9 -b:v 2000k _cam4-1.mp4