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

Sektion 4: Importieren von VirtualDub-Filtern

( This site in flag-uk.gif english )

Q4.1: Wo kann ich die neueste Version der Skripte finden, die Filter aus VirtualDub importieren ?

A: Die AviSynth Skripte findest du auf der ShareFunctions Seite oder du kannst ein Paket namens "vdub_filtersv15.zip" von [1] oder [2] herunterladen.

Q4.2: Welche Filter kann man importieren ?

A: Die meisten Filter. Lies die entsprechende Dokumentation.

Q4.3: Arbeiten diese Skripte im RGB oder im YUV Farbraum ?

A: Nur im RGB-Farbraum (RGB32).

Q4.4: Wie erstelle ich solch ein Skript ?

A: Hier ein Beispiel Skript (diesen VirtualDub Filter kann man von [Donalds Homepage] herunterladen):

Smart Bob von Donald Graft:

function VD_SmartBob(clip "clip", bool "show_motion", int "threshold", bool "motion_map_denoising")
  LoadVirtualdubPlugin("d:\bob.vdf", "_VD_SmartBob", 1)
  return clip.SeparateFields._VD_SmartBob(clip.GetParity?1:0,
    \  default(show_motion,false)?1:0, default(threshold,10),
    \  default(motion_map_denoising,true)?1:0)

Das VirtualDub Plugin wird mit dem Befehl "(LoadVirtualDubPlugin)?" geladen. Das erste Argument gibt den Dateipfad zum Plugin an, das zweite Argument den Namen des Filters, den man verwenden will, und das dritte Argument hei�t "preroll".

Damit gibt man die Anzahl an Frames an, die der Filter braucht, zum Auff�llen seiner internen Speicher ben�tigt und/oder um seine internen Variablen zu aktualisieren. Dieses letzte Argument wird in manchen Filtern gebraucht wie: SmartBob, SmartDeinterlace, TemporalCleaner und andere. Der Grund daf�r ist, dass aufgrund des Aufbaus der Filter in VirtualDub man die nachfolgenden Frames nicht in einem Filter nutzen kann. Dividee berichtet: "Im "Add filter" Dialog von VirtualDub haben manche Filter einen "Lag:" Wert in der Beschreibung. Ich denke mal, damit ist der "preroll" Wert gemeint. Leider gibt es diesen Wert nicht immer. In diesen F�llen muss man raten." Nat�rlich kann man immer noch den Autor des Filters fragen.

Der erste Schritt ist, die Sequenz an Argumenten in der letzten Zeile, wonach der Clip wiedergegeben wird, herauszufinden. Konfiguriere das Skript in VirtualDub und w�hle dann "Save processing Settings" im "Datei" Men� aus oder dr�cke Ctrl+S. �ffne die erstellte .vcf Datei in einem Texteditor und du solltest etwas sehen wie:

VirtualDub.video.filters.Add("smart bob (1.1 beta 2)");
VirtualDub.video.filters.instance[0].Config(1, 0, 10, 1);

Die Reihenfolge der Argumente ist die, die man auch in AviSynth angeben sollte. Um herauszufinden, was welches Argument ist, spiele mit den Parametern in VirtualDub herum und schau dir dann die resultierenden Zeilen an.

Der zweite Schritt ist, den Filter zu testen und ihn mit dem VirtualDub Filter selber zu vergleichen. F�rs Programmieren kann man viel durch die bestehenden Skripte in der "vdub_filters.avs" Q4.1 lernen.

Ein Beispiel Skript, was die Funktion VD_SmartBob nutzt:

Import("C:\vdub_filters.avs")
AviSource("C:\Dateiname.avi")
ConvertToRGB32()  # nur, wenn notwendig (schadet aber nicht)
VD_SmartBob(1, 0, 10, 1)
ConvertBackToYUY2()  # nur, wenn notwendig

Zur�ck zur AviSynthFAQ

SourceForge Logo

 


Edit this document | View document history
Document last modified Tue, 19 Aug 2003 03:09:18