Avisynth Frequently Asked Questions

Q1: Was ist AviSynth?

AviSynth (AVI SYNTHesizer) ist ein frameserver, ein Programm das im Hintergrund frames (Einzelbilder) einem anderen Programm zur Verfügung stellt.

Was AviSynth so einzigartig macht, ist die Tatsache, das es sich nicht um ein stand-alone Programm handelt, das eine Ausgabedatei erstellt, sondern eben nur die Schicht zwischen der Videodatei und einer anderen Video-Applikation.

AviSynth funktioniert so: Zuesrt wird eine einfache Textdatei mit speziellen Befehlen darin erstellt, das sogenannte Skript. Diese Befehle beziehen sich auch ein oder mehrere Videos und die Filter, die man darauf anwenden möchte. Dann startet man eine Videoanwendung, wie VirtualDub, und öffnet das Skript. Jetzt kommt AviSynth ins Spiel und öffnet die Videos, auf die verwiesen wird, führt die angegebenen Filter aus und gibt das Ergebnis an die Anwendung zurück. Die Anwendung merkt gar nicht, dass sie von AviSynth bedient wird, sondern sieht ein gefiltertes AVI als ob es als Datei auf der Festplatte vorliegt.

Es gibt fünf Hauptgründe für die Verwendung von AviSynth:

  1. Zusammenfügen von Videos: mit AviSynth können beliebig viele Videos, auch segmentierte AVIs, zusammengefügt werden. Auch nur Teile davon oder von der Tonspur.
     
  2. Filtern von Videos: Es gibt viele eingebaute Filter (zum Beispiel zum Grösse ändern, Ränder abschneiden, schärfen).

  3.  
  4. Überwinden der 2 GB-Grenze für AVIs: AviSynth kann beliebig grosse (nur durch das Betriebssystem begrenzt) AVIs öffnen und an Anwendung weitergeben, die normalerweise nur 2GB-AVIs öffnen können.

  5.  
  6. Öffnen von speziellen, sonst nicht unterstützten Videoformaten, z.B. MPEG2-Videos.

  7.  
  8. Sparen von Festplatten-Platz: AviSynth erzeugt das Video genau zu dem Zeitpunkt, wo die Anwendung die einzelnen Bilder anfordert. So sind keine Zwischendateien notwendig, es wird kein zusätzlicher Speicher benötigt und auch nicht der damit verbundene Datentransfer zur Festplatte.

Q2: Wer entwickelte AviSynth?

AviSynth bis zu Version v1.0b wurde von Ben Rudiak-Gould (http://math.berkeley.edu/~benrg/avisynth.html) entwickelt. Nachdem Ben die Entwicklung aufgab, wurde sie von Edwin van Eggelen weitergeführt (http://www.videotools.net/uk/download.php)

Juli 2002 gab es ein neues sourceforge Projekt, in dem AviSynth gründlich überarbeitet und erweitert wurde. Die aktuelle, recht stabile und fehlerfreie Version ist v2.0.6

Q3: Wie findet man die Version heraus?

In eine Textdatei die folgende Zeile schreiben:

version()

und als "version.avs" abspeichern. Beim Öffnen z.B. mit dem Windows Media Player wird die Version angezeigt und man hat auch die Gewissheit, dass AviSynth korrekt installiert ist.

Q4: Wie lädt man jetzt so eine Skript-Datei ein einen Encoder oder eine Anwendung?

Einfach die AVS-Datei öffnen, als ob sie ein AVI wäre. Das geht mit den meisten Programmen, die AVIs öffnen können (es gibt Ausnahmen), auch wenn die Endung AVS nicht als Videodatei vorgeschlagen wird.

Q5: Probleme bei verschiedenen Encodern?

  1. AVS-Datei kann in TMPGEnc nicht geöffnet werden, was kann man da machen?
  2. - VFAPI plugin ("ReadAVS") installieren
    - DirectShow Filter in TMPGEnc deaktivieren
    - Als letzten Befehl im Skript "ConvertToRGB24()" hinzufügen

  3. CCE SP stürzt beim Lesen einer AVS-Datei ab?
  4. - Als letzte Zeile im Skript "ResampleAudio(44100)" hinzufügen, auch wenn im AVS gar kein Audio vorkommt

  5. Manche Encoder (CCE SP v2.62/v2.64, ProCoder) lesen keine AVS-Dateien?

  6. Wenn diese Programme nicht die Standard-Windows-Funktionen verwenden, funktionert AviSynth nicht.
    Hier kann mittels dem "VFAPI reader codec" (das ist auch so eine Art frameserver, aktuelle Version 1.05) ein "pseudo"-AVI erzeugt werden, welches von wirklich allen Programmen gelesen werden kann. Diese Methode hat nur den Nachteil einer geringeren Geschwindigkeit.
     
  7. Ein falscher YUY2 Codec verursacht (mehr oder weniger starke) Farbfehler in TMPGEnc?

  8. Auch hier sicherheitshalber als letzte Zeile im Skript "ConvertToRGB24()" hinzufügen, TMPGEnc kann sowieso nur RGB lesen.
Q6: Die gebräuchlichsten Arten, um ein Video in das Skript zu laden?
  1. AVI-Dateien (mit unkomprimiertem PCM-Audio oder CBR/VBR MP3-audio), auch VirtualDub-Frameserver VDR:
    AviSource("d:\filename.avi")
    oder mit abgeschaltetem Audio:
    AviSource("d:\filename.avi", audio=false)

  2. AVI- oder andere Video-Dateien die von AVISource nicht unterstützt werden (z.B. DV Typ 1AVI-files, MPEG1):, allerdings ohne Audio-Unterstützung:
    DirectShowSource("d:\filename.avi")
    DirectShowSource("d:\filename.mpg")

    Manchmal muss die Framerate angegeben werden:

    DirectShowSource("d:\filename.asf", fps=15)

  3. MPEG2-Dateien (mpg, vob, m2v):

  4. Mit dem Programm DVD2AVI ein "project file" (eine Art Index für den schnellen Zugriff) erstellen und in AviSynth laden. Die Versionen von DVD2AVI und MPEG2DEC müssen kompatibel sein:
    LoadPlugin("d:\mpeg2dec.dll")
    mpeg2source("d:\filename.d2v")

Q7: Wie kann das Audio dazugeladen werden?

Das funktioniert für WAV und MP3-Dateien mit einem WAV-header.

WAVSource("d:\filename.wav")

Q8: Wie kann man jetzt Video und Audio verbinden?

video = AVISource("d:\filename1.avi")
audio = WAVSource("d:\filename2.wav")
AudioDub(video, audio)

Q9: Was bedeuten die unterschiedlichen Farbformate RGB/YUV und was heisst das für die verwendeten Filter?

Es sind einfach zwei unterschiedliche Arten, wie die Farbinformation intern abgespeichert sind.

RGB speichert für jede Grundfarbe Rot, Grün, Blau einen Wert.

YUV speichert einen Wert für die Helligkeit Y und für zwei Farb-Achsen U und V, wobei die Farbinformation immer für 2 horizontale Pixel gilt.

Manche Filter funktionieren nur in einem bestimmten Farbformat.
Es gibt allerdings die Funktionen

ConvertToYUY2()
ConvertBackToYUY2()
ConvertToRGB()
ConvertToRGB24()
ConvertToRGB32()

um zwischen den Formaten zu wechseln, was natürlich so selten wie möglich gemacht werden sollte.

Wenn möglich, sollte man beim YUY2-Format bleiben, da dieses am schnellsten ist.
 

Q10: Wie kann man ein plugin in AviSynth laden?

Mittels "LoadPlugin". Hier ein Beispiel:

LoadPlugin("d:\mpeg2dec.dll")
mpeg2source("d:\filename.d2v")

Weiters gibt es eine automatische Plugin-Ladefunktion. Alle Dateien in PlugIn-Verzeichnis werden automatisch geladen.
Vorsicht, nur funktionierende Plugins in dieses Verzeichnis speichern.

Das Verzeichnis ist in der Registry gespeichert:


[HKEY_LOCAL_MACHINE\SOFTWARE\Avisynth]
"PluginDir"="c:\\program files\\avisynth\\plugins"

Q11: Welche externen Filter gibt es und wo kann man sie herbekommen?

sauron.mordor.net/dgraft ist die Homepage von Donald Graft. Dort findet man viele Filter und Links.

forum.doom9.org DAS Forum für AviSynth

www.doom9.org viele Links und Download-Bereich

  1. Decomb-Filterset (Donald Graft alias neuron2): Mit diesen Filtern kann telecined-Video zurück zu progressiv konvertiert werden und echtes Interlaced kann deinterlaced werden.

  2. TemporalSmoother (dividee): Adaptives Rauschfilter, das zeitlich arbeitet (also nur bei ruhigen Szenen wirkt).

  3. VobSub (gabest): Generierung von Untertiteln.

  4.  
  5. GreedyHMA (Tom Barry): Deinterlace, De-Telecine.

  6.   
  7. Smoother HiQ (Klaus Post): Adaptives Rauschfilter, arbeitet räumlich.

  8.  
  9. ImageSequence (bzzz2): zum Importieren von Bild (-Sequenzen).

  10.  
  11. Unfilter (Tom Barry): Schärfen und Weichzeichnen.

  12.   
  13. TomsMoComp (Tom Barry): Deinterlace.

  14.  
  15. Dup (Donald Graft): Dupliziert fast gleiche Bilder (bei Zeichentrick).

  16.   
  17. Convolution3D (vlad59): Rauschfilter, das gleichzeitig räumlich und zeitlich arbeitet.

Q12: Was ist mpeg2dec.dll und wo kann man die neueste Version bekommen?

mpeg2dec.dll/mpeg2dec2.dll sind plugins, mittels denen AviSynth MPEG2-Dateien lesen kann. Mpeg2source erzeugt ein Video im YUY2-Format.

mpeg2dec.dll gibt es auf der Homepage von Dividees, mpeg2dec2.dll (etwas fehlertolerantere Version) gibt es auf der Homepage von trbarry.