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

SkriptFunktionen

( This site in flag-uk.gif english )

Die Quelle und das Ergebnis dieser Funktionen ist keine Clips, aber andere Variablen, die man im Skript nutzen kann.

Numerische Funktionen:

Floor(float): Konvertiert eine Dezimalzahl in Integer (rundet alle Dezimalstellen ab).

Beispiele:
Floor(1.2) = 1
Floor(1.6) = 1
Floor(-1.2) = -2
Floor(-1.6) = -2

Ceil(float): Konvertiert eine Dezimalzahl in Integer (rundet alle Dezimalstellen auf).

Beispiele:
Ceil(1.2) = 2.0
Ceil(1.6) = 2.0
Ceil(-1.2) = -1
Ceil(-1.6) = -1

Round(float): Konvertiert eine Dezimalzahl in Integer (rundet alle Dezimalstellen zur n�hesten Integerzahl auf oder ab).

Beispiele:
Round(1.2) = 1
Round(1.6) = 2
Round(-1.2) = -1
Round(-1.6) = -2

Sin(float) (v2):

Cos(float) (v2):

Pi() (v2):

Log(float) (v2):

Exp(float) (v2):

Pow(float base, float power) (v2):

Sqrt(float) (v2):

Abs(float / integer) (v2.07): Absoluter Wert eines Integer oder Dezimalzahl.

Beispiel:
Abs(-3.8) = 3.8

Sign(float) (v2.07): Gibt das Vorzeichen der Zahl als -1, 0 oder 1 zur�ck.

Beispiele:
Sign(-3.5) = -1
Sign(3.5) = 1
Sign(0) = 0

Int(float) (v2.07): Konvertiert von Dezimalzahl zu Integer (rundet ab).

Beispiele:
Int(1.2) = 1
Int(1.6) = 1
Int(-1.2) = -1
Int(-1.6) = -1

Frac(float) (v2.07): Gibt den entsprechenden Bruch der Dezimalzahl zur�ck.

Beispiele:
Frac(3.7) = 0.7
Frac(-1.8) = -0.8

Float(int) (v2.07): Konvertiert von Integer zu Dezimalzahl.

Value(string) (v2.07): Konvertiert eine Zeichenkette in einen Zahlenwert.

HexValue(string) (v2.07): Gibt den Wert einer hexadezimaler Zeichenkette zur�ck.

Beispiel:
HexValue ("FF00") = 65280

Rand([int max] [, bool scale] [, bool seed]) (v2.07):

Gibt eine Zufallszahl als Integer zwischen 0 and dem Maximum zur�ck. Alle Parameter sind optional. max ist der maximale Wert+1 (Standard: 32768) und kann auch negativ sein, wenn man nur negative Zufallszahlen haben will.

Es arbeitet sowohl im normalen als auch modulierten Modus (Standard scale=true, wenn abs(max) > 32768, ansonsten false). Der normale Modus skaliert die internen Zufallszahlen bis zum Maximum, w�hrend der modulierte Modus (scale=false) den Rest einer Ganzzahl, die durch eine Zufallszahl geteilt wurde. Ich finde den modulierten Modus besser f�r kleine max Werte. Nutze seed=true startet den Zufallszahlen-Generator mit der aktuellen Zeit (Standard: false) und ist an sich nicht notwendig (aber was man hat, hat man). Normalerweise wird Rand f�r die Select Funktion genutzt.

Beispiel:
Select(Rand(5), clip1, clip2, clip3, clip4, clip5)

Spline(float X, x1, y1, x2, y2, .... [, bool cubic]) (v2.51): Interpolatiert Y am Punkt X unter Verwendung der Kontrollpunkte x1,y1, usw. . Man muss mindestens zwei x/y-Paare angeben. Die Interpolation kann kubisch (das Ergebnis ist dann ein Spline) oder linear (das Ergebnis is ein Polygone) sein.

Beispiele:
Spline(5, 0, 0, 10, 10, 20, 0, false) = 5
Spline(5, 0, 0, 10, 10, 20, 0, true) = 7

String Funktionen:

LCase(string) (v2.07): Gibt die Zeichenkette in Kleinbuchstaben zur�ck.

Beispiel:
LCase("AviSynth") = "avisynth"

UCase(string) (v2.07): Gibt die Zeichenkette in Gro�buchstaben zur�ck.

Beispiel:
UCase("AviSynth") = "AVISYNTH"

StrLen(string) (v2.07): Gibt die L�nge derZeichenkette zur�ck.

Beispiel:
StrLen("AviSynth") = 8

RevStr(string) (v2.07): Gibt die Zeichenkette umgedrehter Reihenfolge zur�ck.

Beispiel:
RevStr("AviSynth") = "htnySivA"

LeftStr(string, int) (v2.07): Gibt die ersten int Zeichen zur�ck.

Beispiel:
LeftStr("AviSynth", 3) = "Avi"

RightStr(string, int) (v2.07): Gibt die letzten int Zeichen zur�ck.

Beispiel:
RightStr("AviSynth", 5) = "Synth"

MidStr(string, int pos [, int length]) (v2.07):

Gibt einen Teil der Zeichenkette zur�ck, der bei pos (f�r den ersten Buchstaben pos=0) beginnt und die angegeben L�nge hat oder bis zum Ende der Zeichenkette.

Beispiel:
MidStr("AviSynth", 3, 2) = "iS"

FindStr(string, substring) (v2.07): Gibt den Versatz von substring innerhalb von string zur�ck. Die Suche ber�cksichtigt die Gro�- und Kleinschreibung.

Beispiel:
Findstr("AviSynth", "syn") = 4

String(float / int) (v2): Konvertiert eine Zahl in eine Zeichenkette.

Beispiel:
Subtitle( "Clip H�he ist" + String(last.height) )

Chr(int) (v2.51): Gibt das ASCII Zeichen zur�ck

Beispiel:
Gibt ein Anf�hrungszeichen wieder:
Chr(34)

Time(string) (v2.51): Gibt eine Zeichenkette mit der aktuellen Systemzeit in einem vorgegeben Format zur�ck. Abk�rzung f�r das Ausgabeformat:

%a K�rzel des Wochentages

%A Volle Name des Wochentages

%b K�rzel des Monats

%B Voller Name des Monats

%c Datum und Zeit im lokalem Format

%d Tag und Monat als Dezimalzahlen (01 - 31)

%H Stunde im 24-Stunden Format (00 - 23)

%I Stunde im 12-Stunden Format (01 - 12)

%j Tag des Jahres als Dezimalzahl (001 - 366)

%m Monat als Dezimalzahl (01 � 12)

%M Minute als Dezimalzahl (00 � 59)

%p Current locale�s A.M./P.M. indicator for 12-hour clock

%S Sekunde als Dezimalzahl (00 � 59)

%U Woche des Jahres als Dezimalzahl mit Sonntag als ersten Wochentag (00 � 53)

%w Wochentag als Dezimalzahl (0 � 6; Sonntag ist 0)

%W Wochentag des Jahres als Dezimalzahl mit Montag ersten Wochentag (00 � 53)

%x Date representation for current locale

%X Time representation for current locale

%y Jahr ohne Jahrhundertangabe als Dezimalzahl (00 � 99)

%Y Jahr mit Jahrhundertangabe als Dezimalzahl

%z, %Z Zeitzonen Name oder K�rzel; es wird nichts zur�ckgegeben, wenn die Zeitzone unbekannt ist

%% Prozent Zeichen

Das # Zeichen kann vor jeden Formatierungs-Code vorangestellt werden. In diesem Fall wird die Deutung des Formatierungs-Codes wie folgt ge�ndert:

%#a, %#A, %#b, %#B, %#p, %#X, %#z, %#Z, %#% # Zeichen werden ignoriert.

%#c Long date and time representation, appropriate for current locale. For example: �Tuesday, March 14, 1995, 12:41:29�.

%#x Long date representation, appropriate to current locale. For example: �Tuesday, March 14, 1995�.

%#d, %#H, %#I, %#j, %#m, %#M, %#S, %#U, %#w, %#W, %#y, %#Y Remove leading zeros (if any).


Funktionen, die die Version �berpr�fen:

VersionNumber() (v2.07): Gibt die AviSynth Versionnummer als Dezimalzahl zur�ck.

Beispiel:
VersionNumber() = 2.07

VersionString() (v2.07): Gibt die AviSynth Versionsinformationen als string (die erste Zeile von Version) wieder.

Beispiel:
{{VersionString() = "AviSynth 2.08 (avisynth.org) 22 nov. 2002"

Funktionen zum �berpr�fen von Variablen-Typen und Dateien:

IsBool(var)

IsInt(var)

IsFloat(var)

IsString(var)

IsClip(var)

Exist(Dateiname) (v2.07): Gibt true oder false zur�ck, je nachdem ob die Datei existiert oder nicht.

Defined(var): ergibt true, wenn var definiert ist, ansonsten false.

Default(x,d): ergibt x, wenn Defined(x) true ist, ansonsten d.

Hinweis: Defined und Default wurde urspr�nglich entwickelt, um mit optionalen Variablen in benutzerdefinierten Funktionen umzugehen und sollte dort feststellen, ob eine optionale Variable �bergangen wurde. Eine komplett undefinierte Variable erzeugt einen Fehler. Siehe f�r mehr Informationen "Benutzerdefinierte Funktionen" weiter hinten im Text.

Beispiele:
Man kann Eval f�r sowas verwenden:
settings = "352, 288"
Eval("BicubicResize(" + settings + ")")
Es kann auch der Inhalt von anderen AviSynth Skripten mit Import importiert werden:
Import(Dateiname) # verarbeitet den Inhalt von einem anderen AviSynth Skript
F�r Fehlermeldungen und zum Auffangen von falschen Benutzereingaben kann folgendes verwendet werden:
Assert(bool, string "Fehlermeldung") # Fehlermeldungen erzeugen
Es gibt auch eine Funktion, mit der man �berpr�fen kann, ob ein Fehler auftreten WIRD:
Try {
AviSource("C:\Dateiname.avi")
}
catch(Fehlermeldung) {
Blackness.Subtitle(Fehlermeldung)
}

Control Functions:

SetMemoryMax(int) (v2): Setzt die maximale Speichergr�sse, die AviSynth verwendet (in MB). In manchen Versionen ist die Standardgr��e 5MB, was recht wenig ist. Wenn Probleme auftreten (besonders langsame Geschwindigkeit), sollte dieser Wert auf mindestens 32MB gesetzt werden.

SetWorkingDir(string) (v2): Setzt das Standard-Verzeichnis f�r AviSynth (normalerweise sonst das Verzeichnis in dem sich das Skript befindet). Das kann vor allem f�r das einfache Laden von Quell-Clips verwendet werden und hat keinerlei Auswirkung auf das automatische Laden der Plugins. Das Ergebnis ist 0 wenn erfolgreich, sonst -1 (wenn z.B. der Pfad nicht existiert)


Bedingte Operatoren:

[Variable =] boolscher Ausdruck ? wenn wahr, dann Wert oder Operation : wenn falsch, dann Wert oder Operation

nop() (v2.07): Gibt NULL zur�ck. Wird haupts�chlich f�r bedingte Ausf�hrung wie z.B. Importieren oder wobei kein R�ckgabewert ausgegeben wird.

Beispiel:
VersionNumber < 2.07 ? Import("patches.avs") : nop()

Select(index, item0 [,item1...]) (v2.07): Gibt item zur�ck, ausgew�hlt durch index (index=0 -> item0). Items k�nnen beliebige Variablen, Clips oder beides sein. Kann man z.B. mit Rand() als index nutzen, um zuf�llig einen Clip auszuw�hlen.


Benutzerdefinierte Funktionen:

Man kann auch selber Funktionen definieren. Die SkriptGrammatik innerhalb einer Funktion ist diegleiche wie im ganzen Skript. Die Funktion kann einen Clip oder jeden Variablen-Typ wiedergeben. Das Format im Allgemeinen ist wie folgt:

Funktion Funktionsname([Variablen-Typ Variablenname [,...])
{
Funktionsbefehle
.
.
.
return(Ergebnis)
}

Geschwungene Klammern m�ssen die Funktionsbefehle einfassen, aber sie k�nnen sich die Zeile mit dem Funktionskopf und / oder dem ersten und letzten Funktionsbefehl teilen.

Beispiel:
Eine einzeilige Funktion:
function rednum(clip c, int "num") { return subtitle(c,string(default(num,0)),text_color=$FF0000) }

Variablen von Funktionen k�nnen optional gemacht werden, indem man Variablenname in Anf�hrungsstriche setzt (z.B. int "num" im obigen Beispiel). Innerhalb der Funktion kannst du auch eine Defined oder Default Funktion angeben, um herauszufinden, ob Variablenname �bergangen und der Standardwert eingesetzt wurde oder ob es die Bearbeitung �ndert. Optionale Parameter kann man auch �ber die Variablenname=Wert Syntax setzen, um andere optionale Parameter zu �bergehen.

Beispiele:
Ziemlich gut f�r NTSC->PAL Konvertierungen. Noch besser w�re es mit Smart Bob. :-)
function NTSC2PAL(clip c) {
Assert(c.height == 480, "NTSC2PAL: Quell-Clip muss 480 Zeilen haben")
Bob(c, height=576)
ChangeFPS(50)
SeparateFields.SelectEvery(4,0,3)
return Weave()
}
AviSource("Dateiname.avi").NTSC2PAL

Falls du etwas Cooles erstellt, kannst du es unter GesammelteFunktionen ver�ffenlichen.

Zur�ck zum AviSynthHandbuch

SourceForge Logo

 


Edit this document | View document history
Document last modified Mon, 01 Dec 2003 11:16:54