AviSynth Laufzeitumgebung

Inhalt

Definition

Die Laufzeitumgebung ist eine Erweiterung des normalen AviSynth Skript-Umgebung, die Skripte zur Verfügung steht, die von Laufzeitfiltern ausgeführt werden. Ihre grundlegende Eigenschaft ist, dass die Laufzeit-Filter-Skripte für jedes Frame ausgewertet werden (kompiliert). Dies ermöglicht für komplexe Video eine Nachbearbeitung, die mit einem normalen AviSynth-Skript schwierig oder unmöglich wäre.


Jetzt wollen wir die obige Definition etwas genauer betrachten. Die Laufzeitumgebung ist:

  1. Ein Umfeld, also eine Satz an verfügbaren lokalen und globalen Variablen und Filtern/Funktionen, die das Skript verwenden kann.
  2. Eine Erweiterung des normalen AviSynth Script Ausführungsumgebung; das bedeutet, es sind zusätzliche Variablen und Funktionen für Laufzeit Scripte verfügbar.
  3. Sie ist nur verfügbar für Skripte, die von Laufzeitfiltern ausgeführt werden, also Skripte darin werden nur während der AviSynth "Laufzeit" ausgeführt (die Bildanlieferungsphase).

Der letzte ist der größte Unterschied. Normaler Script-Code wird analysiert und ausgewertet (kompiliert) am Anfang der Skriptausführung (der Parsing-Phase) in linearer Weise, von oben nach unten. Das Ergebnis ist die Schaffung eines Filtergraphen, der von AviSynth verwendet wird, um Bilder an die Host-Video-Anwendung zu übergeben. Runtime Script-Code wird nach dem Parsen ausgeführt, wenn die Frames ausgeliefert werden. Darüber hinaus wird er bei jeden angeforderten Frame kompiliert und nur für dieses spezielle Frame, in einer ereignisbasierten Weise.

Hinweis: Audio wird nicht von der Laufzeitumgebung behandelt, es wird unberührt weitergereicht. Dies bedeutet auch, dass man mit Laufzeitfiltern Clip-Audio nicht verändern kann.

Laufzeitfilter

Die folgenden Filter sind der Bais-Satz der sogenannten "Laufzeitfilter":

Zusätzlich kann auch der WriteFile Filter als Laufzeitfilter betrachtet werden, weil ihm die von Laufzeitfiltern gesetzten Sondervariablen übergeben wurden, die spezielle Laufzeitfunktionen verwendet haben können.

Spezielle Laufzeitvariablen und Funktionen

Alle Runtime-Filter setzen die folgenden Sondervariablen und stellen sie Laufzeitscripten zur Verfügung.

Alle oben genannten Variablen sind im top-level script localen Bereich definiert. Das heißt, du kannst sie in einem Runtime-Skript lesen und schreiben, als ob sie Variablen wären, die du auf Skript-Ebene deklariert hast.

Runtime-Skripte können auch eine breite Palette von Spezialfunktionen aufrufen, die verschiedene Teilinformationen für den aktuellen Frame ihres Eingangs-Clips bereitstellen.

Wie man innerhalb der Laufzeitumgebung Scripte schreibt

Die Laufzeitumgebung ist einfach zu nutzen: du verwendest einen der Laufzeitfilter und versorgst ihn mit den benötigten Argumenten. Die zwei wichtigsten darunter sind:

Letzteres ist als ein String-Argument, das die AviSynth-Skript-Befehle enthält. Skripte können viele Anweisungen enthalten (man kann einen mehrzeiligen String verwenden), lokale und globale Variablen und Funktionsaufrufe, sowie spezielle Lauzeitfunktionen und Variablen. Im Allgemeinen sind alle Aussagen der AviSynth-Syntax erlaubt, aber du musst darauf achten, allzu komplexe Skripte zu vermeiden, weil dies mit großem Zeitbedarf bestarft wird, der mit jedem Frame gezahlt wird. Siehe auch im Laufzeit Abschnitt der Performancebetrachtungen der Scripting Referenz für weitere Einzelheiten.

Lasst uns ein paar Beispiele ansehen:

TODO...EXAMPLES (fehlen hier noch)

Andere Punkte:

Zurück zur AviSynth Syntax.

$Date: 2008/12/07 15:46:17 $