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

Teil aus Videodatei von der Startposition bis zur Endposition mit FFmpeg ausschneiden

Ich habe eine Videodatei von 30 Minuten, aber ich möchte 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. Kann ich Ihnen helfen?

Antworten (6)

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

Installieren Sie ffmpeg

Stellen Sie sicher, dass Sie eine aktuelle Version von ffmpeg herunterladen und nicht die mit Ihrer Distribution mitgelieferte Version (z.B. Ubuntu) verwenden. Paketversionen aus verschiedenen Distributionen sind oft veraltet und verhalten sich nicht wie erwartet.

Oder selbst kompilieren .

Wie schneidet man ein Video ohne erneute Kodierung

Verwenden Sie dies, um Video aus [start] für [duration] zu schneiden:

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

Hier bedeuten die Optionen Folgendes:

  • -ss gibt die Startzeit an, e. g. 00:01:23.000 oder 83 (in Sekunden)
  • -t gibt die Dauer des Clips an (gleiches Format).
  • Kürzlich ffmpeg hat auch ein Flag, um die Endzeit mit -to zu versehen.
  • -c copy kopiert den ersten Video-, Audio- und Untertitel-Bitstrom von der Eingabe- in die Ausgabedatei, ohne sie neu zu kodieren. Dadurch wird die Qualität nicht beeinträchtigt, und der Befehl wird innerhalb von Sekunden ausgeführt.

Wie schneidet man ein Video mit Neukodierung aus

Wenn Sie die Option -c copy weglassen, kodiert ffmpeg automatisch das Ausgabevideo und -audio entsprechend dem von Ihnen gewählten Format neu. Für Video und Audio in hoher Qualität lesen Sie bitte den x264 Encoding Guide bzw. den 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
31
31
31
2015-05-07 02:30:48 +0000

Ich denke, Sie können jetzt 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.

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

Das ist merkwürdig, dass niemand die trim Filter vorgeschlagen hat.

Alles fallen lassen, außer der zweiten Minute der Eingabe:

ffmpeg -i INPUT -vf trim=60:120

Nur die erste Sekunde behalten:

ffmpeg -i INPUT -vf trim=duration=1

Alles fallen lassen, außer der zweiten 13 bis zur zweiten 58:

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

Sie können diese zwei Methoden verwenden, die unter Windows und Linux funktionieren.

Es gibt zwei Möglichkeiten, Videodateien durch ffmpeg aufzuteilen. Die erste ist an sich gut, mehr als das - sie ist schneller, erzeugt aber manchmal Ausgabedateien mit bestimmten Fehlern. Für diese Fälle gibt es also die zweite Art der Aufteilung von Videodateien: sie ist wesentlich langsamer, die Ausgabedateien sind größer, aber es scheint, dass sie immer das gleiche Qualitätsniveau wie die verwendeten Eingabedateien haben.

Wege 1:

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

Wege 2:

ffmpeg -ss <start> -i in1.avi -t <duration> out1.avi
  • <start> - der Anfang des Teils eines Video ffmpeg wird ausgeschnitten. Format: 00:00:00.0000, d.h. Stunden:Minuten:Sekunden:Millisekunden.

  • <duration> - die Dauer des Teils eines Video ffmpeg soll herausgeschnitten werden. Dasselbe 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 heraus. Die Dauer der ausgeschnittenen Videosequenz beträgt 5 Minuten 0 Sekunden.

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

Sie können dies verwenden

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

Hier müssen Sie die Dauer des Videos angeben, d.h. 00:25:33-00:09:23

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

Ich verwende die folgende Syntax, um Video mit ffmpef zu schneiden:

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

-t wird verwendet, um die Dauer in Sekunden einzustellen - Sie können die Endzeit nicht angeben, aber das sollte für Sie funktionieren.