Hallo zusammen,
ich habe ein kleines Problem mit einer Batchdatei zur Videokonvertierung. Folgendes Szenario:
Ich muss bei einem Video die schwarzen Balken wegschneiden (croppen). Damit dies vernünftig funktioniert habe ich die Anweisung in einem Avisynth-Script geschrieben. Damit ich aber nicht für jedes File ein eigenes Script schreiben muss (der Name des zu kodierenden Files steht ja im Script), kam ich auf den Gedanken, dafür einen universellen Dateinamen zu verwenden (quellvideo.mkv).
Ohne Croppen werden in einer For-Schleife einfach Videofiles erfasst und nacheinander per Kommandozeile kodiert. Jetz wollte ich das so machen:
Alle Videofiles wie immer im Kopf der For-Schleife erfassen, das File in Quellvideo.mkv umbennen, es kodieren lassen und es am Ende wieder mit dem Originalen Namen zu versehen.
Das Problem dabei ist, dass die Schleife anscheinend für den ersten Lauf zweimal durchläuft (ist mir auch schon bei anderen Batch-Dateien aufgefallen). Was bedeutet, dass der Name der Datei am Anfang ausgelesen wird (xy.mkv), in Quellvideo.mkv umbenannt wird, aber die umbenannte Datei wird anscheinend auch wieder erfasst. am Ende wird die Variable in der For-Schleife (%%i) mit den Namen "Quelldatei" gefüllt, so dass ich die Datei am Ende nicht mehr zurückbennen kann, weil am Ende Quelldatei.mkv in Quelldatei.mkv umbenannt wird...ich hoffe das ist soweit verständlich..;-)
Ich habne auch schon versucht, den Namen in eine Variable zu speichern, was ja auch nichts bringt, da diese dann auch überschrieben wird...
Die Datei sieht jetzt so aus:
Hat zufällig jemand eine Idee, wie ich Herr des Problems werden könnte?
Besten dank
Michael
ich habe ein kleines Problem mit einer Batchdatei zur Videokonvertierung. Folgendes Szenario:
Ich muss bei einem Video die schwarzen Balken wegschneiden (croppen). Damit dies vernünftig funktioniert habe ich die Anweisung in einem Avisynth-Script geschrieben. Damit ich aber nicht für jedes File ein eigenes Script schreiben muss (der Name des zu kodierenden Files steht ja im Script), kam ich auf den Gedanken, dafür einen universellen Dateinamen zu verwenden (quellvideo.mkv).
Ohne Croppen werden in einer For-Schleife einfach Videofiles erfasst und nacheinander per Kommandozeile kodiert. Jetz wollte ich das so machen:
Alle Videofiles wie immer im Kopf der For-Schleife erfassen, das File in Quellvideo.mkv umbennen, es kodieren lassen und es am Ende wieder mit dem Originalen Namen zu versehen.
Das Problem dabei ist, dass die Schleife anscheinend für den ersten Lauf zweimal durchläuft (ist mir auch schon bei anderen Batch-Dateien aufgefallen). Was bedeutet, dass der Name der Datei am Anfang ausgelesen wird (xy.mkv), in Quellvideo.mkv umbenannt wird, aber die umbenannte Datei wird anscheinend auch wieder erfasst. am Ende wird die Variable in der For-Schleife (%%i) mit den Namen "Quelldatei" gefüllt, so dass ich die Datei am Ende nicht mehr zurückbennen kann, weil am Ende Quelldatei.mkv in Quelldatei.mkv umbenannt wird...ich hoffe das ist soweit verständlich..;-)
Ich habne auch schon versucht, den Namen in eine Variable zu speichern, was ja auch nichts bringt, da diese dann auch überschrieben wird...
Die Datei sieht jetzt so aus:
Code:
for %%i in (*.mkv) do (
ren "%%~ni.mkv" "Quellvideo.mkv"
"C:\Programme\StaxRip\Applications\AviSynth plugins\ffms2\ffmsindex.exe" "Quellvideo.mkv"
C:\Programme\StaxRip\Applications\x264\x264.exe --preset slow --tune film --profile high --level 4.1 --pass 1 --bitrate 4000 --stats "264.stats" --demuxer "ffms" --index "Quellvideo.mkv.ffindex" --output NUL "avi.avs"
C:\Programme\StaxRip\Applications\x264\x264.exe --preset slow --tune film --profile high --level 4.1 --pass 2 --bitrate 4000 --sar 1:1 --stats "264.stats" --demuxer "ffms" --index "Quellvideo.mkv.ffindex" --output "%%~ni.h264" "avi.avs"
rem ren "Quellvideo.mkv" "%%~ni.mkv"
)
Hat zufällig jemand eine Idee, wie ich Herr des Problems werden könnte?
Besten dank
Michael