FFmpeg mit multiplen avs Scripten

  • Hallo zusammen.

    Ich habe ein "kleines Projekt" das im Grunde aus 5 separaten .avs Scripten besteht.
    Das Ganze soll jetzt in ein großes File zusammengefügt und neu gecoded werden.
    Natürlich könnte man auch 5 Einzelteile coden und die dann zusammenfügen, aber schöner wär's schon wenn alles aus einm Guß ist.

    Mein Erster Versuch:

    Code
    vd1=DirectShowSource("Q:\Film\Mitwoch\alles.avs")vd2=DirectShowSource("Q:\Film\Donnerstag\alles.avs")vd3=DirectShowSource("Q:\Film\Freitag\alles.avs")vd4=DirectShowSource("Q:\Film\Samstag\alles.avs")vd5=DirectShowSource("Q:\Film\xoutro\alles.avs")vd1++vd2++vd3++vd4++vd5return(last)
    Code
    "C:\Program Files (x86)\Video Tools\avs2pipemod-0.4.2m\avs2pipemod.exe" -rawvideo "alles.avs" | "C:\Program Files\x265\x265-2.1_66.exe" --preset slower --crf 24 --psy-rd 2.0 --psy-rdoq 10.0 --aq-mode 3 --me star --no-open-gop --no-sao --limit-modes --input-res 1280x720 --input-depth 16 --fps 50000/1000 --output "Wacken-2016.h265" --input -

    Nun wie man schnell sieht handelt es sich um 10-Bit Material das in die x265.exe gepiped wird.
    Nur leider crashed avs2pipemod nach etwas mehr als 50% ... Und nein, Speicher war nur 1,6 GB allokiert. Kritisch ja, aber noch im "gelben" Bereich :D

    Nun ist meine Nächste Idee das Ganze mal mit ffmpeg zu versuchen. Doch wie geht's ?
    Oder anders gesagt, wie kann ich die 5 einzelnen .avs Scripte als "input" setzen und dann die x265 Optionen hinterher ?

  • Hm ... bin jetzt mit avs2pipemod 1.1.1 am testen da X265 keine dynamische Library baut:

  • Nur leider crashed avs2pipemod nach etwas mehr als 50% ...


    Wenn avs2pipemod crashed, was soll dann der Tausch von x265.exe gegen ffmpeg.exe bewirken?

    Und nein, Speicher war nur 1,6 GB allokiert. Kritisch ja, aber noch im "gelben" Bereich :D


    Das hast Du beim letzten Mal auch behauptet.

    Wenn das Encoding los geht sieht man im Prozess Hacker das VirtualDub um die 1.4 - 1.5 GB Memory belegt.

    Vid belegt weit weniger als 2 GB im Speicher ....

    Starte ich dann den Encoding Prozess, geht's rauf bis ca. 1.5 GB

  • AviSynth-Skripte über DirectShowSource laden ... wie kommt man auf eine so irre Idee?

    Rein theoretisch wäre "Import" die native Funktion zum Laden von Funktions-Importskripten. Aber bei Skripten, die selber jeweils einen Clip als Ausgabe erzeugen, wird das wohl nicht so einfach, mehrere nacheinander einzubinden. Schließlich ist "Import" ja ein Statement und keine Funktion, hat also selber kein Ergebnis (das eingebundene Skript hätte einen "last"-Clip zur Folge, aber das wäre auch irgendwie umständlich).

  • Wenn avs2pipemod crashed, was soll dann der Tausch von x265.exe gegen ffmpeg.exe bewirken?


    Hab nie behauptet das ich das machen will ! Noch dazu wo avs2pipemod gecrashed ist ... (ja, ich wiederhole mich)
    ffmpeg sollte an dieser Stelle eher als Decoder arbeiten, obwohl es natürlich volkommen legitim ist dann auch das encoding damit zu machen.


    Zitat


    Das hast Du beim letzten Mal auch behauptet.


    Ich behaupte nur was der Process Hacker sagt ...

    Zugegeben ich hab keine Ahnung wie in einem solchen Fall die Speicherallokierung läuft ... noch dazu da es sich ja um mehrere .avs' Skripte handelt ...

    Zitat

    AviSynth-Skripte über DirectShowSource laden ... wie kommt man auf eine so irre Idee?


    Wie sonst ?
    Weder L-smash noch ffmpeg-source kann das. Und AviSource scheitert am 16 bit output ... Da bleibt nicht mehr viel übrig.

    Wie auch immer. Ich suche ja auch die Möglichkeit das via FFmpeg zu machen ... aber geht das überhaupt ?
    Die Concaternate Funktion funktioniert vielleicht für video Dateien, aber auch für AviSynth scripte ?

    Einmal editiert, zuletzt von may24 (18. Dezember 2016 um 16:59)

  • Schade, dass wir nicht wissen, was in den anderen 5 Skripten passiert.

    Deren Ausgabe lässt sich jedenfalls nicht über dem Umweg irgendeiner *Source-Funktion wieder reinholen. Wie gesagt, wäre dafür entweder Import gedacht, oder man müsste wirklich ein Skript schreiben, das alle 5 Quelldateien (nicht Einzel-Skripte) mit Source-Filtern explizit lädt.

  • ok, werde ich nächstes Mal ausprobieren ... sollte ich es schaffen x265 dahin zu überreden 'ne dynamische Bibliothek zu bauen (.so)

    Derweilen kann ich sagen das es tatsächlich an avs2pipemod lag. Mit der neuen Version (1.1.1) gab keine Probleme.
    Nur wie die Speicher-Allokierung von Avisynth arbeitet scheint ein großes Rätzel zu sein. Vorallem wann der Speicher wieder freigegeben wird ...
    Und die Plugins machen dann nochmal ihr eigenen Ding...

    Wie auch immer, nach dem Motto: Auf einem Auge blöd, aber der Erfolg gibt uns recht ... Es hat auch mit dem DirectShowSource "Umweg" geklappt.
    Gab keine Frame-Drops ...
    Speicherauslastung lag zuletzt bei knapp über 3GB (laut Process Hacker!)

    Insgesammt wurden 24 einzelne Videostreams geöffnet und geschnitten...
    Teilweise mit AviSource (UT-Video), LSmash-Source (TV-Zeug) und FFmpeg-Source (der Rest: Youtube, HandyVideo, Kamera ...)

Jetzt mitmachen!

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