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, ForFiles
um Dateien zu finden, die dem Muster entsprechen (z. B. *.mp4
), und einen /C
Schalter, um den ffmpeg-Befehl für die Ergebnisse auszuführen.
Unter Linux und in der MacOS-Befehlszeile find
funktioniert 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 *.mp4
dem 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 -exec
Schalter:
find . -iname '*.mp4' -exec ffmpeg -i '{}' -ss 00:10:00 -c copy '{}_trim.mp4' \;