AviSynth und QTGMC - Fehlermeldung

  • Ich, Neuling in Sachen AviSynth, habe ein Problem:
    Bevor ich anfange meine gecapturten Videos via eigener Methode zu deinterlacen hat u.a. Goldwingfahrer mir empfolen, dies mit AviSynth und QTGMC (wohl derzeit weltbestes deinterlacing) durchzuführen.
    Nun wollte ich das mal ausprobieren. Leider ist mir dies bisher nicht gelungen. Ich bekomme Fehlermeldung wenn ich entsprechendes Script in VDub öffnen will:



    Das Script selbst:


    Code
    1. video = AVISource("E:\SVHS\1991_06_15_001.avi")
    2. video = ConvertToYV12(video)
    3. video = AssumeTFF(video)
    4. video = QTGMC(video,Preset="slow",EZDenoise=1.5)
    5. return video


    AviSynth v.2.6.0 ST, 32-bit, hab ich von da:http://avisynth.nl/index.php/Main_Page
    QTGMC 32-bit Plugins [Vit-2.6], hab ich von da:http://forum.doom9.org/showpost.php?p=1568142&postcount=1126
    QTGMC v3.32, hab ich von da:http://forum.doom9.org/showthread.php?t=156028


    Bei der Installation der Plugins bin ich wie beschrieben vorgegangen: die 2 dll's ins Verzeichnis Windows\SysWOW64 (habe win7 64bit) sowie die Plugins in den Pluginordner von AviSynth:



    Hab ich irgendwo etwas übersehen, oder was mache ich hier falsch?
    Für Unterstützung währe ich dankbar


    mfg
    Frank

  • AviSynth v.2.6.0 ST


    :google:
    "Meinten Sie: AviSynth v.2.6.0 MT ?" ;)
    Nein, ist nicht zwingend nötig. Wenn du den Installer v2.60 final von SourceForge hast, dann hast du erstmal die stabile Basis. Multi-Threading kann zwar die Berechnung beschleunigen, aber man muss da auch auf viele Kleinigkeiten achten, sonst geht v.a. bei großen Bildflächen und vielen parallelen Threads der RAM aus.


    Von QTGMC gibt es übrigens auch schon neuere Versionen (z.B. 3.33s), aber im Farbraum YV12 reicht 3.32 sicherlich.


    Die Plugins von -Vit- wurden für die MT-Variante gepatcht, aber die von dir verlinkten waren wohl nicht ganz die aktuellsten, es gab da noch mal aktualisierte Plugins von 06_taro wegen einer Änderung der Cache-Schnittstelle in AviSynth 2.6 MT nach alpha 4. Aber dann müsste die Fehlermeldung eine andere sein, die ist auffällig (was wegen CACHE_GETCHILD_CACHE_MODE).


    Bei dir ist der Fehler eine Schutzverletzung. Das weist auf schwerwiegendere Probleme hin. Zu den möglichen Ursachen fällt mir ein: Datenfehler im Video; fehlerhafte Plugin-Dateien (z.B. Datenfehler beim Entpacken; es gab da mal Fehler beim Entpacken von 7zip-Archiven vor bzw. nach Version 9.20); programmtechnisch irgendwie inkompatible Plugin-Varianten (gerade bei den Repair- und Masktools-Plugins ist das oft schwierig, genau die passende Kombination zu besorgen).


    In Zeile 776 gibt es einen Aufruf von mt_makediff(), versuche also erst mal den Ersatz für die MaskTools-DLL von 06_taro.

  • Grundsätzlich scheint das obige Skript nicht falsch zu sein, soweit ich das verstehe. Es ist explizit geschrieben (immer Zuweisungen zu Clip-Variable "video"), das wäre nicht unbedingt nötig. Aber ich erkenne hier keine Ursache für eine Schutzverletzung. Jede andere Art von Fehler hätte eine andere Fehlermeldung gebracht. Da es keine AviSynth-spezifische Fehlermeldung ist, scheint der grundsätzliche Ablauf des Skriptes inklusive Laden von Plugins zunächst zu funktionieren. Der Crash muss dann relativ unabhängig vom Skript sein. Ich vermute eher was im Zusammenspiel spezieller Versionen von empfindlichen Plugin-DLLs.

  • @ LigH und Rübezahl ..... Danke schon mal für die Unterstützung!
    Das video ist captured mit Vdub und codiert mit lagarith:



    Nein, die MT-Version habe ich nicht verwendet, mir kam es erst mal darauf an, überhaupt ein Ergebnis zu sehen, egal wie lang der Rechner brauch. AviSynth als solches funktioniert auch problemlos mit den internen Filtern, nur mit dem QTGMC-Script hat das Program ein Problem. Und egal ob ich dann VDub oder auch AvsP verwende, sobald ich QTGMC im Script habe, bekomme ich diese Fehlermeldung.
    Tausche ich die mt_masktools-26.dll gegen die von 06_taro aus, so bekomme ich einen Fehler mehr:



    Hab auch mal den EZDenoinse-Parameter auskomentiert, mit gleichem Ergebniss.
    Wegen dem Entpacken von 7zip-Dateien, hatte da eigentlich bisher nie Probleme. Aber das habe ich auch schon im Vorfeld getestet, sprich: alles deinstalliert und gelöscht, neu geladen , neu entpackt und installiert.


    Rübezahl
    Was meinst Du mit Script vergleichen? In dem genannten Thread versucht Kroko ein mov zu bearbeiten, deswegen dort wohl QTInput. Ansonsten, was ist da anders, was habe ich übersehen? Natürlich habe ich die Suchfunktion benutzt, konnte aber für mein Problem keine Lösung finden weder hier noch in diversen andern Foren, welche sich mit dieser Thematik befassen.
    Das einzigste was mir jetzt noch einfällt, wäre mal direkt von BM-Mediaexpress capturen zu lassen um vielleicht Ungereimtheiten im Video zu eliminieren.

  • Aha, da hat mich mein Näschen also nicht getrügt. Nach dem Austausch der mt_masktools-26.dll gibt es einen Crash in einer anderen Funktion, diese ist nun aus der Repair-Kollektion (RemoveGrain). Da versuch mal die Verwendung aller DLLs von 06_taro.


    Der Hinweis von Rübezahl hilft in deinem Fall nicht wesentlich weiter, weil der Fehler eher nicht in deinem Skript liegt; das scheint soweit gut zu sein, wie ich schon schrieb (außer ich irre mich).

  • Da versuch mal die Verwendung aller DLLs von 06_taro.


    Hm..., wo find ich diese? Der link zeigt nur auf die Masktools.dll


    mit der Version 3.33 von QTGMC bekomme ich folgende Fehlermeldung:



    Nachtrag:
    Hab jetzt mal probiert videocapture direkt mit Mediaexpress mit dem Ergebnis: the same like before :(


  • Der Hinweis von Rübezahl hilft in deinem Fall nicht wesentlich weiter ... (außer ich irre mich).


    Ich gehe davon aus, dass er die Plug-Ins nicht geladen hat.


    LoadPlugin("C:\Programme\AviSynth 2.5\plugins\nnedi3.dll")
    LoadPlugin("C:\Programme\AviSynth 2.5\plugins\mt_masktools-26.dll")
    LoadPlugin("C:\Programme\AviSynth 2.5\plugins\mvtools2.dll")
    LoadPlugin("C:\Programme\AviSynth 2.5\plugins\RemoveGrainSSE2.dll")
    LoadPlugin("C:\Programme\AviSynth 2.5\plugins\RepairSSE2.dll")
    LoadPlugin("C:\Programme\AviSynth 2.5\plugins\VerticalCleanerSSE2.dll")
    Import("C:\Programme\AviSynth 2.5\plugins\QTGMC-3.32.avsi")

  • Zitat

    Das einzigste was mir jetzt noch einfällt, wäre mal direkt von BM-Mediaexpress capturen zu lassen um vielleicht Ungereimtheiten im Video zu eliminieren.


    dann aber dies beachten




    und beachte Beitrag 4
    http://api.viglink.com/api/cli…%2Fshowthread.php%3F47141


    Beitrag 6 + 7
    http://api.viglink.com/api/cli…hread....drastic%2Bcodecs


    Beitrag 2
    http://api.viglink.com/api/cli…owthread.php%3Ft%3D140820


    und dann noch...nicht vergessen bei VDub...
    Haken rein bei,siehe Screen


    Zu Deinem Script......ich nehme immer den Audioanteil raus.
    Hier klappts..obwohl ich seit 12 Jahren noch nie ein derartiges Script wie Du gepostet hast,eingesetzt hatte.

    Datenrettungen Normwandlungen Restaurierungen Digitalisierungen

  • eigentlich bin ich bei der Erstellung des Scriptes nach einem Tut auf Youtube vorgegangen: youtube.com/watch?v=WXhLmH_ul94 (direktes Einfügen des Videos funktioniert hier irgendwie nicht, is aber Nebensache)
    Ich wollte mit dem Ganzen eigentlich nur mal das Ergebnis von QTGMC (ohne irgendwelche zusätzliche Bearbeitung) sehen, deswegen gar nicht so viel drin im Script. Und wie ich schon (deswegen dieser Thread auch hier im Newbie-Forum), ich bin AviSynth-Anfänger. Hab bisher (was deinterlacing angeht) nur mit Vdub-eigenen Filtern gearbeitet. Nebenbei: das Häckchen bei "Directly decode....." ist natürlich drin. Aber ich nehme Deinen Tip auf, probier es nochmal ohne Audio.....propier,probier,probier....;) , ne, auch ohne Audio, das gleiche Ergebnis.
    ........obwohl ich seit 12 Jahren noch nie ein derartiges Script wie Du gepostet hast,eingesetzt hatte........ was ist an meinem simplen Script schlecht?
    also doch mit Vdub capturen..... Lagarith find ich auch besser .... wird mir das Video bei AviSynth info mit YUY2 angezeigt.


    Auch habe ich jetzt Rübezahls Hinweis aufgegriffen:
    Mein Script sieht jetzt so aus:


    Code
    1. LoadPlugin("C:\Program Files (x86)\AviSynth\plugins\nnedi3.dll")LoadPlugin("C:\Program Files (x86)\AviSynth\plugins\mt_masktools-26.dll")LoadPlugin("C:\Program Files (x86)\AviSynth\plugins\mvtools2.dll")LoadPlugin("C:\Program Files (x86)\AviSynth\plugins\RemoveGrainSSE2.dll")LoadPlugin("C:\Program Files (x86)\AviSynth\plugins\RepairSSE2.dll")LoadPlugin("C:\Program Files (x86)\AviSynth\plugins\VerticalCleanerSSE2.dll")Import("C:\Program Files (x86)\AviSynth\plugins\QTGMC-3.32.avsi") video = AVISource("E:\SVHS\1991_06_15_001.avi",audio = False)#video = info(video)video = ConvertToYV12(video)video = AssumeTFF(video)video = QTGMC(video,Preset="slow")#,EZDenoise=1.5)return video


    Gleiche Lied:



    :(


    Hab da noch ein anderes Script zum deinterlacen probiert:


    Code
    1. video = AVISource("E:\SVHS\1991_06_15_001.avi")
    2. video = ConvertToYV12(video)
    3. video = AssumeTFF(video)
    4. video = SeparateFields(video)
    5. #video = QTGMC(video,Preset="slow",EZDenoise=1.5)
    6. video = Crop(video,14,2,-8,-10)
    7. video = spline36resize(video,720,576)
    8. video = TemporalSoften(video,4,4,10,20,2)
    9. return video


    aber das Ergebnis ist nicht berauschend

  • Zitat

    Lagarith find ich auch besser ....


    Direkt in Lagarith capture ich hier selten.Sicherungen von den Kundencaptures werden hier aber nur in Lagarith abgespeichert und gem.Vertrag eine bestimmte Weile noch aufbewahrt.
    Warum soll ich VDub zum capturen einsetzen,der Stream wird ja schon in digitaler Form angeliefert.
    VDub ist in erster Linie fürs capturen von analogem Material vorgesehen gewesen.


    Zitat

    YUY2


    wird mir nur angezeigt -vor-Avisynth info() wenn ichs per NX Karte capture...S-Video oder per HDMI in Edius.
    Etwas präziser wirds zwar das Ganze wenn man in Canopus HQ capturt,das ist auch in 4:2:2 aber da wird jedes einzelne Frame UND jedes Sample
    jeweils in einem sogenannten Block abgespeichert.Das geht natürlich in einem Affenzahn.


    Ansicht in VDub,VHS Band knapp 29 Jahre alt.
    [habs hier früher schon mal beschrieben]

    -------------------------------------------------


    Zitat

    aber das Ergebnis ist nicht berauschend


    kommt auch auf den Zuspieler an,wie gut war das damalige Aufnahmegerät...billiges Band und und


    Hier mal ein Beispiel...gleicher Film wie oben VHS 29 Jahre alt.
    In Edius zwar etwas "aufgeblasen"...sieht schon im Vorschaufenster schon mal ganz passabel aus.....auf dem da angeschlossenen Plasma-TV nochmals passabler.[per HD-Storm]


    Datenrettungen Normwandlungen Restaurierungen Digitalisierungen

    Einmal editiert, zuletzt von Goldwingfahrer ()

  • Gleiche Lied:


    Ich habe es jetzt auch mal mit der Variable (video) ausprobiert und es läuft bei mir mit diesen Dateiversionen ohne Fehler:


    LoadPlugin("C:\Program Files (x86)\AviSynth\plugins\nnedi3.dll") Dateiversion 0.9.4.0
    LoadPlugin("C:\Program Files (x86)\AviSynth\plugins\mt_masktools-26.dll") Dateiversion 2.0.48.0
    LoadPlugin("C:\Program Files (x86)\AviSynth\plugins\mvtools2.dll") Dateiversion 2.5.11.9


    Viel Glück
    Gerd

  • Zitat

    Nur ich nicht, wegen der rot-markierter 25,


    Rübezahl
    Beitrag 6
    http://forum.gleitz.info/showt…ung-mit-TempGaussMC_beta3


    ich vermute dass es eher an den falschen Version der folgenden beiden Versionen liegt.
    LoadPlugin("C:\Programme\AviSynth 2.5\plugins\RemoveGrainSSE2.dll")
    LoadPlugin("C:\Programme\AviSynth 2.5\plugins\RepairSSE2.dll")


    Im http://www.digitalfaq.com/forum/ haben wir diverse Versionen aus dem RemoveGrain Paket eingesetzt.
    Mal die alte V.0.9...je nach Script und der zu erwarteten Filterwirkung,dann bei einer anderen Filterung die V.1.0...dann die 1.0pre.
    Die Ergebnisse waren zwar zumeist sehr überzeugend..........aber durch das dauernde "Umstellen" habe ich mein Avisynth versaut wenn ich mal schnell was filtern wollte.
    Nicht mal das einfache Pal to NTSC Script wollte danach so wie früher.
    Also aufpassen.

    Datenrettungen Normwandlungen Restaurierungen Digitalisierungen

  • Ich habe es jetzt auch mal mit der Variable (video) ausprobiert und es läuft bei mir mit diesen Dateiversionen ohne Fehler:


    bei mir tuts nicht. Heute Nachmittag probier ich mal meine andere Systemplatte. Wenn es da genausowenig geht, geb ich's auf.....
    Danke mal für Eure Unterstützung!


    Grüße
    Frank

  • Da bei frank2000 die Plugin-DLLs und das Import-Skript im Auto-Load-Verzeichnis liegen, ist das explizite Laden und Importieren nicht zwingend nötig gewesen.


    Manchmal kann es Probleme geben, wenn zu viele DLLs in diesem Verzeichnis liegen, und dann vielleicht eine dabei ist, die beim automatischen Laden AviSynth abstürzen lässt (die SSE3-DLLs von Repair waren solche fehlerhaften DLLs, aber die sind bei dir nicht im Paket). Etwas sicherer ist man, wenn man nicht alles ins "plugins" Verzeichnis legt, sondern alles z.B. in ein Unterverzeichnis entpackt und daraus alle nötigen DLLs explizit lädt und die *.avsi explizit importiert, wie Rübezahl es vorschlägt.


    Das ist hier aber nicht die Fehlerursache. Hätte AviSynth ein Plugin nicht laden können, wäre die Fehlermeldung gewesen, dass eine Funktion unbekannt ist. Hätte ein automatisch geladenes Plugin AviSynth abstürzen lassen, hätte es keine Zeilennummern in der Fehlermeldung gegeben.


    Die Zugriffsverletzung mit Zeilennummern ist ein klarer Hinweis darauf, dass es Probleme mit einem ganz konkreten Plugin gibt. Ich hoffe, ich habe jetzt die gleiche Version wie du, v3.33s 2015 9 10, richtig? Da weist die Crash-Adresse auf TemporalSoften. Die exakte Version zu kennen ist wichtig, sonst zeigen die Zeilennummern auf unterschiedliche Befehle.


    Kommt die Zugriffsverletzung eigentlich "sofort" beim Öffnen des Skriptes, oder erst im Verlaufe der Konvertierung? Falls sofort, wäre auch das ein weiterer Hinweis darauf, dass schon das Laden bestimmter DLLs problematisch ist, das kann aber auch an abhängigen DLLs liegen (z.B. nicht die eigentliche Plugin-DLL, sondern eine der FFT3D-DLLs, falls die davon verwendet werden).


    Versuch mal, dein Skript mit AVSMeter (32 bit) zu öffnen, dessen Fehlermeldungen sind oft etwas ausführlicher. Auch nützlich: AviSynth Info Tool prüft die AviSynth-Installation.

  • Ok, hab ich mal Deine Vorschläge/Tipps ausgeführt:


    AvsInfoTool gibt das zurück:



    (die ganze Funktionsaufzählung hab ich mal aus dem log raus genommen)


    dann habe ich AVSMeter aufgerufen mit parameter -avsinfo
    Ausgabe:



    dann mein Script mit AVSMeter aufgerufen (3x):



    Erklärung:
    1. Aufruf mit QTGMC-3.32.avsi
    2. Aufruf mit von Dir verlinktem QTGMC 2015 9 10 (aber vergessen den Aufruf im script entsprechend anzupassen)
    3. Aufruf dann mit QTGMC 2015 9 10 im Script


    Jetzt kommt Fehler in Zeile 424
    Diese Zeile verweist auf RemoveGrain. Die entsprechende dll im plugin-Verzeichniss von AviSynth ist aus dem Pack: "QTGMC 32-bit Plugins [Vit-2.6]" aus dem Link aus dem 1. Beitrag in diesem tread. Datumsangabe dieser dll ist 2012-04-02, Version ..... keine Ahnung. Ist aber wie auch im ersten Beitrag zu sehen (Screeshot Plugin-Verzeichnis) die SSE2.
    (TemporalSoften ist ja, nehme ich an, eine AviSynth -interne Funktion, die funktioniert auch (hatte ich in dem anderen Script "deinterlacen ohne QTGMC" verwendet) Dieses Script funktioniert ohne murren.)


    so langsam blick ich's nicht mehr mit den ganzen Versionsgewurschtle
    hab jetzt mittlerweile 3 Versionen von QTGMC, aber keine funktioniert......:(:rolleyes_:


    Ach ja, hatte ich vergessen zu antworten: Die Fehlermeldung kommt sofort nach dem Öffnen.

  • In Zeile 424 von QTGMC 3.33s 2015 9 10 ist ein Aufruf mit RemoveGrain.


    In Zeile 756 von QTGMC 3.32 ist ein Aufruf mit RemoveGrain.


    Ich glaube, das engt den Kreis der Verdächtigen erheblich ein...


    Soweit ich mich erinnere, gibt es eine Reprogrammierung der Repair-Kollektion (Repair*.dll, RemoveGrain*.dll u.a.) mit einer RgTools.dll und avstp.dll, die von QTGMC 3.33s verwendet werden kann; da heißt es aber entweder-oder, und da wäre dann schon angebracht, die älteren DLLs für QTGMC aus dem plugins-Verzeichnis zu entfernen und zum expliziten Laden in ein Unterverzeichnis zu packen — nicht dass du dann zwei DLLs hast, die gleichnamige Funktionen anbieten, und AviSynth dann automatisch die falsche von beiden bevorzugt.


    Leider ist die Optimierung der Plugins für QTGMC schwierig. Mir wäre auch lieber, wenn mal jemand, der sich wirklich auskennt, ein Päckchen mit den heute empfohlenen Plugins (Stand QTGMC 3.33s 2016...) neu zusammenschnürt.