privhp.jpg (7910 Byte)

AviSynth als Frameserver in der praktischen Anwendung

(Programmiersprache für Videoproduktionen)

Autor.gif (7348 Byte)

AviSynth ist ein sogenannter Frameserver und als solcher nicht direkt z.B. für eine Konvertierung einsetzbar, er dient lediglich als Zulieferer und Mediator für jede erdenkliche Art der Videobearbeitung. Dadurch bekommen wir eine erhebliche Erweiterungsmöglichkeit für unser Videohobby und lösen Aufgaben die zum großen Teil viele Videoschnittprogramme nicht lösen können. 

Wie wäre es also sich mal damit zu beschäftigen wie man AVCHD-Clips in ein weniger komprimiertes Videoformat konvertieren könnte um dann mit diesen Datei leicht in den unterschiedlichsten Videoschnittprogrammen arbeiten zu können?

Über Avisynth ist bereits viel geschrieben worden, weil immer dann wenn man sehr hochwertige Videobearbeitung benötigt, wie Skalierung z.B. oder Konvertierungen, Avisynth bei den fortgeschrittenen Hobbyvideofilmern ins Spiel gebracht wird. Im Internet gibt es zahlreiche Plug-ins zur Bildverbesserung, die ihresgleichen in der Prosumer-Software-Welt suchen. Leider sind die meisten Hinweise im Internet sehr chaotisch und unstruktuiert, so dass sich gerade Einsteiger sehr schwer tun den "Roten Faden" aufzunehmen. Ich versuche nachfolgend etwas für die "Erleuchtung" zu tun...

AviSynth ist praktisch eine Programmiersprache für Videoproduktionen mit einer Vielzahl von Funktions-Befehlen die per Listing (AVS-Schript) zeilenweise abgearbeitet werden. 

Inhaltverzeichnis dieser Seite:

Schnelleinführung in AviSynth AVCHD-Clip per AviSynth in eine Intermediate-Clip konvertieren AVCHD-Clip per VirtualDubMod transcodieren
Per Avisynth HDV in eine Intermediate-Datei konvertieren DirectShow verstehen DirectShow-Filtergraphen an AviSynth übergeben
Wenn DirectShowSource Fehler macht AVC-Transcoder im Eigenbau Avisynth-Texteditor
Avisynth-Scripte im Internet Wenn ein NLE AviSynth-Scripte nicht annehmen will Dateien mit DOS-Befehl copy /b verschmelzen
Weitere AviSynth-Scripte auf dieser Homepage Wie kann man noch AVCHD-Files transcodieren? Wie man ältere Filter in AviSynth V2.5 und höher laden kann
m2t-Video entrauschen Was ist mit Audio?  Plugin für Premiere Pro
Link-Tipps    

Ob nachfolgender Workflow mit MS-Vista funktioniert, weiß ich nicht!

Schnelleinführung in AviSynth

Wir Installieren Avisynth wie folgt:

  1. Wir downloaden Avisynth und entpacken es in ein beliebiges Verzeichnis

  2. Die Datei avisynth.dll kopieren wir in das Windows-Systemverzeichnis C:\Windows\system32

  3. Jetzt klicken wir auf die Datei install.reg damit Avisynth im System registriert wird, ein Neustart ist nicht erforderlich

Hinweis: es gibt zwischenzeitlich auch Download-Versionen im Internet, da muss man nur noch die Datei starten und es installiert sich alles korrekt. 

Avisynth führt Befehle aus, die in einer einfachen Textdatei (z.B. per MS-Editor erstellt) in einer Scriptsprache niedergeschrieben werden, wobei diese Textdatei die Endung *.avs hat, also z.B. Version.avs. Scripte kann man aber auch viel komfortabler mit dem Programm AVSEdit erstellen.

Beispiel für die Scriptdatei Version.avs:

# Prints out version information

Version() 

Diese Datei macht nichts anderes als auf dem Bildschirm auszugeben, welche Version von Avisynth auf dem PC installiert ist.

Hinweis: Für Bemerkungen im AVS-Scripts setzt man dieses Zeichen # davor, auch wenn man eine Zeile mit einer Funktionsanweisung temporär deaktivieren möchte. 

Man kann jetzt diese Datei und die Installation von Avisynth ganz einfach per VirtualDub auf Funktion überprüfen, in dem man VD startet und per Menü Datei den Menüpunkt "Öffne Video Datei" aktiviert und das Verzeichnis sucht in dem Version.avs abgelegt ist. Es ist so, als ob wir eine AVI-Videodatei in VirtualDub laden würden. Wir starten nun die Script-Abarbeitung mit der Taste "Enter" und sofort wird in beiden Fenstern von VD ausgegeben welche Version von Avisynth wir installiert haben.

So..., damit haben wir jetzt die Bestätigung bekommen, dass AviSynth auf unserem Rechner korrekt arbeitet.

AVCHD-Clip per AviSynth in eine Intermediate-Clip konvertieren

Wir kommen nun zu einer ganz wichtigen Anwendung für die neuen AVCHD-Kamera Besitzer die sich beklagen, dass die von diesen Kameras erstellten Dateien so schwer oder garnicht mit den bisherigen Videoschnittprogrammen bearbeitbar sind. Wegen der hohen Komprimierung des AVCHD-Rohmaterials sind PCs mit höchster Prozessorleistung erforderlich, etwa Systeme mit dem Prozessor Intel Core 2 Quad Q6600. Vereinzelt werden dazu recht teure NLEs verkauft die AVCHD-Clips in ein AVI-Zwischenformat auf der Basis von I-Frames und nicht hochkomprimierten GOPs konvertieren, damit ein flüssiger Videoschnitt möglich wird. 

Nachfolgend zeige ich, wie man sich mit geringen Mitteln (kostenlos!) derartige Intermedia-Clips aus dem AVCHD-Material selbst mit Hilfe von Avisynth und Virtualdub herstellen kann. Der Vorteil dieser Methode ist, dass wir uns die Videokompression für ein Intermediate-Clip selbst auswählen können und der Vorgang unabhängig ist vom Kamerahersteller.

Wir gehen wie folgt vor:

  1. Zuerst prüfen wir mit dem Freeware-Tool GraphEdit ob der uns vorliegende Clip (*.mts oder *.m2ts) mit den vorhandenen DirectShow-Filtern einen vollständigen Filtergraphen aufbauen kann und damit auf diesem System auch wirklich geöffnet werden kann. Ist der Filtergraph vollständig, dann können wir uns den Clip auch gleich mit Klick auf die Play-Taste ansehen. 


  2. Wir schreiben uns jetzt eine neue Script-Datei, die aus nur zwei Zeilen besteht:

Videoclip=DirectShowSource ("H:\Konvert\00011.MTS")
return(Videoclip)

Für meinen Test habe ich einen AVCHD-Clip (00011.MTS) aus dem Internet verwendet, der mit einer Panasonic erstellt worden ist. Wir vergeben dieser Datei einen Namen mit der Endung .avs

AviSynth-Scripte (AVS-Scripte) kann man in verschiedene Programme laden, z.B. VirtulaDub, VirtualDubMod, ProcoderExpress, TMPGEnc, MediaPlayerClassic. In manche NLEs kann man AviSynth nur als "Pseudo-AVI" laden.

  1. Nun starten wir VirtualDub, laden diese Avisynth-Datei und betätigen die Enter-Taste. Kurze Zeit später sehen wir bereits unseren Clip in VirtualDub. Avisynth hat dafür gesorgt, dass AVCHD Frame für Frame an VirtualDub ohne Qualitätsverlust übergeben worden ist.

Dieser Trick funktioniert mit allen Video-Formaten für die ein DirectShow-Decoder auf dem System installiert worden ist. Typischerweise sind das alle Video-Formate die z.B. mit dem MS-Windows-Media-Player abgespielt werden können. Bei mir wird z.B. der CyberLink H.264/AVC Decoder (PCM45) angezeigt unter Datei/Eigenschaften des WMP.

Welche DirectShow-Decoder auf unserem System vorhanden sind, zeigt uns das kleine Freeeware-Tool: RadLight Filter Manager

  1. Jetzt liegt es nur an uns mit welchem Intermediate-Codec wir diese Clip in unserem Lieblings-Videoschnittprogramm weiter bearbeiten wollen. Unter dem Menüpunkt Video/Komprimierung haben wir die Auswahl von z.B.:

    - Huffyuv (kostenlos im Internet)
    - Canopus HQ-Codec (kostenpflichtig, gibt es nur zusammen mit GV-EDIUS)
    - PICVideoM-JPEG 3 (kostenpflichtig, wird von Pinnacle Studio auf das System
      installiert)
    - Lagarith-Codec (kostenlos im Internet)

    Welche Video-Komprimierung wir auf unserem System wählen können, zeigt uns sehr schön VirtualDub mit Klick auf: Video/Kompression

    Darüberhinaus aktivieren wir im Menü Video/Komprimierung noch die Option "Schnelles Videoencoden..." für den YUV/YV12-Farbraum.

    Nun gehen wir auf Menü Datei und wählen die Option "als avi speichern..." und geben den Clip im neuen Format aus.

  2. Den praktisch verlustarm konvertierten Clip können wir nun in unser Videoschnittprogramm laden und dort jetzt sehr leicht auch mit einer geringeren Prozessorleistung editieren. Natürlich wird durch die Konvertierung der Clip im neuen Format größer - weil jetzt in I-Frame-Form weniger komprimiert und die Festplatten müssen dafür schnell genug sein, was aber in der Regel der Fall ist.

Wer hätte das gedacht, dass VirtualDub diese AVCHD-Clips öffnen kann?

Das geht, wenn der Zugriff per DirectShow auf einen H264-Decoder möglich ist, d.h. wenn dieser Decoder auf dem System installiert ist. Ein solcher Decoder wird z.B. auf dem System mit Nero 8 zusammen oder z.B. mit CyberLink PowerCinema für die WinTV-NOVA-HD-S2 PCI-Karte mitinstalliert. Ebenfalls bringen verschiedene andere Player die AVCHD abspielen können diesen Decoder mit auf das System.

Stapel-Konvertierung mehrerer AVCHD-Files:

dafür ist etwas Vorarbeit nötig. Für jeden AVCHD-Clip muss eine AVS-Datei vorhanden sein, z.B. mit folgendem Inhalt:

DirectShowSource("H:\Konvert\00011.MTS")
ConvertToRGB(matrix="rec709")

gespeichert wird das Script z.B. als AVCHD-Konvert-1.avs

Wir machen eine Kopie davon als VCHD-Konvert-2.avs und passen den Clip-Index an:

DirectShowSource("H:\Konvert\00012.MTS")
ConvertToRGB(matrix="rec709")

usw. ...

Nun starten wir VirtualDub und gehen jetzt wie folgt vor um die Stapelverarbeitung vorzubereiten:

[Strg]+[O], AVCHD-Konvert-1.avs laden

[Strg]+[C], wir wählen die Komprimierung, z.B. PicVideo M-JPEG 3

[F7], wir geben einen Namen ein z.B. Clip-1, wir setzen einen Haken bei "Aktion zur Liste der Jobs hinzufügen und fortfahren..."

[Strg]+[O], AVCHD-Konvert-2.avs laden

[Strg]+[C], wir wählen die Komprimierung, z.B. PicVideo M-JPEG 3

[F7], wir geben einen Namen ein z.B. Clip-2, wir setzen einen Haken bei "Aktion zur Liste der Jobs hinzufügen und fortfahren..."

[F4], Job Liste wird angezeigt, wir aktivieren jetzt den Schalter [Starten]

VitualDub arbeitet nun selbstständig die Jobs ab und am Ende liegen uns die gewünschten Intermediate-Files vor.

Diese Intermediate-Files können wir nun z.B. in Premiere Pro CS3 oder andere NLEs laden, sie laufen dort toll geschmeidig auf der Timeline und wir können nun alles bequem editieren und dann in ein Endformat ausgeben.

Die Vorarbeit für die Reihe der AVS-Dateien machen wir nur einmal!
Mit dem Windows-Explorer oder diesem Tool hier (auch dieses hier) benennen wir die zu konvertierenden Clipreihe so um, dass die Clipnamen den Clips in den vorhandenen AVS-Dateien entsprechen. Die in Virtual-Dub erstellte Job-Liste für die Stapelverarbeitung speichern wir für spätere Verwendung ab. Mit einem Editor können wir uns die Job-Liste ansehen und wenn wir die Struktur ergründet haben auch direkt erweitern. 

AVCHD-Clip per VirtualDubMod transcodieren

Im Unterschied zu vielen NLEs führt AviSynth alle Operationen im YUV/YV12-Farbraum aus, d.h. die Helligkeitskomponente und Farbdifferenzen werden wie bei den meisten Videokompressionsalgorithmen getrennt behandelt. Das Anwenden von Filtern zieht somit keine Farbraumkonvertierungen - und somit keine Qualitätsverluste - nach sich. Die Filter Resize und Crop in VirtualDub arbeiten dagegen im RGB24-Farbraum. Das bremst nicht nur die Verarbeitung, es führt auch zu Rundungsfehlern und damit zu Farbverfälschungen. Setzt man bei der Komprimierung die Option "Fast recompress"(Schnelles Wiederencoden), dann arbeitet auch VirtualDub im YUV/YV12-Farbraum, kann dann aber seine eigenen Filter nicht mehr benutzen, so dass hier eine Vorarbeit mit AviSynth-Filtern sinnvoll ist, siehe auch /10/. Warum man sich um den Farbraum der Videos kümmern sollte ist sehr gut in Q3.8 erklärt.

An Stelle von VirtualDub arbeitet man deshalb gleich besser mit VirtualDubMod, denn:

  1. VirtualDubMod kann YV12 verarbeiten (notwendig für AviSynth 2.5)

  2. VirtualDubMod hat einen Script-Editor (mit Strg-E zu öffnen und mit F5 kann man das Script testen)

  3. VirtualDubMod kann Trimm-Befehle zum Schneiden des Videos selbstständig erzeugen

VirtualDubMod

Um AVCHD-Files zu transcodieren benötigen also:

  • VirtualDubMod

  • AviSynth

  • DirectShow-Decoder für H.264/AVC

Nach dem Start von VirtualDubMod öffnen wir per File/Open video file folgende Box:

Bei Dateityp wählen wir All types (*.*) und wählen einen Clip in der Liste aus.  links unten aktivieren wir die Box Automaticly load linked segment. In der Auswahlbox Use AviSynth template wählen wir "DirectShowSource" aus. Nun klicken wir auf öffnen und der Clip ist in VirtualDubMod. Wir sehen ihn, wenn wir den Timeline-Scrubber kurz bewegen.

VirtualDubMod schreibt sich automatisch bei diesem Vorgang ein AVS-Script, z.B.:

#ASYNTHER DirectShowSource
DirectShowSource("F:\Panasonic-SD1\00001.MTS")

Wir können jetzt noch diverse Filter auf den Clip anwenden, z.B. den Smart Deinterlacer Filter, wenn wir wollen.

Nun muss nur noch die Video-Kompression gewählt werden wie oben schon bei VirtualDub gezeigt und man kann diesen Clip für weitere Bearbeitung mit einem beliebigen NLE per "Save As..." nun speichern.

Selbstverständlich können wir uns auch mit VirtualDubMod einmalig eine Jobliste, z.B. für 300 zu konvertierende Clips anlegen, um die Transcodierung mehrerer Clips in Stapelverarbeitung zu automatisieren. Diese Jobliste speichern wir dann einfach ab und später können wir total schnell nach dem Laden der Jobliste AVCHD-Clips automatisch transcodieren. Lediglich die Clipnamen müssen in der Benennung mit den Clips der Jobliste zusammenpassen, dafür kann man z.B. das bereits hier genannte kleine Tool einsetzen.

Wir legen nun hier probeweise eine Jobliste für zwei Clips an:

[Strg]+[O], Dateityp *.*, Clip 1 markieren,
die Box Automaticly load linked segment aktivieren,
in der Auswahlbox Use AviSynth template wählen wir "DirectShowSource"

[Strg]+[C], wir wählen die Komprimierung, z.B. PicVideo M-JPEG 3

[F7], wir geben einen Namen ein z.B. Clip-1, wir setzen einen Haken bei "Don't run this job now..." und schließen ab mit "Speichern"...

[Strg]+[O], Dateityp *.*, Clip 2 markieren,
die Box Automaticly load linked segment aktivieren,
in der Auswahlbox Use AviSynth template wählen wir "DirectShowSource"

[Strg]+[C], wir wählen die Komprimierung, z.B. PicVideo M-JPEG 3

[F7], wir geben einen Namen ein z.B. Clip-2, wir setzen einen Haken bei "Don't run this job now..." und schließen ab mit "Speichern"...

[F4], Job Liste wird angezeigt und speichern erst einmal die Job-Liste. Jetzt klicken wir auf den Schalter [Start]

VitualDubMod arbeitet nun selbstständig die Jobs ab und am Ende liegen uns die gewünschten Intermediate-Files vor um diese z.B. in Premiere Pro CS3 einsetzen zu können.

Wie man ohne DirectShow-Filter einen AVC-Transcoder aufbaut, steht hier.

Per Avisynth HDV in eine Intermediate-Datei konvertieren

Was im oberen Abschnitt mit AVCHD-Clips beschrieben ist, kann man auch mit HDV-Files machen, die z.B. per HDVSplit als *.m2t auf der Festplatte abgelegt worden sind.

Die Script-Datei hierfür sieht so aus:

Videoclip=DirectShowSource ("H:\Konvert\mod-0010.m2t")
return(Videoclip)

Auch hier werden ganz einfach per DirectShow die *.m2t-Clips in VirtualDub - auch wenn das normale VirtualDub sonst keine MPEG-Dateien öffnen kann - per Avisynth-Script geöffnet. 

Die Stapelkonvertierung nehmen wir in Anlehnung an das Beispiel oben vor...

DirectShow verstehen

Eine sehr gute Erklärung im Umgang mit DirectShow-Filtern findet man hier. Unverzichtbar in diesem Zusammenhang ist der RadLight Filter Manager*. Wie schon oben erwähnt, können alle Video-Formate per DirectShow-Decoder geöffnet werden die z.B. mit dem MS-Windows-Media-Player abspielbar sind. Kann der MS-WMP z.B. keine *.m2t-Datei direkt abspielen, dann ist der Merit(Bevorzugung) des Decoders nicht hoch genug. Mit dem RadLight Filter Manager habe ich z.B. CyberLink Video/SP Decoder auf den Merit "PREFERRED" gesetzt. Spiele ich nun eine m2t-Datei mit dem MS-WMP ab, dann sehe ich unter Eigenschaften, dass der gewünschte Decoder am werkeln ist, siehe Bild unten.

Merit-Klassen:

80000 - Bevorzugt
60000 - Normal
40000 - Unwahrscheinlich
20000 - Nicht benutzen
10000 - Software-Kompressor
10050 - Hardware-Kompressor

* Von OdSoft Multimedia gibt es da noch den "FilterGraph Manager". Auch mit diesem Tool kann man den höchsten Merit einem gewünschten Decoder sicher zuweisen.

DirectShow-Filtergraphen an AviSynth übergeben

Manchmal klappt das nicht mit DirectShowSource. Ab AviSynth Version 2.5.5 kann man aber maßgeschneiderte DirectShow-Filtergraphen an AviSynth übergeben. Mit GraphEdit läßt man sich für das zu behandelnde Quell-Video den Filtergraphen zeigen, löscht aber die dort für die Wiedergabe angezeigten  "Video Renderer" und Default DirectSound Device" jedoch weg. Den so geänderten Graphen speichert man jetzt mit "name.grf" ab und öffnet ihn mittels DirectShowSource in einem Script in AviSynth.

Wenn DirectShowSource Fehler macht

Manchmal werden von DirectShow-Filtern Frames weggelassen, oder durch Frameduplizierung Bild-Ton Versatz erzeugt zum Beispiel. Der Grund ist of in der Installation von sogenannten Freeware-Codec-Packs zu suchen. Die Merits (Filter-Rangfolge) der Filter für den Filtergraphen einer bestimmte Clipart gerät praktisch durch jede Neuinstallation durcheinander. Oft hilft eine Deinstallation der Filter oder die manuelle Neupriorisierung der Filter-Merits bis der gewünschte Filtergraph wieder entsteht. Ferner kann man kann mit regsvr32.exe DS-Flter sowohl installieren als auch deinstallieren.

Um unabhängig von den DirectShow-Filtern arbeiten zu können, bedient man sich der besten derzeit erhältlichen und spezialisierten Plug-ins, z.B. aus DGMPGDec oder DGAVCDec (Dokumentation lesen!). DGMPGDec hat sich schon länger bewährt, es kann zuverlässig für die Dekodierung vom MPEG-Dateien eingesetzt werden.

DGAVCDec existiert zum Zeitpunkt der Erstellung dieses Beitrages erst in der Version "Alpha 18", ist also noch fehlerbehaftet. Man setzt es ein um H.264/AVC-Dateien zu öffnen.

Beispiel

AVC-Transcoder im Eigenbau

(auch im Stappelbetrieb nutzbar)

Wir benötigen dafür:

  1. Wir starten TSremux und laden den AVCHD-Clip z.B. name.m2ts..., in dem Fenster unten sehen wir sofort den Video- und Audiostream...



    Wir klicken jetzt mit der rechten Maustaste auf das Video und speichern es als elementary-stream mit dem Namen video.h264 ab. Genauso gehen wir mit dem Audio vor und speichern es als audio.ac3 ab.

  2. Wir entpacken das DGAVCDec-Archiv in das Avisynth-Plugin-Verzeichnis. Mit dem nun verfügbaren Tool DGAVCIndex laden wir die Datei video.h264. Etwaige Meldung vom libavcodec ignorieren und mit "nein" wegklicken laut Donald A. Graft. Mit Save Project speichern wir das Project-Script ab, es bekommt nun den Namen video.dga


  3. Jetzt benötigen wir noch ein Audio-Plugin. Wir laden uns NicAudio aus dem Internet herunter und entpacken das Archiv ebenfalls in das AviSynth-Plugin-Verzeichnis.

  4. Mit einem Texteditor schreiben wir uns jetzt folgendes AVS-Script:

    #Video-Decoder laden
    LoadPlugin("Laufwerk:\Pfad\DGAVCDecode.dll")
    #Audio-Decoder laden
    LoadPlugin("Laufwerk:\Pfad\NicAudio.dll")
    #Video laden
    video=AVCSource("Laufwerk:\Pfad\video.dga",deblock=false)
    #Audio laden
    audio=NicAC3Source("Laufwerk:\Pfad\audio.ac3")
    #Video und Audio zusammenfügen
    AudioDub(video, audio)

    Damit steht erst einmal unser Roh-Script. Ergänzungen sind beliebig möglich!

  5. Wir können das Script nun z.B. mit dem MediaPlayerClassic auf Funktion prüfen

  6. Funktioniert das Script, dann laden wir es in VirtualDub, wählen eine Video-Komprimierung und speichern das Video ab für weitere Verwendung in Intermediates

  7. Laufen Video/Audio asynchron, muss man sich mit dem DelayAudio-Problem beschäftigen. Hierzu verweise ich jedoch z.B. auf die Foren nach /14/,siehe auch hier

Genauso gehen wir auch mit aufgezeichneten Files um die wir von aufgezeichneten HDTV (DVB-S2) bekommen. Hier müssen wir aber noch die unteren 8 Zeilen abschneiden:

# bei 1080i-HDTV-Aufzeichnungen die unteren 8 Zeilen wegschneiden
crop(0,0,0,-8)

Wir fügen diese Anweisung am Ende des AVS-Scripts hinzu!

Hat man erst einmal ein Intermediate-File von einer HDTV-Sendung, dann kann man damit sofort mit der Filmbrennerei 6 Plus & HD-Pack eine AVCHD-DVD z.B. für einen Bluray-Player erstellen. 

Wie man eine Job-Liste für VirtualDub erstellt um mehrere Clips in einem Schwung zu transcodieren, habe ich schon weiter oben beschrieben.

Anmerkung: Ich empfehle dringend die Help-Anweisungen der einzelnen Tools, Plugin und Filter zu lesen um den Syntax und damit die Wirkung besser zu verstehen lernen. Ich leiste hierzu keinen Support!

Weitere Konvertierungsmöglichkeiten

Avisynth-Texteditor:

Es gibt einen revolutionären AviSynth-Texteditor mit Vorschau. Er unterstützt Syntax Highlighting für wichtige AviSynth-Befehle über zu erwartende Ergebnisse sowie mit Filter-Schiebereglern um die Wirkung zu kontrollieren. Dieses hervorragende Tool nennt sich AvsP und es gibt auch eine Deutschsprachige Bediendatei dazu.

Homepage über AvsP mit Downloadmöglichkeit

Demovideo dazu

Gefunden habe ich es über dieses Forum.

Avisynth-Scripte im Internet:

Die besten Scripte und Tipps zu AviSynth habe ich immer aus der Feder von Scharfis Brain gefunden. Einfach nach "AviSynth+Scharfis Brain" per Google suchen... 

Wenn ein NLE AviSynth-Scripte nicht annehmen will

Nur NLEs die Standard-Windows-Funktionen zum Öffnen von Dateien verwenden, können AVS-Scripte  öffnen. Anderen NLEs kann man eine "Pseudo-AVI" unterjubeln. Der Decoder ffdshow liefert das Programm makeAVIs mit, wenn man bei der Installation von ffdshow "Hilfe für Avisynth-Scripte" anwählt. Das Programm makeAVIs erzeugt dann aus dem AVS-Script eine AVI-Datei mit einem entsprechenden Header den das NLE dann annimmt. Meist reicht das um das Script in einem solchen NLE zu öffnen und AviSynth arbeiten zu lassen.

Dateien mit DOS-Befehl copy /b verschmelzen

Manchmal möchte man bestimmte Einzeldateien zusammenfügen, z.B. mehrere mit DGAVCIndex erzeugte *.dga - Dateien:

  1. Wir starten in W-XP die MS-DOS Eingabeaufforderung mit [Start/Ausführen] und geben dort cmd ein...

  2. Im schwarzen DOS-Fenster geben wir nun z.B. ein:

    copy /b video-1.dga + video-2.dga + video-3.dga name.dga

    name.dga ist dann die neue große Datei

    Natürlich können wir auch Laufwerk- und Pfadnamen einsetzen...

Wir können uns mit einem Texteditor bequem eine Batchdatei schreiben, z.B. mit der Bezeichnung DatenCopy.bat, dort steht dann was zusammengefügt werden soll. Nun müssen wir nur noch von der DOS-Ebene aus diese BAT-Datei ausführen...

Hier noch ein Freewareprogramm zum zusammenführen von Dateien: A.F.7 Merge

Weitere AviSynth-Scripte auf dieser Homepage

Down- und Upkonvertierung von Videos

Wie kann man noch AVCHD-Files transcodieren?

Mittlerweile ist ein AVC-HD Transcoder von MainConcept aufgetaucht der von Panasonic kostenlos bezogen werden kann. Transcodiert werden damit AVCHD-Clips in DVCPRO HD 1080i (50 oder 60i) - Clips. Die Clips kann man dann in Premiere Pro CS3 laden, wenn man ein DVCPROHD 1080i 50i - Projekt nach dem Start von Premiere Pro CS3 anlegt. Offensichtlich kann man diesen Transcoder aber nur für Panasonic-Kameras einsetzen.

Wie man ältere Filter in AviSynth V2.5 und höher laden kann

Zu den älteren Filtern - vor AviSynth V2.5 - gehören beispielsweise DustV5.dll (Entrauschungsfilter). Um diese älteren Filter in AviSynth 2.5 nutzen zu können, benötigt man das LoadPluginEx welches man hier downloaden kann, hier gibt es das vielgesuchte LoadPluginEx2. Für diese alten Filter und Programmbibiotheken habe ich im AviSynth-Hauptverzeichnis einen neuen Pfad mit dem Namen OldPlugins angelegt damit es zu keiner Vermischung mit den anderen Plugins kommt. Entsprechend muß man dann im Script die Pfade korrekt angeben.

Besonders nützlich kann es manchmal sein per AviSynth verrauschte Videoaufnahmen bei wenig Licht zu entrauschen. Durch die immer kleiner werdenden Chips bei Consumer-Kameras mit einer sehr hohen Pixelzahl, bekommen die Pixel sehr wenig Licht, was sich dann als Bildrauschen mit tanzenden Pixeln auf dem HDTV bemerkbar macht. Ich habe deshalb folgendes Entrauschungs-Script geschrieben um z.B. einen HDV-Clip zu entrauschen (den verwendeten Clip - Canon HV10 Video 01 - für das Experiment findet man in diesem Blog.):

#Video-Decoder laden
LoadPlugin("Laufwerk:\Pfad\DGDecode.dll")
#Plugin für ältere Filter laden
LoadPlugin("Laufwerk:\Pfad\LoadPluginEx2.dll")
#Entrauschungsfilter laden
LoadPlugin("Laufwerk:\Pfad\DustV5.dll")
#Video laden als *.d2v und in YUV-Farbraum wechseln
MPEG2Source("Laufwerk:\Pfad\mv10_01.d2v").ConvertToYUY2
#Entrauschungsfilder(Stärke) einstellen
PixieDust(5) 

Diesmal habe ich im Gegensatz zum AVC-Transcoder-Beispiel oben von Donald A. Graft das DGMPEGDec verwendet und aus der m2t-Datei per DGIndex ein Project-Script mv10_01.d2v erstellt. Wie man korrekt eine Videodatei indexiert, steht hier. In der dritten Zeile von unten sieht man, dass man Funktionsbefehle auch hintereinander schreiben kann.

Im 1:1 Bild-Ausschnitt aus einem Video der HV-10-Kamera von Canon kann man ein wenig erkennen - besonders wenn man die untere Bildhälfte genau betrachtet - wie eine Entrauschung wirken kann. Im laufenden Video ist die Entrauschung viel deutlicher zu erkennen, weil dieses Rausch-Flimmern nach der Filterung nicht mehr vorhanden ist. Natürlich kann man nach der Entrauschung noch weitere Filter zur Videoverbesserung einsetzen.

Tipp: video noise reduction plugin for Adobe Premiere Pro / Elements, After Effects, VirtualDub, Sony Vegas / Movie Studio, Pinnacle Studio

Was ist mit Audio?

Ich bin darauf hier und hier schon in je einem AVS-Script eingegangen. Laufen Video und Ton auseinander, kann man diese mit TimeStretch(tempo,framerate,pitch) auf die richtige Länge ziehen. Delay(sekunden) verschiebt die Tonspur relativ zum Video. Das AviSynth-Plugin NicAudio läd auch Mehrkanalsound in den Formaten DTS,AC3,MPEG Audio und LPCM zu, es geht aber auch mit DirctShowSource, wenn Filter im System vorhanden sind. Wie immer hilft hier Google weiter!

Plugin für Premiere Pro

Selbst dafür findet man im Internet eine Quelle...

Das PremiereAVSPlugin eröffnet per AviSynth-Script neue Welten in Premiere Pro.

Ich habe die Installation einfach nach:

C:\Programme\Adobe\Adobe Premiere Pro CS3\Plug-ins\Common

geschickt.

Ein AVS-Scripts kann man in PPCS3 per "Datei/Importieren"(Strg+I) laden...

19.01.2009: Neues Premiere-Plugin...

Zusammenfassung:

Videoschnittprogramme lösen nicht alle Probleme die man mit Videomaterial bekommen kann, insbesondere wenn es sich um Videomaterial handelt welches z.B. mittels Videotransfer von Videobändern oder Schmalfimen entsteht. Um gute Restaurierungsergebnisse zu bekommen, benötigt man Tools, sprich - Scripte für AviSynth und VirtualDub mit deren Hilfe man die Probleme lösen kann.

Viele Anstöße zum Einsatz von VirtualDub/Avisynth habe ich bekommen mittels unten in zwei Bildern vorgestellten Literatur. Anstöße zu der Verwendung von diversen Scripten gaben mir ferner scharfis_brain, Dr. Wolfgang Zota i n c't  2007- Heft 6, und nicht zuletzt videoFred aus dem Doom9-Forum.

Ich hoffe mit diesem Beitrag vor allem Anfängern einen kleinen Dienst erwiesen zu haben, ich bin ja auf dem Gebiet Avisynth selbst noch ein Anfänger, auch wenn ich mal früher mich mit der Programmierung in GW-Basic, Quick-Basic, Turbo-Basic und Visual-Basic beschäftigte.... Support zu AviSynth leiste ich natürlich nicht, dafür gibt es Google!

Viel Erfolg!

Literaturtipps:

VDVD
Buch deutschsprachig ca. 14,80 EURPDF-Datei im Netz,, kostenlos

Link-Tipps:

1. ffdshow falls das System bestimmte Video- und Audio Formate nicht unterstützt

2. The DirectShow Filter Graph Manager

3. VideoInspector 

4. Merit-Klassen

5. Zoom Player 5

6. Avisynth in Deutsch

7. Avisynth Filter Collection

8. DirectShow

9. Avidemux in Wikipedia

10. c't special 04/2007 - Digital-Video vom 03.September 2007, Seite 116-127

11. Fiziks Filterliste

12. Wie man einen Filtergraphen erstellt

13. CoreAVC als DirectShow-Filter

14. german Doom9/Gleitz DVD-Forum     english Doom9

15. Nachbearbeitung mit AviSynth

16. Beiträge von Dr. Volker Zota im c't magazin (sh. z.B. c't special 04/07)

17. Wikipedia und AVCHD

18. Über VirtualDubMod

19. How to edit AVCHD M2TS files from Sony HDR-SR1 camcorders

20. Erklärt: So funktionieren DirectShow-Filter

21. Diverse Anleitungen

22. AviSource & FOURCC

23. FOURCC

24. Wie man einen Filtergraphen baut

25. HDVInfo für Avisynth

26. Gradationsfilter für VirtualDub

27. Visual Color Correction für AviSynth

28. Super weiche Zeitlupe

29. Entfernen von Regenbogeneffekten

30. Video enchancement software

31. Filtern von interlaced Video in AviSynth

32. VHS filtern mit AviSynth

Viel Erfolg mit AviSynth in der Anwendung!

Bruno Peter Hennek, 27.08.2007, 06.03.2015



replique rolex 101orologi