it-swarm.com.de

Schneiden Sie mit FFmpeg einen Teil der Videodatei von der Startposition zur Endposition

Ich habe eine 30-minütige Videodatei, möchte aber ein Video von 00:09:23 bis 00:25:33 extrahieren.

Ich kann die Startposition mit -ss definieren, aber ich konnte keine für die Endposition finden. Irgendeine Hilfe bitte?

135
x74x61

Installieren Sie ffmpeg

Stellen Sie sicher, dass Sie eine aktuelle Version von ffmpeg herunterladen und nicht diejenige verwenden, die mit Ihrer Distribution geliefert wird (z. B. Ubuntu). Paketversionen von verschiedenen Distributionen sind häufig veraltet und verhalten sich nicht wie erwartet.

Oder kompilieren Sie es selbst .

So schneiden Sie ein Video, ohne es neu zu codieren

Verwenden Sie diese Option, um ein Video aus [start] für [duration] auszuschneiden:

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

Hier bedeuten die Optionen Folgendes:

  • -ss gibt die Startzeit an, z. 00:01:23.000 oder 83 (in Sekunden)
  • -t gibt die Dauer des Clips an (dasselbe Format).
  • Letzte ffmpeg hat auch ein Flag, um die Endzeit mit -to zu versorgen.
  • -c copy kopiert den ersten Video-, Audio- und Untertitel-Bitstream von der Eingabe in die Ausgabedatei, ohne sie neu zu codieren. Die Qualität wird dadurch nicht beeinträchtigt, und der Befehl wird innerhalb von Sekunden ausgeführt.

So schneiden Sie ein Video mit Neukodierung

Wenn Sie die Option -c copy weglassen, kodiert ffmpeg das ausgegebene Video und Audio automatisch entsprechend dem von Ihnen gewählten Format neu. Lesen Sie für qualitativ hochwertiges Video und Audio x264 Encoding Guide bzw. AAC Encoding Guide .

Zum Beispiel:

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

Ich denke, Sie können jetzt den folgenden Befehl verwenden.

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

Schauen Sie sich auch ffmpeg Doc , oder diese Wiki-Seite an.

23
sflee

Das ist seltsam, dass niemand die trimfilter vorgeschlagen hat.

Lasse alles außer der zweiten Minute der Eingabe fallen:

ffmpeg -i INPUT -vf trim=60:120

Behalte nur die erste Sekunde:

ffmpeg -i INPUT -vf trim=duration=1

Lasse alles außer von Sekunde 13 auf Sekunde 58 fallen:

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

Sie können diese zwei Methoden verwenden, die für Windows und Linux funktionieren.

Es gibt zwei Möglichkeiten, um Videodateien mit ffmpeg zu teilen. Der erste ist an sich gut, mehr als das - er ist schneller, erzeugt aber manchmal Ausgabedateien mit bestimmten Fehlern. In diesen Fällen gibt es also die zweite Möglichkeit, Videodateien zu teilen: Es ist erheblich langsamer, die Ausgabedateien sind größer, aber anscheinend haben sie immer die gleiche Qualität wie die verwendeten Eingabedateien.

Weg 1:

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

Weg 2:

ffmpeg -ss <start> -i in1.avi -t <duration> out1.avi
  • <start> - Der Anfang des Teils eines Video-ffmpegs ist auszuschneiden. Format: 00:00:00.0000, dh Stunden: Minuten: Sekunden: Millisekunden.

  • <duration> - Die Dauer des Teils eines Video-ffmpegs ist auszuschneiden. Gleiches Format wie oben.

Beispiele:

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 schneidet einen Teil der Videodatei ab 1 Stunde 19 Minuten 0 Sekunden aus. Die Dauer der ausgeschnittenen Videosequenz beträgt 5 Minuten 0 Sekunden.

3
Christian Wörz