Staxrip - wie Filter "yadif" einbinden

  • Ich habe mich jetzt schon ganz gut mit STAXRIP eingearbeitet und finde es tatsächlich als gute Alternative - beispielsweise zu GordianKnot.

    Dennoch bräuchte ich, nachdem ich lange selbst schon rumprobiert habe, mal eure Hilfe.

    Ich hatte die Absicht, den DeInterlacer "Yadif" einzubinden, habe mir dazu die yadif.dll in aktueller Version heruntergeladen und diese in den Ordner ...Settings/Applications/AvisynthPlugins kopiert.

    Im staxrip selbst habe ich dann anstelle des voreingestellten DeInterlacer yadif() eingetragen, sodass dort im datei.avs - Script dort eben diese Zeile (yadif()) stand. Beim Start der Videokonvertierung kam dann nach gewisser Zeit die Fehlermeldung auf genau diese Zeile, dass diese Funktion ... nicht bekannt sei.

    Könnt Ihr mir mal kurz beschreiben, was ich da noch machen/konfigurieren muss, damit das Script mit dem yadif arbeiten kann (hatte schon mal verschiedenes wie LoadPlugin... probiert - führte aber nicht zum Erfolg).

  • ja hab ich, loadplugin() vor der Zeile yadif().

    Oder in welcher Reihenfolge (mpegsource, crop, loadplugin, yadiv() ...) müsste es stehen ?

  • Yadif ist kein "normales" AviSynth-Plugin, sondern ein "AviSynthC"- bzw. "StdCall"-Plugin. Vergleiche:

    a) LoadPlugin("Yadif.dll") ist falsch;
    b) LoadCPlugin("Yadif.dll") / Load_StdCall_Plugin("Yadif.dll") ist richtig

    Wichtigster Unterschied zwischen den Konventionen ist, in welcher Art mehrere Parameter (evtl. mit beliebiger Anzahl) verwaltet werden, und wie man Zeichenketten (mit unbekannter Länge, sowie entweder mit Längenangabe oder "bis zum Null-Zeichen") übergibt; AviSynth tut das original etwas anders als z.B. typische Windows-interne Funktionen, und Yadif verwendet eben diese Windows-ähnlichere Art, sich Parameter übergeben zu lassen...

    http://avisynth.org/mediawiki/Plugins

    Wichtig: AviSynthC-Plugins und das "LoadCPlugin-Plugin" von einem gewissen Kevin sollte man nicht in das Verzeichnis, in dem AviSynth automatisch nach Plugins sucht (normalerweise "%PROGRAMS%\AviSynth 2.5\plugins") kopieren, sonst riskiert man Abstürze. Diese Plugins sollten immer explizit geladen werden, nie automatisch.
    __

    P.S.:

    LoadPlugin("LoadCPlugin.dll")

    ist in der zur Zeit aktuellen AviSynth-Version 2.5.7 nicht mehr notwendig, der AviSynth-Kern enthält mittlerweile diese Funktion.

    Jetzt weiß ich allerdings nicht, ob StaxRip es erlaubt, AviSynthC-Plugins zu verwalten und beim Generieren des Skriptes einzufügen, oder ob man

    LoadCPlugin("Yadif.dll")

    selber in das Skript hineintippen muss.

  • Danke erst mal für die Erklärungen.

    LoadCPlugin("Yadif.dll") lässt sich tatsächlich nicht so unmittelbar generieren, man müsste tatsächlich im fertigen Script noch Hand anlegen.
    Bei einem einzelnen Film schon machbar.

    Voreingestellt als DeInterlacer ist ja FieldDeInterlace(), probiert habe ich es auch schon mal mit TDeInt() <letzterer aber ziemlich verlangsamend>. Bislang hatte ich ja immer mit GordianKnot und dort mit KernelDeInt() gearbeitet.

    Gibt es denn sonst noch einen guten, aber nicht allzu langsamen DeInterlacer, den man unmittelbar mit LoadPlugin aufrufen kann ??

  • Werde damit eben mal paar Qualitätstests anstellen. Allerdings hatte ich den Eindruck, dass allein durch TDeInt der Encodiervorgang mehr als 30% (oder gar noch mehr?) länger dauert.

  • Nun ja - dafür ist es auch einer der intelligenteren Deinterlacer. Viel bessere Qualität wirst du so simpel zur Zeit kaum erreichen. Da sind 30% doch ein Witz, das läuft doch mal so über Nacht.

  • LigH:

    Was den DeInterlacer betrifft, hast du schon völlig Recht. Es ist natürlich immer etwas eine Kostenfrage: Wenn du einen gestreamten Film (sagen wir mal von Premiere-Blockbuster auf Dreambox o.ä.) auf einen DVD-Rohling bringst, dieser vielleicht jetzt nur noch 40 Cent kostet, und du beim Umwandeln nach mp4 vielleicht auf 35% die Original-Dateigröße herunterrechnen kannst bei annähernder Qualität gegenüber dem Original, hast du von dem Rohling-Materialaufwand etwa 26 Cent gespart. Wenn du dafür aber zum Herunterrechnen dieser (vielleicht 3) Filme die ganze Nacht, sagen wir mal 10 h den Computer laufen lässt, sind das immerhin auch - bei 100 Watt - 1000Wh = 1kWh = mehr als 20 Cent Stromkosten. Dann könnte man wirklich nicht mehr feststellen, dass sich der ganze Aufwand noch lohnen würde. Aber irgendwie sind wir eben alle Freaks und machen das ganze Spiel doch weiter.
    ------------------------------------------------------------------------

    Rein aus Neugier und Wissensdrang wollte ich eben mal den yadif ausprobieren, und da ergibt sich noch immer folgendes Problem:

    Staxrip zeigt zunächst in den Einstellungen, dass unter
    "C:\Windows\system32\avisynth.dll" die Version 2.5.7 installiert sei.

    Und trotzdem wird beim Abarbeiten des Scripts:
    MPEG2Source("G:\Pfad1\Pfad1\datei...")
    LoadCPlugin("G:\Pfad\Avisynth2.5\plugins\yadif.dll")
    Crop(0,0,-0,-0)
    yadif()

    Fehlermeldung angezeigt in der Zeile LoadCPlugin.., dass dieses Plugin nicht geladen werden könne, obwohl diese yadif.dll sich an der genannten Stelle befindet (habe es übrigens aus der aktuellen Installation des MeGui "entnommen"). Deinem vorletzten Beitrage zufolge müsste aber an meiner Install bzw. meinem Script alles richtig sein.

  • 1) Leerzeichen zwischen "Avisynth" und "2.5"?

    2) Die yadif.dll soll nicht in das "plugins"-Verzeichnis unter der AviSynth-Installation! Kannst aber gern einen Ordner "c-plugins" anlegen dafür, dort versucht AviSynth nicht gleich, alle enthaltenen Plugins automatisch zu laden.

  • So, nun klappt doch alles.

    Zunächst mal hatte ich doch das Leerzeichen, wie von dir vermutet, vergessen oder nicht richtig gesehen.
    Alsdann habe ich gleich mal einen ganz neuen Ordner für diese C-Plugins angelegt.
    Abschließend klappte es auch komplett. Ob das yadif.dll nun gut ist oder nicht, muss ich sicher erst mal noch genauer betrachten, es ging ja vielmehr um den Grundsatz, wie man solche Plugins fehlerfrei einbindet. TDeInt erscheint als DeInterlacer sicher eine sehr gute Wahl.

    Insoweit nochmal Danke für deine Hinweise.

  • Nochmal eine andere Frage an die Experten:

    Ich habe eine Datei eingelesen, das Ergebnis des Auto-Croppings noch manuell modifiziert, sodass im Ergebnis ein Format von 700x428 blieb. Bei Brother John's Encodingwissen hatte ich gelesen, dass das durchaus möglich ist, mit nicht durch 16 teilbaren Größen zu arbeiten, sollte dann aber möglichst "nahe dran sein" (hier fehlen ja jeweils nur 4). Resizing habe ich deaktiviert.

    Im der log-Datei und im Script stehen auch dann Befehle, die dem entsprechen:
    MPeg2Source...
    crop(10,72,-10,-76)
    FieldDeInterlace()

    Und dennoch zeigt mir Nero beim Abspielen an, das fertige avi habe 704x432 Pixel. Wie ist denn sowas erklärbar ?
    (Hatte zwar bei BJ gelesen, dass in solchen Fällen der Nichtteilbarkeit durch 16 der Encoder eine entsprechende Zahl von Pixeln selbst anfügt, war aber davon ausgegangen, dass dies nur temporär ist und am fertigen Video wieder abgeschnitten wird).

  • So, kann mich erst jetzt wieder bemerkbar machen.

    Habe es jetzt zu Hause nochmal mit Staxrip gemacht und es mir von Nero7 anzeigen lassen, und siehe da, jetzt zeigt es richtig 700x428 an. Heute früh hatte ich eine Nero6-Version - vielleicht lag es daran, denn am Staxrip+Codec+verwendete Programme gibt es keinen Unterschied, und wenn es im avs-Script so steht, wäre nicht nachvollziehbar, warum dann eine andere Auflösung herauskommen soll.

    Das von dir erwähnte "Avinaptic" kannte ich bislang gar nicht, habe es mir gleich mal gezogen und angewandt und es zeigt auch die wohl richtige Auflösung an.

    Muss es mal im Auge behalten, jetzt habe ich wenigstens mal noch ein 2. Programm zum Vergleich bzw. mit genauerer Analyse.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!