Virtualdub Error: Out of memory

  • 3x bekam ich die Fehlermeldung, dass VirtualDub mit Avisynth Script kurz vor Ende des Encodings zum Sturz führte.

    Welche Ursache könnte es sein? Was fehlt es?


    Im VD habe ich das Encoding als AVI abgespeichert.


    VirtualDub Error:


    virtualdub_error1mj7l.jpg


    Hier mein Avisynth Script:



    Dann dachte ich, ich versuche mal mit der Teilung zu encoden. Die ersten 3 Encodings hatten Erfolg, aber der 4. scheiterte mit der Fehlermeldung:


    Code
    1. Avisynth read error: Could not allocate video frame. Out of memory. memory_max=1073741824, memory_used=893502716 Request=4717119


    virtualdub_error1f3jbg.jpg



    Kann jemand mir bitte erklären?


    Zur Info, das 1. Encoding von vorher mit demselben Skript hat durchgehend geklappt.

  • Avisynth geht der Speicher aus, davon ausgegangen es liegt nicht an einem Bug in einem der Filter, könnte es Helfen mit SetMemoryMax

    (http://avisynth.nl/index.php/Internal_functions#SetMemoryMax) ein Limit zu setzen.

    Ohne zu Wissen:

    a. was die Auflösung des Materials ist das umgewandelt wird.

    b. was das Zielformat (Video/Audio/Container) ist.

    -> keine Ahnung


    Ich vermute Du verwendest eine 32bit Version von Avisynth (da es im 'Program Files (x86)'-Ordner ist), sprich mehr als 4GB würde kritisch.

    Spontan hätte ich QTSource im Verdacht, dass wurde die letzten 9+ Jahre nicht aktualisiert und baut auch Quicktime auf was es auch schon ne Weile nicht mehr offiziell für Windows gibt. Kommen LibavSMASHSource und FFmpegSOurce mit der Quelle nicht klar?


    Cu Selur


    Ps.: EdiThreads runter zu setzen sollte auch helfen,... Würde empfehlen das Skript mal durch AvsMeter (https://forum.doom9.org/showthread.php?t=174797) zu jagen um den Speicherverbrauch zu checken.

  • Bevor ich dein Posting gelesen habe, hat mit dem 4. Encoding mit der Quelle "FFMS2" gut geklappt, aber wieso dauert das Laden mit "FFMS2" im Skript so lange?

    Ja, richtig, ich verwende eine 32bit Version von Avisynth+ in meinem 64bit System.


    Mein Ziel ist Video in ein unkomprimmiertes AVI-Format (UtVideo YUV422 BT.601) zu umwandeln, bevor sie später weitergearbeitet wird.


    Das mit der Quelle "FFmpegSource2" funktioniert auch. Die ist ja sehr empfehlenswert.

  • FFMS2 generiert erst eine Indexdatei, ebenso wie LSMASHWorks, wenn LwLibavVideoSource benutzt wird. Da du eine MOV-Datei als Quelle hast, die kompatibel zum ISO Base Media Standard ist, könntest du auch LSMASHVideoSource verwenden, die verlässt sich auf den Indexchunk in der MOV-Datei; sollte es hier aber auch zu einem Fehler kommen, ist vielleicht der Index in der MOV-Datei beschädigt, dann hat FFMS2 deshalb funktioniert, weil es seinen eigenen generiert hat.


    Ansonsten wird es langsam Zeit, auf AviSynth+ und VirtualDub2 umzusteigen...

  • Alte Versionen von VirtualDub sind sicherlich 32-bit-Applikationen, benutzen also auch nur die 32-bit-Variante von AviSynth+. Um die Vorteile der 64-bit-Variante nutzen zu können, muss man schon ein 64-bit-Programm verwenden. Man braucht dann aber auch alle Plugins in ihrer 64-bit-Version (im plugins64-Verzeichnis von AviSynth+).