Ich versuche, über 20 .avi-Dateien in einem Stapel mit ffmpeg zu konvertieren.
Ich habe folgendes
@echo off.
for file in *.avi
do
ffmpeg -i "$file" -s 640x480 -vcodec msmpeg4v2 "'basename "$file" .avi'.mpg';
done
in meiner .bat Datei funktioniert es aber nicht. Wie kann ich es unter Windows OS arbeiten lassen. Oh, und ja, alle Dateien befinden sich im selben Ordner.
Die Fehlermeldung, die ich erhalte:
Die Datei war zu diesem Zeitpunkt unerwartet
windows
conversion
ffmpeg
batch-file
Darius
quelle
quelle
cmd
) und dann die Batch-Datei unter Verwendung des vollständigen Pfads von dort auszuführen. Was willst du eigentlich mit den Videos machen? Was für Videos sind das? Müssen Sie sie nur in einen MPG-Container verschieben? Oder müssen Sie die Größe ändern? Oder brauchst du speziell denmsmpeg4v2
Codec Codec im Glossar erklärt?ffmpeg -i input.avi -c:v libx264 -crf 23 -s 640x480 output.mp4
ungefähr so lauten, dass der CRF-Wert die Qualität festlegt (weniger ist besser, mehr ist schlechter, gesunde Werte von 19 bis 24). Siehe auch: Konvertieren alter Videos in kleinere Größen und Welche Parameter sollte ich beachten, um die Größe einer .MOV-Datei zu reduzieren?Antworten:
Ihre Batchdatei hat nicht das richtige Format für ein Windows-Bat-Skript. Stattdessen sieht Ihr Skript so aus, als wäre es für Linux gedacht. Sie müssen das Skript ändern, um eine von der Windows-Shell unterstützte for-Schleife zu verwenden .
Im Folgenden finden Sie ein Beispiel für die Ausführung dieser Aufgabe mithilfe einer Windows for-Schleife. Fügen Sie einfach die folgende Zeile in Ihre Batch-Datei ein und verschieben Sie das Skript in dasselbe Verzeichnis wie die AVI-Dateien. Führen Sie es dann aus.
quelle
[NULL @ 000000000037e360] Unable to find a suitable output format for 'outputfile.avi.mpg;' outputfile.avi.mpg:: Invalid argument