Home
RecentChanges

Search:

» AviSynth is a powerful video FrameServer for Win32.

AviSynth Links:
»Download
»Learn to script
»FAQ
»Manual
»Discussion fora
»Project page
»External filters
»FeedBack

» You can add pages to this website immediately. No login required.
Edit this document

» AboutAviSynth

 

Avisynth 
Logo

SkriptGrammatik

( This site in flag-uk.gif english )

Alle AviSynth Skripte habe mindestens eine der folgenden Formen:

  1. Variablenname = Ausdruck
  2. Ausdruck
  3. return Ausdruck
  4. end

Im ersten Fall wird Ausdruck ausgewertet und das Ergebnis (welches immer ein Videoclip ist) wird Variablenname zugewiesen. Im zweiten Fall wird Ausdruck ausgewertet und das Ergebnis der speziellen Variable last zugewiesen. Im dritten Fall wird Ausdruck ausgewertet und ist dann das, was vom Skript wiedergegeben wird. Also der Videoclip, den man sieht, wenn man ein AVS Datei in einem Programm öffnet. Der vierte Fall ist mit return last identisch.

Ein Ausdruck kann eine der folgenden Formen haben:

  1. konstante Zahl oder konstante Zeichenkette
  2. Variablenname oder Clipeigenschaft
  3. Funktion(Argument)
  4. Ausdruck.Funktion(Argument)
  5. Ausdruck 1 Operator Ausdruck 2
  6. boolscher Ausdruck ? Ausdruck 1 : Ausdruck 2

Im ersten Fall ist der Wert von Ausdruck konstant. Im zweiten Fallase entsprechen die Werte ClipEigenschaften oder SkriptVariablen (welche man vorher initialisieren muss). Im dritten Fall wird der Wert vom der Funktion zurückgegeben (siehe unten). Der vierte Fall ist eine alternative Syntax (genannt "OOP Notation"), welche Funktion(Argument, Ausdruck) entspricht.

Die beiden letzten Fällen zeigen, dass man Ausdrücke manipulieren kann. Dafür stehen einem die normalen arithmetrischen und logischen Operatoren (aus C) zur Verfügung für int`s, float`s, val`s und bool`s und auch Code bedingt auszuführen mit dem "ternary" Operator. Strings kann man zusammenfassen mit +. Die folgenden Operatoren sich auch für Videoclips definiert: a + b ist äquivalent zu UnalignedSplice(a, b) und a ++ b ist äquivalent zu AlignedSplice(a, b).

Die Funktionen der AviSynth Skriptsprache sind - im Großen und Ganzen - Videofilter (du kannst auch deine eigenen SkriptFunktionen definieren). Funktionen können bis zu 60 Argumente (hoffe doch, das reicht) haben und geben als return Wert immer einen Clip zurück. Funktionen erzeugen immer einen neuen Videoclip, anstatt einen bestehenden zu modifizieren. Um die Syntax der Funktionen aus den internen Filtern zu sehen, guck bei FilterNachKategorie.

Argumente ist eine Liste von Funktions-Argumenten getrennt durch Kommas. Diese Liste kann leer sein (was bedeutet, dass alle oder manche Argumente optional sind). Jedes Argument muss ein Zeichenkette (string), Ganzzahl (int), Dezimalzahl (float), boolscher Wert (bool) oder Videoclip (clip) sein. Wenn die Filter-Funktion als erstes Argument einen Videoclip erwartet und dieses Argument nicht angegeben wird, wird die spezielle Variable last verwendet.

Bei manchen AviSynth Filtern können auch "benannte Argumente" verwendet werden. Diese benannten Argumente können in einer beliebigen Reihenfolge angegeben werden, und der Filter verwendet Standard (default) Werte für nicht angegebene Argumente (benannte Argumente sind daher immer optional). Das vereinfacht die Benutzung mancher Filter stark.

Beispiel:

Subtitle("Hallo, Leute!", text_color=$00FF00, x=100, y=200)

ist dasgleiche wie:

Subtitle("Hallo, Leute!", 100, 200, 0, 999999, "Arial", 24, $00FF00)

Man kann auch Funktionen ohne Klammern aufrufen. Der Hauptgrund dafür ist, um die Kompabilität zu alten Skripten zu erhalten. Die Klammern werden auch weggelassen, wenn es keine Möglichkeit der Verwechslung gibt.

Beispiele:

FilterName arg1, arg2

Limiter

AviSynth ignoriert alles ab einem # Zeichen bis zum Ende der Zeile. Dies kann dazu genutzt werden, um das Skript zu kommentieren.

Gross- und Kleinschreibung wird ignoriert: aViSouRCe ist das gleiche wie AVISource.

Mehrere Ausdrücke in einer einzelnen Zeile kann man mit der "OOP-Notation" machen oder durch Einbetten von Funktionen als Parameter anderer Funktionen:

AviSource("C:\Dateiname.avi").Trim(0, 499) oder AudioDub(AviSource("C:\Dateiname.avi"),WavSource("C:\Dateiname.wav"))

Ausdrücke kann man über mehrere Zeilen durch eine Rückwärtsschrägstrich "\" (backslash) verteilen. Entweder am Ende der Zeile oder am Anfang der nächsten Zeile.

Beispiel:

Beide Ausdrücke sind gleichwertig:

Subtitle("Hello, World!", 100, 200, 0, \

999999, "Arial", 24, $00FF00)

oder

Subtitle("Hello, World!", 100, 200, 0,

\ 999999, "Arial", 24, $00FF00)'''

Zurück zum AviSynthHandbuch

SourceForge Logo

 


Edit this document | View document history
Document last modified Wed, 06 Aug 2003 17:09:42