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 2: AviSynth und FrameServing

( This site in flag-uk.gif english )

Q2.1: Was ist FrameServing und wozu ist es nützlich ?

A: Eine hervorragende Beschreibung findet sich auf [Lukes Homepage]:

"Frameserving ist ein Vorgang, bei dem direkt Videodaten von einem Programm auf dem PC in ein anderes Programm transferiert werden. Es werden keine temporären Daten zwischengespeichert. Das Programm, das die Quelldatei(en) öffnet und die Videodaten ausgibt, wird Frameserver genannt. Das Programm, das die Daten empfängt, kann ein beliebiges Videoprogramm sein.

Es gibt zwei Hauptgründe, warum du dein Video "frameserven" willst:

  1. Festplattenspeicher sparen: Abhängig von dem Frameserving Programm kann man normalerweise das Video beim Frameserven schneiden/bearbeiten. Weil Frameserving keine temporären Daten erstellt, kann man einen Frameserver nutzen, um Videos zu ändern ohne zusätzlichen Speicherplatz. Zum Beispiel, wenn du zwei Videos verbinden, dann die Bildgröße verändern willst und damit eine Videoprogramm versorgen willst, erlaubt dir dies ein Frameserver, ohne dass man temporäre Daten erstellen muss. # Verbesserte Kompabilität: Für das Videoprogramm, das vom Frameserver die Videodaten erhält, sieht die Quelle aus wie eine relativ kleine unkomprimierte Videodatei. Die Quelldatei, die der Frameserver übermittelt, kann aber ein z.B. stark komprimierte MPEG-1 Video sein. Falls das Videoprogramm aber keine MPEG-1 Dateien unterstützt, ist dies kein Problem, weil das Programm ja nur ein unkomprimiertes Standard Video vom Frameserver bekommt. Dieser Vorteil eines Frameservers erlaubt es, Videoformate in einem Programm zu öffnen, das diese Formate gar nicht unterstützt. Desweiteren, weil das Videoprogramm immer nur einen Frame vom Frameserver bekommt, weiß es nichts über die Dateigröße des Quellvideos. Daher kommt eine 2 GB oder 4 GB Beschränkung eines Videoprogramms nicht zum Zuge. So kann man ein 100 GB Video über einen Frameserver an ein Videoprogramm weiterreichen, das eine 2 GB Beschränkung hat, ohne irgendein Problem."
Q2.2: Wie nutze ich AviSynth als FrameServer ?

A: Schreibe ein Skript in einem Texteditor. Lade deinen Clip (siehe Q2.8 in AviSynth, ergänze die gewünschten Filter und lade die AVS Datei in den Enkoder/Programm XY (muss ein Enkoder oder Programm sein, das AVS Dateien lesen kann, siehe Q2.3 und Q2.4.

Q2.3: Wie frameserve ich meine AVS Datei im Encoder / Programm XY ?

A:

  1. Frameserven von TMPGEnc, CCE SP, VirtualDub oder WMP6.4: Lade einfach deine AVS Datei in TMPGEnc, CCE SP, VirtualDub oder WMP6.4 (oder welchen Encoder/Programm du nutzt). Beachte dabei aber auch Q2.4. # Frameserven von VFAPI: Hierfür braucht man erst mal das [ReadAVS] Plugin. Kopiere einfach die "ReadAVS.dll" in das VFAPI Reader Verzeichnis, öffne die .reg Datei "ReadAVS.reg" in einem Texteditor und ändere den Pfad entsprechend ab. Speichern und ein Doppelklick auf die Datei, um den Inhalt in die Registrierung einzutragen. # Frameserven von Premiere oder Ulead: Für das Frameserven von Premiere existiert das Import-Plugin "IM-Avisynth.prm". Die Originalversion findet man bei [Bens Seite] zum Herunterladen. Eine verbesserte Version (leider funktioniert sie im Moment nicht mit Premiere 4.2) kann man von [Tom Fords Seite] herunterladen. Zum Installieren des Import-Plugins verschiebe die "IM-Avisynth.prm" Datei in das Premiere "Plug-ins" Verzeichnis. Du kannst auch ein Programm namens [makeAVIS (enthalten im ffvfw Codec Paket] (dies ist ein AVI Wrapper) nutzen, [Diskussion]. Beachte, dass dieses Programm auch in der Installation von AviSynth v2.52 enthalten ist. Für Ulead muss man dieses Programm nutzen. # Frameserven vom Windows Media 9 Encoder: Lade dir Nic's Windows Media 9 Encoder herunter und versichere dich, dass du auch den Windows Media 9 Codec installiert hast. Beides findest du [hier]. Q2.4: Probleme, wenn Encoder XY meine AVS Datei liest ?

A:

  1. Warum kann ich meine AVS Datei nicht im TMPGEnc öffnen (passiert in älteren Versionen des TMPGEnc) ?
    • Installiere das VFAPI Plugin für den TMPGEnc.
    • Deaktiviere die Directshow Filter in TMPGEnc und deaktiviere den VirtualDub Proxy vor dem Frameserven.
    • Füge "ConvertToRGB24" ans Ende deiner AVS Datei hinzu.
    • Installiere HuffYUV oder den DivX5 Codec, die das Dekodieren übernehmen, wenn ein AVI in TMPGEnc geladen wird.
    • Installiere das [ReadAVS] Plugin. # CCE SP stürzt ab, wenn ich eine AVS Datei lade. Was kann ich tun ?
    • Wenn du Windows2000 einsetzt, dann lasse den CCE im WinNT4-SP5 Kompabilitäts-Modus arbeiten.
    • Wenn du als Frameserver AviSynth v1.0x/v2.0x einsetzt, dann füge "ResampleAudio(44100)" deinem Skript hinzu, auch wenn du gar keinen Ton über AviSynth hast.
    • Wenn du als Frameserver AviSynth v2.5x einsetzt, funktioniert der ResampleAudio Trick nicht, weil er nicht mehr einen lautlosen Ton dem Clip hinzufügt. Stattdessen erstelle ein Skript (namens "addaudio.avsi") wie hier beschrieben und speichere es in deinem Plugin Verzeichnis ab. # Enkoder / Player (wie CCE SP v2.62/v2.64) laden die AVS Datei nicht ? Viele "neue" Programme nutzen NICHT die Windows Funktionen, um AVI Dateien zu öffnen. Wenn sie NICHT die Standard Windows Funktionen nutzen, dann funktionieren die AviSynth Skript Dateien nicht. Bekannte Programme, die NICHT diese Routinen nutzen, sind z.B. der CCE SP v2.62 oder der Windows Media Encoder vx.x. Des weiteren berichten Leute, dass sie Probleme mit dem Windows Media Player 7 haben. #* Verwende den CCE SP v2.50 und den WMP v6.4 (unter "Programme" und "Windows Media Player" befindet sich die Datei "mplayer2.exe", dies ist der WMP 6.4). Falls du den Windows Media Encoder verwenden willst, kannst du den AVI Wrapper "makeAVIS" verwenden, siehe Q2.3. Bezüglich des Windows Media Encoder 9 siehe auch die Q2.3.
    • Falls du den CCE SP v2.62 nutzen willst, kannst du das Folgende versuchen: Frameserve den CCE SP v2.62 über !makeAVIS. Schreibe ein AVS Skript und erstellen dann daraus mit makeAVIS eine Pseudo AVI.
    • Cinemacraft sagt, dass der CCE SP v2.66 wieder AviSynth Skripte akzeptiert. Wenn du also diese Version hast, solltest du auf der sicheren Seite sein. # Fehlerhafter YUY2 Codec verursacht Farbraumfehler bei AviSynth Skripten im TMPGEnc. Vor einiger Zeit fand ich heraus, dass durch ein AviSynth Skript Fehler wie bei einer fehlerhaften Farbraumkonvertierung (z.B. wenn man ein Video von 24 Bit auf 8 Bit herunterbricht !) entstanden. #* Falls du auch solche Probleme hast, füge "ConvertToRGB24" ans Ende des Skriptes hinzu oder lies dir [diesen Thread] durch (wird empfohlen). Q2.5: Wie frameserve ich von Premiere / Ulead / Vegas zu AviSynth ?

A: Du kannst es mit dem zu AviSynth kompatiblen Frameserver (import) [PluginPace Frameserver (von Satish Kumar)] zum Frameserven von SonicFoundry Vegas (und älteren Vegas Video/VideoFactory Versionen), Adobe Premiere oder Ulead MediaStudio Pro zu AviSynth. [Diskussion]

Q2.6: Beim Frameserven bekomme ich folgende Fehlermeldung: "Script error, there is no function named "filter XY" " ?

A: Du hast wahrscheinlich eine Version von AviSynth installiert/registriert, welche diesen Filter nicht enthält. Versichere dich, dass keine weiteren Versionen auf der Festplatte herumschwirren (es gibt die Möglichkeit, dass eine Version registriert wurde, sich aber nicht im "System" Verzeichnis befindet). überprüfe, dass die richtige Version registriert wurde, siehe dazu Q1.19.

Q2.7: Ich bekomme einen unbekannten Ausnahmefehler, wenn ich versuche, eine AVS Datei in VirtualDub zu laden, bei Gebrauch von DVD2AVI v1.77.3 ?

A: .d2v Dateien, die von DVD2AVI v1.77.3 erstellt wurden, sind NICHT kompatibel mit der "mpeg2dec.dll"! Verwende stattdessen DVD2AVI v1.76. Falls du dennoch v1.77.3 verwenden willst, musst du AviSynth v2.5 installiert haben und die "mpeg2dec3.dll" v1.07 (oder eine aktuellere Version) verwenden.

Q2.8: Wie lade ich meinen Video-Clip in AviSynth ?

A: Erstelle ein Skript, was die folgenden Zeilen erhält (Dateinamen und Pfade müssen angepasst werden):

  • AVI Dateien (mit unkompremiertem WAV oder CBR/VBR MP3-Ton (v2.04)):
AviSource("C:\Dateiname.avi")
Deaktivieren des Tones:
AviSource("C:\Dateiname.avi", false)
  • AVI Dateien, die AviSource nicht unterstützt (z.B. "DV Typ I AVI Dateien"):
DirectShowSource("C:\Dateiname.avi") #keine Unterstützung für Ton bis jetzt
  • MPEG1 Dateien (Endung .mpg):
Siehe dazu die MPEG Dekoder Plugins für AviSynth v1.0x/v2.0x und die MPEG Dekoder Plugins für AviSynth v2.5x:
Verwendung von AviSynth v2.0x/AviSynth v2.5x und MPEGdecoder.dll:
LoadPlugin("C:\MPEGdecoder.dll")
MpegSource("C:\Dateiname.mpg")
  • MPEG2 Dateien (Endung .m2p oder .m2v):
Siehe dazu die MPEG Dekoder Plugins für AviSynth v1.0x/v2.0x und die MPEG Dekoder Plugins für AviSynth v2.5x. Hier einige Beispiele:
AviSynth v2.0x und mpeg2dec.dll:
Erstelle eine DVD2AVI Projektdatei (Dateiname.d2v) und lade den Clip in AviSynth:
LoadPlugin("C:\mpeg2dec.dll")
Mpeg2Source("C:\Dateiname.d2v")
AviSynth v2.5x und MPEGdecoder.dll:
LoadPlugin("C:\MPEGdecoder.dll")
MpegSource("C:\Dateiname.m2p")
oder (nur der Video Stream):
LoadPlugin("C:\MPEGdecoder.dll")
MpegSource("C:\Dateiname.m2v", -2, "raw")
  • VOB Dateien:
Siehe dazu die MPEG Dekoder Plugins für AviSynth v1.0x/v2.0x und die MPEG Dekoder Plugins für AviSynth v2.5x. Hier einige Beispiele:
AviSynth v2.0x und mpeg2dec.dll:
Erstelle eine DVD2AVI Projektdatei (Dateiname.d2v) und lade den Clip in AviSynth:
LoadPlugin("C:\mpeg2dec.dll")
Mpeg2Source("C:\Dateiname.d2v")
AviSynth v2.5x und MPEGdecoder.dll:
LoadPlugin("C:\MPEGdecoder.dll")
MpegSource("C:\Dateiname1.vob+C:\Dateiname2.vob")
  1. ATSC Transport Streams (Endung *.trp oder *.ts):
Verwendung von AviSynth v2.0x:
Lade dir die !Mpeg2Dec2 und eine spezielle Version von [DVD2AVI] herunter. Vergiss nicht, die PID's von Video und Audio in der "DVD2AVI.ini" anzugeben:
LoadPlugin("C:\mpeg2dec2.dll")
Mpeg2Source("C:\Dateiname.d2v")
Verwendung von AviSynth v2.0x/v2.5x:
Lade dir die !Mpeg2Dec3 v1.07 (der neuere) oder den MPEGDecoder herunter:
LoadPlugin("C:\mpeg2dec3.dll")
Mpeg2Source("C:\Dateiname.d2v")
oder für den MPEGDecoder:
LoadPlugin("C:\mpegdecoder.dll")
MpegSource("C:\Dateiname.d2v")
Falls beide Methoden nicht funktionieren, kanns du es mit [HDTV2MPEG2] versuchen (erstellt nicht DVD kompatible MPEG2 Dateien), um eine temporäre MPEG2 Datei zu erstellen, die man dann in AviSynth mit DVD2AVI laden kann.
  • PVA Transport Streams:
Hier wirst du kein Glück haben. Du musst eine temporäre MPEG2 Datei erstellen müssen: demultiplexe deine PVA mit [ds.jar] oder mit [HDTV2MPEG2] (erstellt nicht DVD kompatible MPEG2 Dateien) und lade diese über DVD2AVI in AviSynth.
  • .d2v Dateien (DVD2AVI Projektdateien):
LoadPlugin("C:\mpeg2dec.dll")
Mpeg2Source("C:\Dateiname.d2v")
  • ASF Dateien:
Man muss die Framerate angeben, dafür einfach ein Rechtsklick auf die Datei im Windows Explorer:
DirectShowSource("C:\Dateiname.asf", fps=15)
  • .tpr Dateien (TMPGEnc Projektdateien):
Beachte, wenn du eine IVTC mit TMPGEnc machen willst, dass das Plugin GreedyHMA dafür besser geeignet (und auch VIEL einfacher) ist. Lade dir einfach das GreedyHMA? Plugin (arbeitet im YUV Farbaum). Wenn du immer noch eine .tpr Datei in AviSynth importieren willst, gibt es zwei Möglichkeiten:
  • Ein TMPGEnc Plugin ist im VFAPI Paket (endet mit -vfp.zip) enthalten, welches man in [Doom9s Download Bereich] findet. (Diese Methode funktioniert nicht bei jedem Encoder. Z.B. der CCE SP kann die Daten nicht lesen.)
LoadVFAPIplugin("C:\TMPGenc.vfp","TMPGsource")
TMPGsource("C:\Dateiname.tpr")
FlipVertical
  • Importiere die .tpr Datei in VFAPI, erstelle ein Pseudo AVI und lade dieses in AviSynth (beachte, dass VFAPI im RGB Farbraum arbeitet). Siehe auch [1].
  • .aup Dateien (AviUtl)? Projektdateien):
Ich weiß nicht, ob es möglich ist, diese Dateien direkt in AviSynth zu laden. Importieren die .aup Datei in VFAPI, erstelle ein Pseudo AVI und lade diese in AviSynth (beachte, dass VFAPI im RGB-Farbraum arbeitet). Siehe auch [2].
  • QuickTime Dateien (siehe [3]):
DirectShowSource("C:\Dateiname.mov")
oder, falls diese Methode nicht funktioniert, lade dir das "QTReader" Plugin aus [Doom9s Download Bereich] herunter:
LoadVFAPIPlugin("C:\QTReader.vfp", "QTReader")
QTReader("C:\Dateiname.mov")
  • AVS Dateien:
Importiere diese einfach am Anfang des Skriptes:
!Import("C:\Dateiname.avs")
Seit AviSynth v2.05 kann man auch das automatische Laden von Plugins dafür nutzen. Kopiere einfach die AVS Datei in das "Plugin" Verzeichnis und ersetze die Endung durch "avsi".
Q2.9: Wie lade ich meinen Audio-Clip in AviSynth ?

A: Hier gibt es mehrere Möglichkeiten:

  1. Verwende AviSource (bei unkomprimierten WAV, CBR/VBR MP2 oder CBR/VBR MP3 (beides seit AviSynth v2.04)): AviSource("C:\Dateiname.avi") Seit AviSynth v2.05 kann man auch den Ton aus einer AVI Datei folgendermaßen extrahieren: WavSource("C:\Dateiname.avi") # Verwende das Audio-Dekoder Plugin MPASource, siehe Q3.4 und Q3.5 zum Importieren von MP1/MP2/MP3 Ton. # Verwende das Audio-Dekoder Plugin AC3Source, siehe Q3.5 zum Importieren von AC3 Ton (der Ton wird zu einem 2kanaligen WAV dekodiert). # Füge einen WAV-Header an deine [MP2] oder MP3 (mit BeSweet) Datei und nutze dann WavSource zum Importieren des Tones. Du brauchst dazu auch ACM Codecs für [MP2] und für MP3 (Radium Codec, siehe [Doom9s Download Bereich]). Nutze WavSource zum laden der WAV Datei: WavSource("C:\Dateiname.wav")

Bis AviSynth v2.07 musste der Ton Mono oder Stereo sein. Seit AviSynth v2.5 kann der Ton auch unkomprimierter Mehrkanal-Ton sein.

Q2.10: Kann ich ein anderes Tonformat außer WAV Datei importieren ?

A: Ja:

  • Unkomprimierte Tondateien (das sind unkomprimierte WAV Dateien) kann man bis AviSynth v2.03 laden.
  • Seit AviSynth v2.04 kann man auch komprimierte WAV Dateien laden (momentan nur MP2/MP3-files mit WAV-Header).
  • Seit AviSynth v2.5 kann man auch unkomprimierten Mehrkanal-Ton laden.
  • Mit MPASource und den AC3filter Plugins kann man MP1/MP2/MP3 und AC3 Ton importieren.

Siehe dazu auch Q2.9.

Q2.11: Wie verbinde ich das Video mit Audio ?

A: Erstelle eine AVS Datei, die die folgenden Zeilen enthält (Dateinamen und Pfade müssen angepasst werden):

video = AviSource("C:\Dateiname1.avi")

audio = WavSource("C:\Dateiname2.wav")

AudioDub(video, audio)

Q2.12: Ich bekomme einen unbekannten Ausnahmefehler in der Zeile, in der "DirectShowSource" steht ?

A: Hast du VobSub installiert ? Lies dir diesen [Thread] durch. Aktualisiere VobSub auf v2.20 oder neuer. Falls jemand eine Erklärung hat, möge er sie doch in dem Thread posten.

Zurück zur AviSynthFAQ

SourceForge Logo

 


Edit this document | View document history
Document last modified Tue, 14 Oct 2003 13:41:42