Avisynth - Erben und Kompatibilität

  • hallo,

    da ich noch Avisynth 2.6 im Archiv habe, so wollt ich mich mal erkundigen,

    welche Projekte das Erbe von Avisynth weitertragen.


    mir ist wichtig welcher dieser ganzen Forks hat sich endlich durchgesetzt,

    bzw. wird von der "Masse" primär verwendet


    sind den die alten Skripte überhaupt noch kompatibel?

    VapourSynth z.B. nutzt Python, da müsste ich mich erst einarbeiten,

    was ich ehr vermeiden möchte.


    achaj die Plattform ist Windows 10 x64,

    das wird vielleicht auch Probleme bereiten...

  • LigH

    Hat den Titel des Themas von „Avisynth - Erben und kompatibelität“ zu „Avisynth - Erben und Kompatibilität“ geändert.
  • Weitgehend direkter Nachfahre und weit verbreitete Unterstützung: AviSynth+ MT von pinterf (so setzen z.B. MeGUI und StaxRip x64 schon länger darauf). Die Unterschiede, v.a. im Multithreading, sind in der AviSynth-Wiki gut dokumentiert.


    Die Diskussion im doom9-Forum ist lebendig und bringt immer wieder Verbesserungen, auch in der Kooperation mit Plugins einerseits und Applikationen andererseits.


    Es gibt noch einen Fork von nekopanda, in dem es neben der Auslagerung auf CUDA auch noch interessante Lösungen für Multi-Threading-Probleme gibt; leider ist die Dokumentation da nur auf japanisch, aber es wird an einer Kooperation gearbeitet, zumindest für die allgemeinen Lösungen.

  • Ha, Glück gehabt.

    der war auch meine Wahl...


    der Name ist etwas wirr

    heißt es nun "AviSynthPlus-MT-r2728.exe" oder "AvisynthPlus-r2728-MT-filesonly.7z"

    der Fork bezeichnet sich selbst als "pinterf / AviSynthPlus"


    mir fällt hat so was auf, da es schon eine "AviSynth MT", oder so, gab.


    und was macht die VapourSynth-Front?


    Durchsetzung und Akzeptanz sehe ich nicht so.

    gut hab z.Z. nur eine DVD am Wickel für Muddan...

    alles alte Software... ^^

  • Es gab auch schon eine MT-Version von AviSynth 2.x, z.B. von SEt. Aber die beschränken sich weitgehend auf 32-bit-Code, weil in dem ursprünglichen AviSynth 2.x leider Programmiertechniken genutzt wurden, die sich nicht leicht auf 64-bit-Code übertragen lassen. Das war auch der Hauptgrund dafür, dass man AviSynth+ von Grund auf neu programmiert hat mit Techniken, die sowohl mit 32-bit-Code als auch mit 64-bit-Code kompatibel sind.


    VapourSynth ist grundsätzlich anders aufgebaut, ist ein Python-Framework. Völlig kompatibel mit AviSynth ist es nicht. Da Python weitgehend als Skriptsprache interpretiert wird, muss da auch kein Geschwindigkeitsvorteil gegenüber AviSynth-Plugins sein, in denen z.B. C/C++ für die Plugin-DLL verwendet wurde. Dafür funktioniert die DLL wohl nur unter Windows, während VapourSynth als Python-Modul relativ unabhängig vom Betriebssystem verwendet werden kann.

  • Der ganze MT Kram ist in avs+ integriert, wird zumindest in den filtern von pinterf (avs+ Entwickler) automatisch gesetzt. Meiner Erfahrung nach sind 99% der filter kompatibel.


    LigH Vapoursynth hat doch genau so filter dlls wie avisynth. Oder wie meinst du das genau? Ist doch nicht alles python.


    Zumindest wurden viele Filter und scripts von avs nach VS bereits portiert.

    Vorteile von VS sind vor allem:

    - Von Grund auf mit multithreading Unterstützung geplant. (kein MT setzen usw. notwendig)

    - Die meisten plugins unterstützen 8-16 bit teils auch 32bit.

    - linux, mac, windows

    - Python ist 100mal angenehmer zum Skripte schreiben als avs + die ganze Python Welt steht ebenfalls zur Verfügung.

    - Hat auch einige hochwertigere Filter wie den bm3d denoiser, die avisynth nicht hat.

  • Wenn ein Programm sich über einen Frameserver speisen lässt, dann ist es relativ egal, welcher das ist. Einerseits existiert die Einbindung in die "Video for Windows"-API, die seit Windows 3.x existert. Andererseits nutzen einige Konverter sogar die spezielle Schnittstelle in AviSynth 2.5/2.6+, die sowohl im herkömmlichen AviSynth in der Tradition von BenRG (MT-Variante von SEt) existiert, als auch in AviSynth+ weiterhin unterstützt wird, mit ein paar Erweiterungen und analog auch mit 64-bit-Code.


    Kurz: Mach dir keine Sorgen. Die Programme, die sich von AviSynth ihr Material liefern lassen können, unterstützen AviSynth entweder direkt oder allgemein (über VfW). Beiden ist egal, ob es die Plus-Variante ist, solange sie verstehen, welches Format ihnen geliefert wird.


    AviSynth+ ist evolutionär die nächste Generation, mit hervorragender Kompatibilität und nützlichen Erweiterungen. Ich kann mir kaum einen Grund vorstellen, nicht darauf umzusteigen.

  • Auch VapourSynth ist ein Frameserver, wie AviSynth. Auch da kommt unkomprimiertes Video heraus, das man an einen Encoder weitergeben kann, der kompatibel programmiert wurde, um sich von Frameservern (z.B. via VfW) Videos liefern zu lassen. Die aufrufenden Programme verarbeiten dann in jedem Fall den ausgegebenen Videostream, nicht das Skript an sich.


    Allerdings ist VapourSynth nicht voll kompatibel mit AviSynth, wenn also ein Programm spezielle Schnittstellen-Funktionen von AviSynth unterstützt, wird VapourSynth diese wahrscheinlich nicht auf die gleiche Art bedienen. Da warte aber mal Selur ab, Hybrid kann ja beide verwenden. Oder FatFaster kann noch seine Erfahrung beitragen.


    Da gleich noch die Frage weitergeleitet: Kann VapourSynth (bzw. die Python-Basis) Plugin-DLLs auch unter Nicht-Windows-Betriebssystemen benutzen?

  • Hmm kann ich nicht sagen ob diese *.vpy Dateien öffnen werden, wohl eher nicht. Aber man kann mit AVFS.exe eine Fake Avi erstellen, welche dann in jedem Programm, die über VFW Avis lesen, geöffnet werden können. Das sollte übrigens auch mit avs skripten gehen.

    Edit: Wobei Vdub kann vpy ja auch öffnen weil es über das VFW interface geschieht. Es wird wohl auf das Programm ankommen und wie es Avisynth dort genau nutzt.


    Vapoursynth unter Windows kann nur Windows DLLs lesen, jedoch nicht die von Linux oder Mac. Also jeder Filter muss schon für das jeweilige OS neu kompiliert werden. Skripte sind natürlich universell.

  • Das klassische AviSynth hat sich ja in die AviFile-Funktion eingehakt, wodurch *.avs-Dateien automatisch in den Programmen lesbar waren, die AVI-Dateien nicht selbst interpretieren, sondern das komplett von Windows tun lassen. Ich glaube, VapourSynth klinkt sich da nicht ein, dazu müsste ja eine "Hook"-DLL in Windows verankert werden.


    Die Methode mit dem Pseudo-VfW-Codec funktionierte für AviSynth auch mit ffdshow/ffvfw und dem Tool "makeAVIS" (war entweder bei ffdshow oder Xvid dabei). Das AVFS ist da aber mittlerweile technisch fortgeschrittener.


    Dritte Möglichkeit ist dann immer noch, dass der Videostream von einem Programm, das den jeweiligen Frameserver gut unterstützt (avs2pipemod, avs4x26x bzw. vspipe) über eine Pipe an den CLI-Encoder geschickt wird.


    Und letztendlich unterstützen aktuelle VirtualDub-Versionen beide Frameserver explizit und haben eigene Techniken zur Weiterleitung an Encoder ("External Encoder" bei VDub 1.10+, dazu die Output-Plugins bei VDub2).

  • Das klassische AviSynth hat sich ja in die AviFile-Funktion eingehakt, wodurch *.avs-Dateien automatisch in den Programmen lesbar waren, die AVI-Dateien nicht selbst interpretieren, sondern das komplett von Windows tun lassen. Ich glaube, VapourSynth klinkt sich da nicht ein, dazu müsste ja eine "Hook"-DLL in Windows verankert werden.

    Wäre doch dies hier? https://github.com/vapoursynth…ller/vsinstaller.iss#L176

  • HQ-LQ Falls du VapourSynth mal ausprobieren willst ohne alles zusammensuchen zu müssen. Hier VapourSynth Portable FATPACK - 64Bit, Editor, Plugins, Scripts, Apps & Abenteuer! ist ein portable pack. Das einzige was dort nicht funktioniert ist die VFW Schnittstelle, kannst hiermit die Skripte also nicht direkt in vdub öffnen (Da kommt später von mir noch eine Reg Datei womit das dann doch geht).


    Alle Plugins Skripte + VSEditor und paar Beispielen sind da vorhanden.