AviSynth Out of Memory Error (100s von Bildüberlagerungen)

Ich möchte zu verschiedenen Zeiten mehrere Bilder in meinem Video überlagern. Ich habe die Benutzerfunktion definiert als

function myFunction(clip c, int coordinateX, int from, int to) {
    c = c.trim(0, from-1) + c.trim(from, to).Overlay(myImage, x=coordinateX, y=667, mask=myImageMask, opacity=1) + c.trim(to+1, 0)
    return c
}

was im Wesentlichen dauertmyImage Bild und platzieren Sie es auf einem bestimmten Teil des Clips.

Ich nenne meine Funktion als

video = video.myFunction(320, 1, 187)

und ich habe ein paar davon (ich versuche eine Art Animation mit mehreren Bildern zu machen)

video = video.myFunction(320, 1, 187)
video = video.myFunction(480, 1, 187)
video = video.myFunction(640, 1, 187)
video = video.myFunction(320, 187, 374)
video = video.myFunction(480, 187, 374)
video = video.myFunction(640, 187, 374)
video = video.myFunction(319, 374, 561)

und alles funktioniert gut, wenn es weniger als ~ 400 dieser Anrufe gibt. Wenn ich dieses Limit überschreite, tritt "Out of Memory" auf (ich verwende VirtualDub).

Ich nehme an, es liegt daran, dass AviSynth alle Aufrufe verarbeiten muss, um die Ausgabe zu ermitteln (obwohlnur ~ 3 dieser 100er von Anrufen beziehen sich aufspezifisches Einzelbild). Wenn ich aber entfernevideo = Am Anfang der Zeile könnte ich 10000 davon haben und es gibt keinen "Out of Memory" -Fehler, aber ich habe natürlich kein Video-Out.

Gibt es eine Lösung dafür? Hunderttausende von Bildüberlagerungen zu unterschiedlichen Zeiten auf dem Videoclip?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage