2012-01-11 17:59:52 +0000 2012-01-11 17:59:52 +0000
151
151
Advertisement

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

Advertisement

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 de fin. Un peu d'aide, s'il vous plaît ?

Advertisement

Réponses (6)

255
255
255
2012-01-11 21:02:37 +0000

Installez ffmpeg

Assurez-vous que vous téléchargez une version récente de ffmpeg , et n'utilisez pas celle qui est fournie avec votre distribution (par exemple Ubuntu). Les versions packagées de diverses distributions sont souvent dépassées et ne se comportent pas comme prévu.

Ou compilez vous-même .

Comment couper une vidéo, sans réencodage

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

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

Ici, les options signifient ce qui suit :

  • -ss spécifie l'heure de début, e. g. 00:01:23.000 ou 83 (en secondes)
  • -t spécifie la durée du clip (même format).
  • Récent ffmpeg possède également un drapeau pour fournir l'heure de fin avec -to .
  • -c copy copie le premier flux binaire vidéo, audio et de sous-titres du fichier d'entrée vers le fichier de sortie sans les ré-encoder. Cela ne nuit pas à la qualité et permet d'exécuter la commande en quelques secondes.

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

Si vous laissez de côté l'option -c copy, ffmpeg ré-encodera automatiquement la vidéo et l'audio de sortie selon le format que vous avez choisi. Pour une vidéo et un audio de haute qualité, lisez respectivement le x264 Encoding Guide et le AAC Encoding Guide .

Par exemple :

ffmpeg -ss [start] -i in.mp4 -t [duration] -c:v libx264 -c:a aac -strict experimental -b:a 128k out.mp4
31
31
31
2015-05-07 02:30:48 +0000

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 this wiki page .

15
Advertisement
15
15
2015-04-07 15:10:38 +0000

Il est étrange que personne n'ait suggéré le trim filtre .

Tout laisser tomber sauf la deuxième minute de saisie :

ffmpeg -i INPUT -vf trim=60:120

Ne garder que la première seconde :

ffmpeg -i INPUT -vf trim=duration=1

Tout laisser tomber sauf de la seconde 13 à la seconde 58 :

ffmpeg -i INPUT -vf trim=13:58 OUTPUT
6
6
6
2013-10-03 19:08:40 +0000

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

Il existe deux façons de diviser les fichiers vidéo par ffmpeg. La première est bonne en soi, plus que cela - elle est plus rapide, mais crée parfois des fichiers de sortie avec certains défauts. Il y a donc dans ces cas-là la deuxième façon de diviser les fichiers vidéo : elle est considérablement plus lente, les fichiers de sortie sont plus gros, 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 la découpe. Format : 00:00:00.0000, c'est-à-dire heures:minutes:secondes:millisecondes.

  • <duration> - la durée de la partie d'une vidéo ffmpeg est à dé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 coupée est de 5 minutes 0 secondes.

-1
Advertisement
-1
-1
2012-01-11 18:29:57 +0000

Vous pouvez utiliser cette

ffmpeg -sameq -ss clip_start -t duration -i original.ogg clip.ogg

Ici vous devez donner la durée de la vidéo. ie. 00:25:33-00:09:23

-2
-2
-2
2012-01-11 18:27:11 +0000

J'utilise la syntaxe suivante pour couper la vidéo avec ffmpef :

ffmpeg -sameq -ss [start_seconds] -t [duration_seconds] -i [input_file] [outputfile]

-t est utilisé pour fixer la durée en secondes - vous ne pouvez pas spécifier l'heure de fin mais cela devrait fonctionner pour vous.

Advertisement
Advertisement