BR@NET

Reise Kochen Foto/Video Computer

Foto und Video

itag
Foto
Bildverarbeitung
Video
Videoschnitt
DVD/(S)VCD
DVB
DVD und (S)VCD Frameserver Home | | 16.12.2003

Frameserver

Avisynth VirtualDub

Bei der Verarbeitung von Videos entstehen sehr große Dateien. Im günstigsten Fall belegen sie nur jede Menge Plattenplatz, was bei den heutigen Plattengrößen und -preisen keine so große Rolle mehr spielt. Bei langen Videos kann es jedoch auch vorkommen, daß diese aufgrund diverser Beschränkungen (z.B. maximale AVI-File Größe) gar nicht mehr in einer Datei gespeichert werden können.

Die Lösung für dieses Problem ist die Verwendung von Frameservern. Diese Technik erlaubt es, Videodaten von einem Programm (dem Frameserver) an ein anderes Programm (den Client) direkt zu übergeben, ohne irgendwelche Zwischendateien anzulegen. Ein weiterer Vorteil von Frameservern ist, daß sie auch verkettet werden können. So ist es z.B. möglich, Videodaten per Avisynth-Frameserver von Adobe Premiere an VirtualDub zu übergeben, wo sie weiterverarbeitet und dann per VirtualDub-Frameserver z.B. an einen MPEG-Encoder (TMPGEnc) weitergegeben werden.

Die bekanntesten Frameserver sind Avisynth und VirtualDub. In den folgenden Abschnitten wird die Installation und Verwendung dieser Frameserver erläutert.

top

Avisynth

Das Programm Avisynth wurde bis zur Version 0.3b von Ben Rudiak-Gould entwickelt. Seit dieser sich auf dem Selbstfindungstrip befindet, hat man allerdings nichts mehr von ihm gehört. Mittlerweile haben sich einige andere Leute (z.B. Donald Graft) mit der Weiterentwicklung beschäftigt. Diese Entwicklung erfolgt jedoch leider unkoordiniert, was verschiedene neue Versionen von Avisynth oder Ableger zur Folge hat. Aus diesem Grund empfehle ich, zunächst die ursprüngliche Version zu verwenden. Unter Sourceforge gibt es eine Opensource Weiterentwicklung von Avisynth, die mittlerweile bei Version 2.5 angelangt ist. Leider unterstützt diese Version nicht das Frameserving aus Premiere oder anderen Programmen mittels IPC.

Für den Einsatz mit Premiere werden folgende Programmteile benötigt:

Installation des Grundprogramms

Entpacken Sie die Datei avisynth-0.3.zip in ein temporäres Verzeichnis. Kopieren Sie die Datei avisynth.dll in ihr Windows-Systemverzeichnis (z.B. C:\WINDOWS\SYSTEM). Führen Sie danach die Datei install.reg per Doppelklick aus oder markieren Sie die Datei im Explorer und wählen Sie mit der rechten Maustaste den Befehl "Zusammenführen" aus. Dadurch werden die notwendigen Registry-Einträge vorgenommen.

Installation der Adobe Premiere Plugins

Entpacken Sie die Datei avisynth-premiere-0.25.zip in ein temporäres Verzeichnis. Kopieren Sie die beiden Dateien CM-Avisynth.prm und IM-Avisynth.prm in das Premiere Plugin Verzeichnis.

Verwendung von Avisynth standalone

Avisynth basiert auf Script-Dateien, in denen zunächst eine Video-Quelldatei festgelegt wird. Diese Videodaten können dann mit diversen Befehlen und Filtern bearbeitet werden. Die Script-Dateien haben die Endung .AVS und können von anderen Programmen wie AVI-Files geöffnet werden. Die in einem Script angegebene Quelldatei wird erst dann gelesen und verarbeitet, wenn ein Client-Programm auf die Script-Datei zugreift. Hier ein Beispiel für eine einfache Script-Datei, die ein AVI-File öffnet und die Größe auf SVCD-Format ändert:

AVISource ("C:\DATA\TEST.AVI")
BicubicResize (480,576)

Wenn Sie diese Datei z.B. mit VirtualDub öffnen, erhalten Sie die Daten aus TEST.AVI in der Auflösung 480x576.

Verwendung von Avisynth mit Premiere

Wir können nun Avisynth auch zur Übertragung von Videodaten von Adobe Premiere zu einem anderen Programm (z.B. VirtualDub) ohne den Umweg über eine Exportdatei verwenden. Dazu wird ein Avisynth-Script mit dem Namen PREMIERE.AVS mit folgendem Inhalt angelegt:

IPCSource ("avisynth.tmp")

Diese Datei muß nur einmal angelegt werden und kann immer wieder für den Export von Videos aus Premiere heraus verwendet werden. Daher sollte man sie an zentraler Stelle (z.B. im Premiere Verzeichnis) speichern.

In Premiere wechseln wir zur Timeline und wählen im Menü den Befehl "Datei/Exportieren/Film" aus. Es erscheint ein Dialogfenster, in dem Sie den Namen der Exportdatei angeben können. Vorher müssen Sie aber noch über den Button "Einstellungen" die Exportparameter festlegen.

Zunächst werden die allgemeinen Einstellungen angezeigt. Hier wird als Dateiformat "Link to Avisynth" ausgewählt. Der zu exportierende Bereich kann nach Belieben auf den Arbeitsbereich oder das gesamte Video beschränkt werden. Wichtig sind noch die beiden Häkchen zum Exportieren von Video und Audio.


Als nächstes wenden wir uns den Videoeinstellungen zu. Hier muß lediglich darauf geachtet werden, daß der Film in seiner ursprünglichen Auflösung exportiert wird. Eine Änderung der Auflösung sollte man externen Programmen überlassen. Die Framerate entspricht dem PAL Standard und wird ebenfalls nicht geändert. Alle anderen Optionen in diesem Fenster sind deaktiviert.


Natürlich dürfen auch die Audioeinstellungen nicht fehlen. Hier werden die voreingestellten Werte des Films, in unserem Beispiel 44 KHz 16 Bit Stereo, beibehalten.

Bei den Keyframe- und Renderoptionen muß darauf geachtet werden, daß die Halbbildeinstellung der des Films entspricht. Alle anderen Optionen in diesem Dialogfenster bleiben deaktiviert.


Wir bestätigen die Einstellungen mit OK und kehren zurück zum Exportdialog. Hier wird jetzt der Name der Exportdatei angegeben. Dieser muß der Angabe im Avisynth-Script entsprechen, also avisynth.tmp.

Im unteren Bereich des Fensters werden noch einmal die eingestellten Parameter angezeigt. Wir starten nun den Frameservermodus mit dem Button "Speichern".

Es wird ein Statusfenster angezeigt, das noch einmal eine kurze Beschreibung des Befehls enthält, der in einem Avisynth-Script stehen muß, über das die exportierten Videodaten eingelesen werden sollen. Genau diese Zeile haben wir in unserer zuvor schon angelegten Datei PREMIERE.AVS stehen. Wir können diese Datei jetzt mit einem Client-Programm (z.B. VirtualDub) öffnen und die Videodaten weiterverarbeiten. Sobald in dem Client-Programm Videodaten gelesen werden, wird der Exportprozeß in Premiere gestartet und liefert die Daten. Bei VirtualDub erfolgt der Lesezugriff bzw. das Verarbeiten erst beim Abspeichern der Daten oder beim Starten des eigenen Frameservers.

VirtualDub

VirtualDub von Avery Lee bietet vielfältige Funktionen zum Capturn und Verarbeiten von Video-Material. Unter anderem kann es wie Avisynth als Frameserver für andere Programme agieren und somit helfen, überflüssige temporäre Dateien bei der Videoverarbeitung zu vermeiden.

Die aktuelle Version kann von der Webseite www.virtualdub.org heruntergeladen werden. Dort findet man auch einiges an Dokumentation und weiterführenden Links.

Installation

Die Installation ist sehr einfach. Entpacken Sie die heruntergeladene Datei in ein beliebiges Verzeichnis und erstellen Sie im Startmenü oder auf dem Desktop eine Verknüpfung zu der Datei virtualdub.exe. Abschließend sollten Sie noch das Programm auxsetup.exe ausführen, das für einige Frameserver-Anwendungen benötigt wird.

Verwenden des Frameservers

Öffnen Sie zunächst das ein AVI-File, das Sie bearbeiten wollen. Dabei kann es sich natürlich auch um ein Avisynth-Script handeln. Wenn Sie z.B. die im vorherigen Abschnitt erzeugte PREMIERE.AVS Datei öffnen, erreichen Sie eine Verkettung der Frameserver. Die Daten werden dann aus Premiere exportiert, per Avisynth an VirtualDub übertragen und von dessen Frameserver z.B. an TMPGEnc zur Umwandlung in MPEG geliefert.

Nach dem Öffnen einer Quelldatei können Sie nun wie gewohnt die Verarbeitungsparameter in VirtualDub anpassen oder Filter hinzufügen.

Um nun den Frameserver zu starten, wählen Sie aus dem Menü den Befehl File/Start Frameserver aus. Es erscheint das folgende Fenster, in dem Sie dem Frameserver einen Namen geben müssen.

Die Angabe hier spielt keine Rolle sodaß der vorgegebene Wert übernommen werden kann. Das Eingabefeld darf nur nicht leer bleiben. Nach der Bestätigung mit dem Button "Start" erscheint ein weiteres Dialogfenster, in dem die Schnittstellendatei (analog zu einem Avisynth-Script) angegeben werden muß.

Die Datei, die Sie hier angeben, kann von einem Client-Programm geöffnet werden, um auf die von VirtualDub gelieferten Videodaten zuzugreifen. Nach dem Bestätigen der Eingabe mit dem Button "Speichern" wird der Frameserver gestartet:

Wie schon beim Avisynth-Frameserver liefert VirtualDub die Daten, sobald ein Client-Programm sie anfordert, d.h. lesend darauf zugreift. Sie können nun die Datei virtualdub.vdr aus unserem Beispiel mit TMPGEnc öffnen und z.B. in MPEG-2 umwandeln.

Nachdem das Client-Programm seine Verarbeitung abgeschlossen hat, können der/die Frameserver mit dem Button "Stop serving" beendet werden.

top