Wichtig! Jede Bearbeitung mit Avisynth bedeutet eine Neucodierung des Videoas und Audios!
Deshalb sollte das Audio wenn möglich getrennt (demuxed) werden und anch der Videobearbeitung wieder hinzugefügt werden.

Ich führe hier nicht sämtliche Alternativen auf, es soll ja eher eine kleine Einführung sein, bzw. denjenigen dienen, die sich gar nicht tiefer mit Avisynth befassen wollen.

Um ein Skript zu erstellen, benutzt man einen Texteditor z.B. Notepad. Dort hinein kann man aus dem hier aufgeführten Beispielen die benötigten Zeilen reinkopieren, an die eigenen Bedürfnisse anpassen, dann die Datei als *.avs abspeichern. Mit Notepad muss man nur darauf achten vorher "Alle Dateien" auszuwählen, da sonst noch die Erweiterung *.avs.txt angehangen wird.

Avisynth benutzt interne und externe Filter. Exetrne Filter müssen separat geladen werden. Dazu kann man die benötigten DLL's in das Pluginverzeichnis der Avisynthinstallation kopieren wodurch es allerdings zu Unverträglichkeiten zwischen benötigten und nicht benötigten DLL's kommen kann. Deshalb wird empfohlen, die jeweils benötigten DLL's im Skript zu laden.

Der Standardaufruf dafür lautet:

LoadPlugin("Pfad zum Pluginverzeichnis\benötigtes Plugin.dll")

In der Praxis könnte das so aussehen:

LoadPlugin("C:\Programme\Avisynth 2.5\Plugins\DGIndex\DGDecode.dll")

Eine Übersicht der für die hier im folgenden aufgeführten Filter benötigten Plugins, ich habe die Pfade einer Standardinstallattion von Avisynth angepasst, man muss nur den Plugins-Ordner aus dem plugins.zip nach "C:\Programme\Avisynth 2.5\" kopieren, dann sollten die Pfade stimmen. Andernfalls muss man die Pfade im Loadplugin-Aufruf anpassen. DGIndex sowie DgAVCIndex habe ich nicht mit reingepackt, es sollten ja immer die aktuellsten Versionen benutzt werden.

Plugins laden:

LoadPlugin("C:\Programme\Avisynth 2.5\Plugins\DGIndex\DGDecode.dll")
wird benötigt für mpeg2source
DGIndex wird benötigt
http://neuron2.net/dgmpgdec/dgmpgdec.html
LoadPlugin("C:\Programme\Avisynth 2.5\Plugins\DGAVCIndex\DGAVCDecode.dll")
wird benötigt für avcsource
DGAVCIndex wird benötigt
http://neuron2.net/dgavcdec/dgavcdec.html

LoadPlugin("C:\Programme\Avisynth 2.5\Plugins\BassAudio23\BassAudio.dll")
wird benötigt für bassaudiosource
LoadPlugin("C:\Programme\Avisynth 2.5\Plugins\BassAudio23\Bass.dll")
wird benötigt für bassaudiosource
LoadPlugin("C:\Programme\Avisynth 2.5\Plugins\BassAudio23\bass_aac.dll")
spezieller bassaudiosourcefilter
LoadPlugin("C:\Programme\Avisynth 2.5\Plugins\BassAudio23\bass_ac3.dll")
spezieller bassaudiosourcefilter
LoadPlugin("C:\Programme\Avisynth 2.5\Plugins\BassAudio23\bass_alac.dll")
spezieller bassaudiosourcefilter
LoadPlugin("C:\Programme\Avisynth 2.5\Plugins\BassAudio23\bass_ape.dll")
spezieller bassaudiosourcefilter
LoadPlugin("C:\Programme\Avisynth 2.5\Plugins\BassAudio23\bass_cda.dll")
spezieller bassaudiosourcefilter
LoadPlugin("C:\Programme\Avisynth 2.5\Plugins\BassAudio23\bass_flac.dll")
spezieller bassaudiosourcefilter
LoadPlugin("C:\Programme\Avisynth 2.5\Plugins\BassAudio23\bass_midi.dll")
spezieller bassaudiosourcefilter
LoadPlugin("C:\Programme\Avisynth 2.5\Plugins\BassAudio23\bass_mpc.dll")
spezieller bassaudiosourcefilter
LoadPlugin("C:\Programme\Avisynth 2.5\Plugins\BassAudio23\bass_ofr.dll")
spezieller bassaudiosourcefilter
LoadPlugin("C:\Programme\Avisynth 2.5\Plugins\BassAudio23\bass_spx.dll")
spezieller bassaudiosourcefilter
LoadPlugin("C:\Programme\Avisynth 2.5\Plugins\BassAudio23\bass_tta.dll")
spezieller bassaudiosourcefilter
LoadPlugin("C:\Programme\Avisynth 2.5\Plugins\BassAudio23\bass_wma.dll")
spezieller bassaudiosourcefilter
LoadPlugin("C:\Programme\Avisynth 2.5\Plugins\BassAudio23\bass_wv.dll")
spezieller bassaudiosourcefilter
LoadPlugin("C:\Programme\Avisynth 2.5\Plugins\BassAudio23\bass_aac.dll")
spezieller bassaudiosourcefilter
LoadPlugin("C:\Programme\Avisynth 2.5\Plugins\NicAudio\NicAudio.dll")
wird benötigt für nic___source

Load_Stdcall_plugin("C:\Programme\Avisynth 2.5\Plugins\Yadif\yadif.dll")
wird benötigt für yadif
LoadPlugin("C:\Programme\Avisynth 2.5\Plugins\Deblock\deblock.dll")
wird benötigt für Deblock
LoadPlugin("C:\Programme\Avisynth 2.5\Plugins\Masktools\mt_masktools.dll")
wird benötigt für Deblock_qed und DeHalo_alpha
LoadPlugin("C:\Programme\Avisynth 2.5\Plugins\Removegrain_0.9\Repair.dll")
Repair.dll von removegrain_0.9 wird benötigt für DeHalo_alpha
LoadPlugin("C:\Programme\Avisynth 2.5\Plugins\DCTFilter\DctFilter.dll")
wird benötigt für Deblock_qed



Es können auch Skripte importiert werden. Diese enthalten üblicherweise vorgefertigte Funktionen, die dann im eigentlichen Skript aufgerufen werden können. Für diese importierten Funktionen werden teilweise wiederum Plugins benötigt. Wenn man also solche Skripte importieren möchte, sollte man die zugehörige Dokumentation lesen. In einigen Fällen findet man die Dokumentation in dem zu importierenden Skript selbst. Dann öffnet man das Skript im Editor und schaut nach entsprechenden Hinweisen.

Skripte importieren:

import("C:\Programme\Avisynth 2.5\Plugins\DeBlock_QED\deblock_QED_mt2.avs") wird benötigt für Deblock_qed
import("C:\Programme\Avisynth 2.5\Plugins\DeHalo_alpha\DeHalo_alpha_mt2.avs") wird benötigt für DeHalo_alpha

Video laden:

Bevor man das Video einlädt, sollte man erst einmal herausfinden, was in der Quelle drin ist.
Dazu lädt man sich z.B. MediaInfo, GSpot oder Videoinspector herunter und öffnet das Video damit.

FLV sollte vorher mit FLVExtract demuxed werden., Dabei enstehen üblicherweise *.avi sowie *.mp3.

Mpeg2-Videos (*.mpg, *.vob, *.ts) werden in DGIndex  geöffnet und ein *.d2v erzeugt. Dabei kann auch der Ton demuxed werden.

Mpeg-4 Advanced Video Codec, auch h264 genannt befindet sich z.B. in *.mov und *.mp4. Es kann vorkommen, dass man FLV-Dateien mit diesem Inhalt
bekommt (meistens von Videohostern), die kann man problemlos in *.mp4 umbenennen.
MOV/MP4 mit Yamb (mp4box) demuxen. Die entstandene *.h264 mit DGAVCIndex öffnen und eine *.dga erzeugen lassen.

ASF/WMV muss leider mit DirectShowSource geladen werden, wobei die Framerate (fps) anzugeben ist  MediaInfo zeigt dies zwar an, diese muss aber nicht korrekt sein. Notfalls durch Vergleich der Länge des Originalvideos im Player mit dem per Avisynth geladen herauszukriegen.

Skriptbefehl
Auswirkung
Analyse von MediaInfo
avisource("Pfad zur Datei\Video.avi")
Video und Audio wird geladen (siehe Avisynthdokumentation) MPEG-4 Visual
VP6
H.263
Uncompressed
mpeg2source("Pfad zur Datei\Video.d2v")
Video wird geladen MPEG Video Version 2
mpeg2source("Pfad zur Datei\Video.d2v",cpu=6)
Video wird mit int. Postprozessing (Deblocking und Deringing) geladen MPEG Video Version 2
mpeg2source("Pfad zur Datei\Video.d2v",cpu2="xxxxoo")
Video wird mit int. Postprozessing (Deblocking ohne Deringing) geladen, "xxxxoo" entspricht cpu=4 MPEG Video Version 2
avcsource("Pfad zur Datei\Video.dga")
Video wird geladen AVC
directshowsource("Pfad zur Datei\Video.wmv",fps=xx.xxx)
Video und Audio wird geladen VC-1 WMV3
S-Mpeg 4 v3 MP43

Audio laden:

Wavsource("Pfad zur Datei\Audio.avi")
Audio wird geladen (siehe Avisynthdokumentation)
MPASource("Pfad zur Datei\Audio.mp3")
Audio wird geladen
directshowsource("Pfad zur Datei\Video.mpg",video=false)
Audio wird geladen
bassaudiosource("Pfad zur Datei\Audio.mp3")
Audio wird geladen
bassaudiosource("Pfad zur Datei\Audio.aac")
Audio wird geladen
bassaudiosource("Pfad zur Datei\Audio.ac3")
Audio wird geladen
bassaudiosource("Pfad zur Datei\Audio.alac")
Audio wird geladen
bassaudiosource("Pfad zur Datei\Audio.ape")
Audio wird geladen
bassaudiosource("Pfad zur Datei\Audio.flac")
Audio wird geladen
bassaudiosource("Pfad zur Datei\Audio.midi")
Audio wird geladen
bassaudiosource("Pfad zur Datei\Audio.mpc")
Audio wird geladen
bassaudiosource("Pfad zur Datei\Audio.ofr")
Audio wird geladen
bassaudiosource("Pfad zur Datei\Audio.spx")
Audio wird geladen
bassaudiosource("Pfad zur Datei\Audio.tta")
Audio wird geladen
bassaudiosource("Pfad zur Datei\Audio.wma")
Audio wird geladen
bassaudiosource("Pfad zur Datei\Audio.wv")
Audio wird geladen
nicAC3source("Pfad zur Datei\Audio.ac3", int "Channels", int "DRC")
Audio wird geladen
nicMPAsource("Pfad zur Datei\Audio.mpa", int "Channels")
Audio wird geladen
nicDTSsource("Pfad zur Datei\Audio.dts", int "Channels", int "DRC")
Audio wird geladen
nicLPCMsource("Pfad zur Datei\Audio.lpcm", int "SampleRate", int "SampleBits", int "Channels")
Audio wird geladen
nicRawPCMsource("Pfad zur Datei\Audio.lpcm", int "SampleRate", int "SampleBits", int "Channels")
Audio wird geladen

Audio anpassen:

ssrc(48000)
Samplerate auf 48 Khz festgelegt
delayaudio(0.5)
Audio wird hier um 1/2 Sekunde verspätet wiedergegeben
delayaudio(-3.2)
Audio wird hier um 3,2 Sekunden verfrüht wiedergegeben

Video und Audio zusammenfügen:

video=mpeg2source("Pfad zur Datei\Video.d2v") Video wird geladen
audio=bassaudiosource("Pfad zur Datei\Audio.aac") Audio wird geladen
audiodub(video,audio) Video und Audio wird zusammengefügt

mehrere Videos zusammenfügen:

avisource("Pfad zur Datei\Video1.avi")
Video und Audio wird geladen
assumefps(25) falls nötig
Framerate auf 25 Bilder pro Sekunde festgelegt (siehe Avisynthdokumentation)
ssrc(44100) falls nötig Samplerate auf 44,1 Khz festgelegt (siehe Avisynthdokumentation)
video1=last
der letzten Ausgabe wird die Variable video1 zugewiesen



avisource("Pfad zur Datei\Video2.avi")
Video und Audio wird geladen
assumefps(25) falls nötig Framerate auf 25 Bilder pro Sekunde festgelegt (siehe Avisynthdokumentation)
ssrc(44100) falls nötig Samplerate auf 44,1 Khz festgelegt (siehe Avisynthdokumentation)
video2=last
der letzten Ausgabe wird die Variable video2 zugewiesen



video1++video2
++ entspricht auch AlignedSplice (siehe Avisynthdokumentation)

Halbbilder trennen und zusammenfügen:

Video aus DVD-Quellen oder Fernsehaufnahmen liegen meistens interlaced (Halbbildverfahren) vor, was für die Wiedergabe am Röhrenfernseher auch gut ist. TFT/LCD-Flachbildschirmen können aber nur progressives Bildmaterial vernünftig anzeigen, hier sieht man in Bewegungen sogenannte Kämme (engl. Comb). Wenn das Zielvideo interlaced bleiben soll, muss man beim Filtern aufpassen, dass man die Halbbilder einzeln bearbeitet. Dazu gibt es in manchen Filtern spezielle Parameter. Man kann auch vor dem Filtern die Halbbilder trennen und nach dem Filtern wieder zu interlaced Video zusammenfügen.

assumeframebased() nur nötig, wenn das Video fälschlicherweise als feldbasiert gekennzeichnet ist (siehe Avisynthdokumentation)
separatefields() trennt die einzelnen Frames (Halbbilder) auf (siehe Avisynthdokumentation)
weave() führt die getrennten Bildpaare wieder zusammen (siehe Avisynthdokumentation)

Videos deinterlacen:


Möchte man aber aus dem interlaced vorliegendem Material progressives Video machen, muss deinterlaced werden. Dies sollte sinnigerweise vor dem Einsatz von Entrauschern und Schärfefiltern passieren.

mpeg2source("Pfad zur Datei\Video.d2v")

assumetff() oberes Halbbild als Erstes festlegen, wenn nötig (siehe Avisynthdokumentation)
assumebff() unteres Halbbild als Erstes festlegen, wenn nötig (siehe Avisynthdokumentation)
bob() beide Halbbilder werden auf Vollbild gestreckt > Framerate verdoppelt (siehe Avisynthdokumentation)
yadif() guter Kompromiß aus Qualität und Geschwindigkeit Details siehe Beschreibung im Yadifordner

Video schneiden:

trim(0,3000) startframe,endframe (siehe Avisynthdokumentation)
trim(0,-3000) startframe,-Anzahl der Frames (siehe Avisynthdokumentation)
trim(0,23788)++trim(40182,0) startframe,endframe++startframe,letzter Frame des Videos z.B. Werbung wegschneiden
fadein(7) Video und Audio wird 7 Frames lang eingeblendet (siehe Avisynthdokumentation)
fadeout(15) Video und Audio wird 15 Frames lang ausgeblendet (siehe Avisynthdokumentation)
fadeio(7)
Video und Audio wird 7 Frames lang ein- und ausgeblendet (siehe Avisynthdokumentation)

externes Postprozessing:

Da nicht alle Quellfilter internes Postprozessing beherschen oder wenn man lieber "Meister" Did
ées Funktionen benutzen möchte, kann man das auch nachträglich bewerkstelligen.

BlindPP() analog Parameter wie in mpeg2source (siehe Avisynthdokumentation > MPEG2Dec3)
deblock() Details siehe Beschreibung im Deblockordner
Deblock_qed() Details siehe DeBlock_QED readme.txt im Deblock_QED-Ordner aus Didées Funktionen
DeHalo_alpha() Details siehe DeBlock_QED readme.txt im DeHalo_alpha-Ordner aus Didées Funktionen

Videoauflösung bearbeiten:

crop(4,2,-4,-0) Ränder wegschneiden links,oben,-rechts,-unten (siehe Avisynthdokumentation)
crop(16,8,320,240) Ränder wegschneiden links,oben,Breite des neuen Videos,Höhe des neuen Videos - restliche Pixel am rechten und unteren Rand werden verworfen (siehe Avisynthdokumentation)
addborders(16,8,16,8) Ränder hinzufügen links,oben,recht,unten (siehe Avisynthdokumentation)
Letterbox() Ränder Schwarz einfärben Videoauflösung ändert sich nicht (siehe Avisynthdokumentation)
ReduceBy2() Auflösung halbieren (siehe Avisynthdokumentation)
BicubicResize(720,576) Breite,Höhe (siehe Avisynthdokumentation)
BilinearResize(720,576) Breite,Höhe (siehe Avisynthdokumentation)
LanczosResize(720,576) Breite,Höhe (siehe Avisynthdokumentation)
gaussresize(720,576,p=75) Breite,Höhe,Nachschärfen p= von 0 bis 100 möglich, default=30, höhere Werte = mehr Schärfe, Nachteil: schlechtere Komprimierbarkeit