In Windows möchte ich eine Batch-Datei erstellen, die ein bestimmtes Verzeichnis durchläuft alle Namen der Dateien und übergeben sie jeweils an einen Befehl, ffmpeg in meinem Fall. Ich habe zwei oder drei Beispiele gefunden, wie ffmpeg zum Durchlaufen eines Ordners benutzt wird, aber sie waren alle in Linux. Zur Zeit ich ein Python-Skript verwenden, dies zu tun:Durchlaufen Dateinamen in einem Ordner in Windows und senden Sie jeden Namen zu ffmpeg Befehl
import os
import subprocess
sourcedir = "G:\Animation\Anime\OnePiece\Episodes\Main"
outputdir = "G:\Animation\Anime\OnePiece\Episodes\Converted"
for file in os.listdir(sourcedir):
name = file[:file.rfind(".")]
subprocess.call("ffmpeg -i " + sourcedir + "\\" + name + ".mkv -s 640x480 -map 0 -vcodec libx265 "+ outputdir + "\\" + name + ".mkv")
Auch wenn es direkt über eine Windows-Batch-Datei anstatt über Python läuft die Zeit abnimmt, benötigt ein Video von 10 Sekunden zu kodieren, wird es buchstäblich sparen Ich Stunden.
Und nur ein Gedanke, wird es besser sein mit den Bash-Befehlen auf Cygwin?
Was Sie brauchen, ist ein 'for' Schleife - einen Befehl öffnen Aufforderungsfenster, geben Sie' für/'und den Hilfetext lesen ... – aschipfl
ich es sehr bezweifeln wird ffmpeg schneller laufen?. Es spielt keine Rolle, ob Python oder cmd.exe den Prozess erzeugt, ffmpeg wird trotzdem ausgeführt. – Squashman
@aschipfl Ich weiß, was eine for-Schleife ist, aber ich weiß nicht Cmd/Batch-Programmierung, können Sie bitte eine Syntax zu extrahieren alle Dateinamen einen nach Namen und übertragen sie auf einen Befehl? – daddyodevil