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