x264 2pass mit Avisynth?

  • Morgen zusammen,

    ich würde gerne bei einer 2pass-Kodierung ein AVS-Script einbinden, bekomme das aber irgendwie nicht hin. Beim Single-Pass klappt das wunderbar, beim 2pass wiederum nicht. Da ich das ganze in einer Batch-Datei ablaufen lasse und das jeweilige Fenster sich auch sofort wieder schließt, kann ich auch nicht sagen, worin der Fehler liegt.

    Beim Single mache ich das so:

    Code
    "C:\Program Files (x86)\x264\x264.exe" "avs.avs" --output "%%~ni.h264" --preset slow --tune film --vbv-bufsize 78125 --vbv-maxrate 62500 --profile high --level 4.1 --crf 21

    mit dem jeweiligen AVS-Script

    Code
    LoadPlugin("C:\Program Files (x86)\StaxRip\Applications\AviSynth plugins\ffms2\ffms2.dll")FFVideoSource("Quellvideo.mkv")ConvertToYV12()


    Die Anweisung für den 2pass habe ich damals so gemacht:


    Das hat generell auch funktioniert, nur möchte ich mir die Möglichkeit offen lassen, den Clip zu bearbeiten, also andere Auflösung, entrauschen ect. Vielleicht mache ich Fehler beim indexieren...keine Ahnung...

    Hätte jemand einen Ansatz für mich?


    Besten dank

    Lapje

    2 Mal editiert, zuletzt von LigH (8. April 2014 um 11:17) aus folgendem Grund: Hilfszeile zur Lesbarkeit eingefügt

  • Wozu hast du eigentlich ein AviSynth-Skript, wenn du das gar nicht als Videoquelle verwendest, sondern das "Original"-MKV mit dem x264-internen ffms-Splitter direkt lädst? Sofern diese x264-Version den überhaupt eingebaut hat.

    Der Befehl, am Ende einer Batchdatei zu warten, bis der Anwender die Ausgabe gelesen hat, heißt übrigens "PAUSE".

    Und es dürfte auch nicht gerade notwendig sein, das Video immer wieder neu zu indizieren, wenn es sich gar nicht geändert hat. Es sei denn, dein Quell-Video verändert sich andauernd, hat aber immer den gleichen Dateinamen.

    Wenn du das AviSynth-Skript als Quelle für x264 verwendest, wird es automatisch bei der Verwendung von FFVideoSource einen Index anlegen, wenn der noch nicht vorhanden ist. Zusätzlich gibt es aber auch in AviSynth die Funktion FFIndex(), die man im Skript alternativ zum Aufruf der ffmsindex.exe in einer Batchdatei verwenden kann.

  • Zum einen: Pause ist drinn...trotzdem schließt sich das ganze direkt...

    Das 2Pass-Script, was ich oben gepostet habe, ist das bisherige, was funktioniert...das möchte ich jetzt so umbauen, dass ich eine avs-Datei einbinden kann...

  • Zum einen: Pause ist drinn...trotzdem schließt sich das ganze direkt...

    Dann ist es nicht da, wo es hingehört. Kann ich aber nicht beurteilen, ohne dass du deine aktuelle Batch-Datei zeigst.

    Das 2Pass-Script, was ich oben gepostet habe, ist das bisherige, was funktioniert...das möchte ich jetzt so umbauen, dass ich eine avs-Datei einbinden kann...

    Dann lass --demuxer "ffms" weg, weil AviSynth-Skripte keinen spezifischen Demuxer brauchen; und lass --index "%%~ni.mkv.ffindex" weg, weil das AviSynth-Plugin das selber festlegt.

    Überhaupt, wieso solche Parameter "%%~ni"? Läuft da was in einer Schleife? Warum hast du uns das vorenthalten?

  • Weil ich nicht verwirren wollte...hier das ganze:

    Die Zeilenumbrüche hab ich mal der besseren Übersicht halber reingemacht...

  • Code
    for /F "delims=;" %%i in ('dir /B *.mkv') do


    macht sicher nichts anderes als

    Code
    for %%i in (*.mkv) do


    wenn ich nichts übersehen habe...

    Vermutlich willst du für jedes Quellvideo ein eigenes Skript generieren. Das wird also in der Schleife mit ECHO erzeugt.

    Dann wie gesagt weglassen, was bei Versorgung mit AviSynth-Skripten überflüssig ist:

    Übersichtlichkeits-Zeilenumbrüche natürlich wieder entfernen...

  • Soweit wie mir gesagt wurde (hab da ja auch nicht so die Ahnung von) schließt

    Code
    for /F "delims=;" %%i in ('dir /B *.mkv') do

    auch Unterordner mit ein. Sehr hilfreich bei Sat-Aufnahmen und ProjectX.

    Nein, ich möchte ein Script für mehrere Videos (z.B. Serien, oder Videos, welche nach dem gleichen Prinzip bearbeitet werden). Daher im avs-Script "Quellvideo.mkv"...da soll das eigentliche File hin umbenannt werden und nach dem kodieren wieder zurück. So könnte ich, soweit die Theorie, mehrere Videos in einem Rutsch kodieren...

    Den Rest werde ich ausprobieren...

    besten dank bis hierhin...

    Lapje

  • Soweit wie mir gesagt wurde (hab da ja auch nicht so die Ahnung von) schließt

    Code
    for /F "delims=;" %%i in ('dir /B *.mkv') do

    auch Unterordner mit ein.


    Nein. Korrekt wäre "dir/b/s/a-d" für diesen Zweck. Schau dir mal die Optionen für den Befehl "dir" an ("dir/?").

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!