ffmpeg – Mehrere Videos gleichzeitig trimmen, ohne sie neu zu kodieren?

ffmpeg – Mehrere Videos gleichzeitig trimmen, ohne sie neu zu kodieren?

Ich habe einen Ordner, in dem die ersten 10 Minuten jeder MP4-Datei abgeschnitten werden müssen. Ich verwende Folgendes, um sie einzeln zu schneiden, aber es dauert zu lange, wenn ich sie einzeln mache

ffmpeg -i "untrimmed.mp4" -ss 00:10:00 -c copy "trimmmed.mp4"

Gibt es eine einfache Möglichkeit, mehrere Videodateien gleichzeitig zuzuschneiden?

Bearbeiten - Ich habe seitdem einen Workaround in Powershell gefunden - Beispiel mit 11 Minuten

Get-ChildItem -Filter *.mp4 | ForEach -Process { ffmpeg -i $_ -ss 00:11:00 -c copy ($_.BaseName + '_Trimmed.mp4')}

Antwort1

Das Konzept heißt Stapelverarbeitung und die Methode hängt vom System ab, da ffmpeg selbst diese Fähigkeit nicht besitzt.

Unter Windows möchten Sie möglicherweise verwenden, ForFilesum Dateien zu finden, die dem Muster entsprechen (z. B. *.mp4), und einen /CSchalter, um den ffmpeg-Befehl für die Ergebnisse auszuführen.

Unter Linux und in der MacOS-Befehlszeile findfunktioniert das Gleiche mit dem Schalter -exec.

Sie können in beiden Fällen Schleifen verwenden, diese machen die Dinge jedoch unnötig kompliziert, wenn dies das Einzige ist, was Sie tun möchten.

In einem Linux-Beispiel durchsucht dieser Befehl den aktuellen Ordner .nach Dateien mit Namen , die *.mp4dem Muster entsprechen, und führt dann für jedes Ergebnis ffmpeg aus. Die {}Ausgabe erfolgt an zB untrimmed.mp4_trim.mp4(damit kann man arbeiten, oder?). Das Escape-Zeichen ;am Ende schließt den -execSchalter:

find . -iname '*.mp4' -exec ffmpeg -i '{}' -ss 00:10:00 -c copy '{}_trim.mp4' \;

verwandte Informationen