| # 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.
--- |