Alles anzeigenAVIload wird nicht so funktionieren, weil das ist eine von mir erstellte Funktion die ebenfalls in das Skript hinein müsste. Die Angaben die du da siehst sind Parameter die der Funktion übergeben werden. So stehen die Parameter für AVIload folgendermaßen:
AVIload(Pafd des Videos in Anführungszeichen, Bildschnitt für Links, Oben, Rechts, Unten, Pixel Typ als String [Auto, RGB24, YV24, YUY2, YV12, Y8], Angabe für FPS Rundung als String [Auto, Igno., Manueller FPS Wert als Bruch], FPS Zähler Wert, FPS Nenner Wert)
Um das zu verwenden benötigst du halt die Funktion dazu. Die wird aber durch den SSM individuell generiert. Je nachdem welche Einstellungen du getätigt hast.
Würde daher vorschlagen das du diese Option vergisst und es im SSM lässt.
-
Standard kannst du aber AVISource verwenden für AVI Files. http://avisynth.nl/index.php/AviSource
FFVideoSource und FFAudioSource muss in Kombination genutzt werden und braucht das Plugin FFMS2.DLL http://avisynth.nl/index.php/FFmpegSource#Function_Reference
Dann gibt es noch L-Smash: http://avisynth.nl/index.php/LSMASHSource
FFMS2 als auch L-Smash wirst du brauchen, wenn du vorhast andere Dinge in AVISynth zu laden wie z.B. MP4, MKV, etc. pp.
Darauf kannst du eine Batch aufbauen die solch ein Skript generiert. Denn ein AVISynth Skript kann nicht von sich aus erkennen ob in seinem Pfad eine Videodatei existiert oder nicht. Und schon gar nicht das AVISynth das automatisch in sein Skript schreibt.
Aber mit einer Batch Datei kannst du das bewerkstelligen oder man kann programmieren und schreibt sich ein kleines Tool dafür (Was eleganter wäre als eine Batch).
Theoretisch müsste die Batch oder das Tool folgende Aufgabe erfüllen:
- Prüfung ob keine, eine oder mehrere AVI Dateien im Ordner sind
- Sind AVI Dateien vorhanden muss für jede dieser Dateien ein Skript angelegt werden
- In jedem der Skripte muss dann die jeweilige AVI Datei (Am besten mit Pfad) von der Batch/Tool eingetragen werden
Um das in Batch umzusetzen wird das echt kompliziert. Wenn nicht gar unmöglich, da die Schleife für Dateinamen und Skripterstellung mehrer Dateien mit 2 Schleifen gelöst werden müsste und das würde bei einer Batch Komplikationen ergeben.
Aber ganz easy ist das z.B. schon mit QB64 zu regeln (Kostenlos): https://www.portal.qb64.org/
Alles anzeigenCode
PRINT #1, "AVISource(" + CHR$(34) + file$ + CHR$(34) + ").AutoFPS(" + CHR$(34) + "Auto" + CHR$(34) + ", 0, 0)"PRINT #1, " rate1 = (afps == " + CHR$(34) + "Auto" + CHR$(34) + ") ? (Round(Float(clip0.framerate * 1000)) / 1000) / 2 : nop()"PRINT #1, " rate2 = (afps == " + CHR$(34) + "Auto" + CHR$(34) + ") ? Round(clip0.framerate) / 2 : nop()"PRINT #1, " rate = (afps == " + CHR$(34) + "Auto" + CHR$(34) + ") ? (rate1 == rate2) ? 1 : 1001 : (afps == " + CHR$(34) + "Igno." + CHR$(34) + ") ? clip0.frameratedenominator : fpsd"PRINT #1, " ratefaktor = (afps == " + CHR$(34) + "Auto" + CHR$(34) + ") ? (rate == 1001) ? 1000 : 1 : nop()"PRINT #1, " clip0 = (afps == " + CHR$(34) + "Auto" + CHR$(34) + ") ? (rate == 1001) ? clip0.AssumeFPS(Round(clip0.Framerate) * 1000, rate) : clip0.AssumeFPS(round(clip0.framerate), rate) : (afps == " + CHR$(34) + "Igno." + CHR$(34) + ") ? clip0.AssumeFPS(clip0.frameratenumerator, rate) : clip0.AssumeFPS(fpsn, rate)"Funktioniert Tadellos. Die EXE Datei muss du mit QB64 erzeugen und in den Ordner kopieren wo du deine Videos hast.
Beim Ausführen, wird der Skript für jede AVI Datei erstellt die sich im Ordner befindet.
Kann man noch ausbauen. z.B.
- einen Absoluten Pfad für die Dateinamen mit in den Skript schreiben lassen
- Die Skripte dann in ein extra Ordner verschieben
So hätte man eine bessere Übersicht.
Man kann das auch Optisch über das Programm ausgeben lassen. Aber so hast du schon mal ein Muster. ;D
Hi, sorry für die späte Antwort. Vielen Dank auf jeden Fall für die ausführliche Erklärung, jetzt verstehe ich das Problem. Dafür muss ich mir also mehr Zeit einplanen