ffmpeg & Sox

Commandes utiles et exemples pratiques avec ffmpeg

Installation

Debian, installer les bons dépôts

1apt-get install ffmpeg sox

MacOS, utiliser homebrew

1brew install ffmpeg sox

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

1ffmpeg -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

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

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

1for 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

1ffmpeg -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)

1ffmpeg -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)

1ffmpeg -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

1ffmpeg -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

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

normalize avec +5dB

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

video + lumineuse

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

fast start

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

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

1ffmpeg -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 ...

1sox 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

1ffmpeg -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

Crop vidéo, 2mono vers stéréo, 2 pistes audios,

Issu du Q8, on réassemble INPUT1 et INPUT2 dans un fichier stéréo -> piste audio 1 la stéréo console -> piste audio 2 la vidéo d'origine est croppée -> piste vidéo 1 on prend du début et on cut à 30min on réencode le tout en h264 + aac dans un conteneur mp4

1ffmpeg -i 06-e-core-INPUT1.m4a -i 06-e-core-INPUT2.m4a -i 06-e-core-LR.m4a -i 06-e-core-no-sound.mp4 -filter_complex "[0:a][1:a]join=inputs=2:channel_layout=stereo[a]" -map "[a]" -map 2 -map 3:v -c:a:2 copy -c:a:1 libfdk_aac -b:a 256k -c:a:2 copy  -filter:v "crop=1280:720:320:0" -c:v libx264 -to 00:30:00 06-ecore-croped-30.mp4

Stretcher un audio

exemple +25% :

1ffmpeg -y -i test1.WAV -filter:a "atempo=1.25" test1-stretch.WAV

tests

1ffmpeg -ss 00:00:00 -i cam4-1.dv -to 00:00:05 -vf yadif -vf scale=1024x576 -b:v 2000k _cam4-1.mp4
2ffmpeg -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
3ffmpeg -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

Liste des périphériques compatibles sous MacOS

1ffmpeg -hide_banner -f avfoundation -list_devices true -i ""

Export webcam du Macbook vers fichier

-i "videoDeviceName:audioDeviceName"

1ffmpeg -hide_banner -f avfoundation -pix_fmt bgr0 -r 25 -s 1280x720 -i "Caméra FaceTime HD (intégrée):Built-in Microphone" -s 640x360 -r 25 -c:v libx264 -c:a aac out.mp4

Stream vers serveur Facebook Live

Aller sur https://www.facebook.com/live/producer/

l'url de sortie est "URL du serveur" concaténé à "Clé de stream"

1ffmpeg -re -i "local-movie.mkv" -c:v libx264 -c:a copy -b:v 300k -maxrate 300k -bufsize 300k -f flv "rtmps://live-api-s.facebook.com:443/rtmp/10219340923617150?s_bl=1&s_ps=1&s_sw=0&s_vt=api-s&a=AbzhD2I9lw1nkVcN"
comments powered by Disqus