# ffmpeg : quelques commandes utiles ## Couper une vidéo ``` ffmpeg -i src.mp4 -ss 00:00:00 -t 00:00:01 -async 1 out.mp4 ``` Ne garde que une seconde à partir du début de la vidéo. -t précise une durée, pas la fin. ``` ffmpeg -i src.mp4 -ss 00:00:02 -to 00:00:05 -async 1 out.mp4 ``` Ne rien réencoder, pas même les sous-titres ``` -c:v copy -c:a ac3 -c:s copy ``` Garde la vidéo située entre la 2e seconde et la 5e. ``` ffmpeg -i src.mkv -ss 00:00:00 -to 00:06:44 -map 0 -async 1 out.mkv ``` Garde les 6,44 premières minutes et conserve tous les sous-titres avec ''-map 0'' ## Ne pas réencoder la vidéo ``` -vcodec copy ``` ## Ne pas réencoder le son ``` -acodec copy ``` ## Taille 2 fois plus petite ``` -vf "scale=iw/2:ih/2" ``` ## Encodage en VP9 Cet encodeur est impressionnant. J'utilise ce script : ``` #!/bin/sh # require ffmpeg # convert video to webm using vp9 encoder for i in $@; do j="${i%.*}" ffmpeg -i ${i} -c:v libvpx-vp9 -b:v 0 -crt 31 -pass 1 -an -f webm /dev/null -y && \ ffmpeg -i ${i} -c:v libvpx-vp9 -b:v 0 -crt 31 -pass 2 -c:a libopus ${j}.webm done ``` ## Ajouter et remplacer l'audio L'option "shortest" permet de ne pas rallonger la vidéo si le son est plus long que cette dernière. ``` ffmpeg -i video.avi -i audio.mp3 -codec copy -shortest output.avi ``` Ajouter l'option "-itsoffset 3.84" permet de décaler le flux qui sera précisé ensuite. Il faut donc la préciser juste avant "-i audio.mp3" pour décaler l'audio.