Couper une vidéo avec FFmpeg : rapide, sans perte et précis à l'image
FFmpeg est le couteau suisse du découpage vidéo en ligne de commande. Voici les trois méthodes les plus pratiques, quand les utiliser, et les pièges à éviter.
Méthode 1 – Découpage standard (-ss après -i)
Syntaxe la plus simple ; décode jusqu'au point de départ, donc plus lente sur gros fichiers mais précise à l'image.
ffmpeg -i input.mp4 -ss 10 -to 30 -c copy output.mp4
-ss 10= début à 10 s-to 30= fin à 30 s (durée = 20 s)-c copy= copie de flux (pas de ré-encodage, instantané, zéro perte qualité)
Formats de temps acceptés : SS, SS.ms, MM:SS.ms, HH:MM:SS.ms.
Méthode 2 – Recherche rapide (-ss avant -i)
Cherche dans le démultiplexeur seulement ; beaucoup plus rapide sur gros fichiers mais peut atterrir sur l'image clé la plus proche (légèrement imprécis).
ffmpeg -ss 10 -i input.mp4 -to 30 -c copy output.mp4
Combinez les deux pour vitesse + précision :
ffmpeg -ss 00:00:08 -i input.mp4 -ss 2 -t 20 -c copy output.mp4
Le premier -ss cherche vite vers ~8 s ; le second -ss (après -i) affine de 2 s supplémentaires.
Méthode 3 – Durée au lieu de timecode de fin
Utilisez -t (durée) au lieu de -to (timecode).
ffmpeg -i input.mp4 -ss 10 -t 20 -c copy output.mp4
La mise en garde des images clés
Avec -c copy, les coupes s'alignent sur l'image clé (I-frame) la plus proche. Si vous avez besoin d'images exactes, ré-encodez :
ffmpeg -i input.mp4 -ss 10 -to 30 -c:v libx264 -preset fast -crf 18 output.mp4
Astuces pro
- Testez toujours avec
-t 5d'abord. - Utilisez
-copytspour préserver les timecodes originaux si concaténation ultérieure. - Pour du découpage par lot, écrivez une boucle shell ou un script Python qui appelle FFmpeg par clip.
Sauvegardez vos originaux, puis choisissez la méthode qui correspond à votre compromis vitesse/précision.
