web-dev-qa-db-fra.com

Couper une partie du fichier vidéo de la position de départ à la position de fin avec FFmpeg

J'ai un fichier vidéo de 30 minutes, mais je veux extraire une vidéo de 00:09:23 à 00:25:33.

Je peux définir la position de départ avec -ss, mais je n’ai pas pu en trouver une pour la position finale. Toute aide s'il vous plaît?

135
x74x61

Installer ffmpeg

Assurez-vous que téléchargez une version récente de ffmpeg et n’utilisez pas celle fournie avec votre distribution (par exemple, Ubuntu). Les versions packagées de différentes distributions sont souvent obsolètes et ne se comportent pas comme prévu.

Ou compilez-le vous-même .

Comment couper une vidéo, sans ré-encodage

Utilisez ceci pour couper la vidéo de [start] pour [duration]:

ffmpeg -ss [start] -i in.mp4 -t [duration] -c copy out.mp4

Ici, les options ont les significations suivantes:

  • -ss spécifie l'heure de début, par exemple. 00:01:23.000 ou 83 (en secondes)
  • -t spécifie la durée du clip (même format).
  • ffmpeg récent a également un drapeau pour fournir l'heure de fin avec -to .
  • -c copy copie le premier train de bits vidéo, audio et de sous-titre de l'entrée vers le fichier de sortie sans les recoder. Cela n'affectera pas la qualité et rendra la commande exécutée en quelques secondes.

Comment couper une vidéo, avec réencodage

Si vous omettez l'option -c copy, ffmpeg réencodera automatiquement l'encodage vidéo et audio en sortie en fonction du format que vous avez choisi. Pour une qualité audio et vidéo supérieure, lisez le Guide de codage x264 et le Guide de codage AAC , respectivement.

Par exemple:

ffmpeg -ss [start] -i in.mp4 -t [duration] -c:v libx264 -c:a aac -strict experimental -b:a 128k out.mp4
234
slhck

Je pense que vous pouvez utiliser la commande suivante maintenant.

ffmpeg -i inputFile -vcodec copy -acodec copy -ss 00:09:23 -to 00:25:33 outputFile

Regardez aussi ffmpeg Doc , ou cette page wiki .

23
sflee

C'est étrange que personne n'ait suggéré la trimfilter .

Déposez tout sauf la deuxième minute de saisie:

ffmpeg -i INPUT -vf trim=60:120

Ne gardez que la première seconde:

ffmpeg -i INPUT -vf trim=duration=1

Tout laisser tomber sauf du deuxième 13 au deuxième 58:

ffmpeg -i INPUT -vf trim=13:58 OUTPUT
10
malat

Vous pouvez utiliser ces deux méthodes qui fonctionnent pour Windows et Linux.

Il existe deux manières de diviser des fichiers vidéo par ffmpeg. Le premier est bon en soi, plus que cela - il est plus rapide, mais crée parfois des fichiers de sortie avec certaines failles. Ainsi, dans ces cas, il existe un deuxième moyen de fractionner les fichiers vidéo: il est considérablement plus lent, les fichiers de sortie sont plus volumineux, mais il semble qu’ils soient toujours du même niveau de qualité que les fichiers d’entrée utilisés.

Voie 1:

ffmpeg -ss <start> -i in1.avi -t <duration> -c copy out1.avi

Voie 2:

ffmpeg -ss <start> -i in1.avi -t <duration> out1.avi
  • <start> - le début de la partie d'un ffmpeg vidéo est à couper. Format: 00:00:00.0000, signifiant heures: minutes: secondes: millisecondes.

  • <duration> - la durée de la partie d'un ffmpeg vidéo est à couper. Même format que ci-dessus.

Exemples:

ffmpeg -ss 01:19:00 -i in1.avi -t 00:05:00 -c copy out1.avi
ffmpeg -ss 01:19:00 -i in1.avi -t 00:05:00 out1.avi

ffmpeg découpe une partie du fichier vidéo à partir de 1 heure 19 minutes 0 secondes. La durée de la séquence vidéo est de 5 minutes 0 secondes.

3
Christian Wörz