AviSynth MT und QTGMC defekte Frames

  • Hallo zusammen,


    ich kämpfe seit ein paar Stunden mit AVISynth MT und QTGMC. Ich habe Videos in uncompressed AVI YUY2. Diese lade ich mit AVISynth in VirtualDub (Versionen stehen unten). Sobald ich in der zweiten Zeile meines .avs Scriptes bei SetMTMode mehr als einen Thread angebe, kommt es zu einem merkwürdigen Fehler:


    [Blockierte Grafik: https://dl.dropboxusercontent.com/u/15500634/forum.gleitz.info/QTGMC_MT_FrameError.jpg]


    Der Fehler ist reproduzierbar und folgender Zusammenhang ist mir aufgefallen:
    1 Threads: SetMTMode(3, 1) -> kein Fehler
    2 Threads: SetMTMode(3, 2) -> Fehler bei Frame 166
    2 Threads: SetMTMode(3, 3) -> Fehler bei Frame 331
    4 Threads: SetMTMode(3, 4) -> Fehler bei Frame 332


    Der Fehler tritt nur auf wenn QTGMC aktiviert ist - kommentiere ich die Zeile im .avs Script aus, passiert dies nicht. In VDub habe ich folgende Konfiguration für die Tests verwendet:
    - Keine VDub Filter
    - Full processing mode
    - Input Color YUY2
    - Output Color YUY2
    - Compression: uncompressed


    Hat hier jemand einen Tipp wie ich das hinbekomme? Ohne MT ist das ganze sehr sehr langsam - ich w¸rde schon gerne MT nutzen, nur mit defekten Frames bringts natürlich auch nichts.


    Ich habe folgende Installationsdateien verwendet:
    QTGMC 32-bit Plugins [Vit-Mod]
    SEt AviSynth 2.6 MT 2015.02.20 (avisynth_20150220.7z)
    AviSynth 2.6.0 RC1 (AviSynth_150114.exe)
    VirtualDub 1.10.4 (build 35491) 32bit


    AVISynth PlugIns:
    AddGrainC.dll 1.5.2.0 19.04.2011
    ChromaShift.dll ------- 04.11.2003
    dfttest.dll 1.8.0.0 19.04.2011
    DirectShowSource.dll 2.6.0.2 13.01.2015
    EEDI2.dll 0.9.2.0 07.06.2006
    eedi3.dll 0.9.1.0 23.07.2010
    FFT3DFilter.dll 2.1.1.0 19.04.2011
    mt_masktools-25.dll ------- 19.04.2011
    mvtools2.dll 2.5.11.2 18.04.2011
    nnedi.dll 1.3.0.0 20.09.2007
    nnedi2.dll 1.6.0.0 23.07.2010
    nnedi3.dll 0.9.4.0 09.09.2011
    RemoveGrainSSE2.dll ------- 19.04.2011
    RepairSSE2.dll ------- 19.04.2011
    SSE2Tools.dll ------- 11.04.2005
    TCPDeliver.dll 1.0.0.6 21.12.2008
    TDeint.dll 1.1.0.0 19.04.2011
    VerticalCleanerSSE2.dll ------- 19.04.2011
    yadif.dll 1.7.0.0 08.10.2009
    QTGMC-3.32.avsi ------- 07.06.2011
    colors_rgb.avsi ------- 05.07.2005


    C:\Windows\SysWOW64\avisynth.dll 2.6.0.5 20.02.2015
    C:\Windows\SysWOW64\fftw3.dll ------- 18.07.2009
    C:\Windows\SysWOW64\libfftw3f-3.dll ------- 18.07.2009

    Einmal editiert, zuletzt von mm85 (24. Februar 2015 um 23:07)

  • Ich habe mit Avisynth MT/QTGMC auch manchmal Probleme. Versuch mal folgendes:

    1. Loesche diese DLLs:

    2. Kopiere diese in das Plugin-Verzeichnis

    Die MVTools2 Version ist intern multi-threaded und somit deutlich schneller auch ohne Avisynth MT.

  • Bei der aktuellsten MT-Version gab es noch eine Korrektur, die defekte Audio-Streams betraf; gibt es das Problem seitdem, oder auch noch mit einer vorherigen Version?

    Hilft eventuell die Verwendung eines längeren Preroll()?

    Das ist mein erstes Projekt mit AVISynth, daher weis ich nicht ob es vorher schon Probleme gab :-D. Preroll werde ich versuchen....

    @Grucho2004: Danke für die Dateien ich werde das ganze heute Abend ausprobieren. Ich habe in der Mittagspause noch ein paar Tests gemacht. Jetzt war der Fehler leider nicht mehr so eindeutig wie gestern Abend. Aber es gab auch jetzt Frames, welche dort nicht hingehören:

    [Blockierte Grafik: https://dl.dropboxusercontent.com/u/15500634/forum.gleitz.info/QTGMC_MT_FrameError2.jpg]

    Frame 604 ist aus einer Einstellung welche ca. 20 Frames später erst beginnt??? Es scheint mir so als würden die Threads einzeln ihre arbeit verrichten, aber beim zusammensetzen passt etwas nicht.

    Ich werde die neuen / alten Dateien probieren und berichten...

  • Ich kenne ähnliche Probleme, wenn ich mit VirtualDub in einem solchen Skript, das nur gering oder nicht komprimierte Videos in AviSynth-MT lädt, einzelbildweise herumsuche: Dann bleibt teilweise ein Frame ewig stehen, bis ich das Skript schließe und neu lade. Ich frage mich, ob es hier gerade bei AviSource wesentlich auf den MT-Modus ankommt. Teste auch mal Modus 5 statt 3.

  • Ich habe mit Avisynth MT/QTGMC auch manchmal Probleme. Versuch mal folgendes:

    1. Loesche diese DLLs:


    2. Kopiere diese in das Plugin-Verzeichnis

    Die MVTools2 Version ist intern multi-threaded und somit deutlich schneller auch ohne Avisynth MT.

    Mit diesen Dateien erhalte ich einen Fehler von QTMGC:

    [Blockierte Grafik: https://dl.dropboxusercontent.com/u/15500634/forum.gleitz.info/Interleaved2Planar.jpg]

    Ohne QTGMC gehts - aber da tritt der Fehler ja nicht auf....

  • Es ist schon wichtig, in welcher Reihenfolge die Befehle stehen, und in welchen Zusammenhang sie verwendet werden. Deshalb ist es auch volle Absicht, dass SetMTMode(3,threads) vor AviSource(...) steht und SetMTMode(2) erst danach: Damit speziell nur AviSource(...) in Modus 3 ausgeführt wird und die restlichen Funktionen in Modus 2. Bei vielen Source-Plugins muss man nämlich davon ausgehen, dass die es nicht mögen, wenn mehrere Threads von ihnen gleichzeitig unterschiedliche Frame-Nummern abfragen.

    Und ein Preroll(...) direkt nach einem Quellfilter soll auch noch dabei helfen, mehrere Videoframes voraus- und zwischenzupuffern, so dass die Quellfilter ihre Frames möglichst nur einmal in der Reihenfolge aus der Quelldatei lesen müssen, in der sie auch bereitstehen, es wird also ein vor-und-zurück-springen in der Quelldatei durch sich überschneidende Anfragen von Threads vermieden. Und das hielt ich für die Ursache der falschen Frames.

  • Ich habe mit Avisynth MT/QTGMC auch manchmal Probleme. Versuch mal folgendes:

    1. Loesche diese DLLs:


    2. Kopiere diese in das Plugin-Verzeichnis

    Die MVTools2 Version ist intern multi-threaded und somit deutlich schneller auch ohne Avisynth MT.

    Habe es nun probiert auch mit ConvertToYV12(interlaced=true) . Jetzt läuft AVISynth - aber der Fehler bleibt. Ich habe wieder verschobene / kaputte Frames wie in meinem ersten Post (aber die FPS ist höher :-D)

  • Probiere mal QTGMC 3.33.
    Solte ein YUV2 Patch drin sein für die mvtools (wenn ich mich recht erinnere).
    Wenn du sie nicht findest (die avsi), melde dich noch mal.
    Igedwo habe ich sie sicher noch rumliegen.
    Habe ich selber noch nicht benutzt, weil ich auschließlich in YV12 hantiere,
    und da rennt QTGMC 3.32 rockstable ;)
    allerdings mit abweichenden Versionen der benötigten dll's.

  • Mit QTGMC 3.33 gleicher Fehler:

    [Blockierte Grafik: https://dl.dropboxusercontent.com/u/15500634/forum.gleitz.info/QTGMC_MT_FrameError3.jpg]

    Gearbeitet wurde in YV12..... kannst du mir mal deine DLLs schicken / posten?

  • Nein - aber dann ists mir zu langsam :D


    Also dann lieber schnell und mit Fehlern? Hast du wenigstens mal die Geschwindigkeit mit den neueren DLLs gemessen und mit der alten Konfiguration verglichen? Hast du dir mal ueberlegt wieviel Zeit du verschwendest mit dem Rumprobieren mit AVSMT?

  • mm85
    An welcher Stelle,welches Band,Bezeichnung, ist die besagte Scene ?

    Hier trenne ich Video und Audio mit VDub erstmal.

    Wie sieht das Script aus ?

    Zitat

    Hast du wenigstens mal die Geschwindigkeit mit den neueren DLLs gemessen und mit der alten Konfiguration verglichen?


    Hier...vorher 17 FpS....nachher 22 FpS :ja:
    Avisynth Version aber immer noch die vom 9.März 2013.

    Datenrettungen Normwandlungen Restaurierungen Digitalisierungen

  • LigH: kannst du mir mal ein Beispiel für Preroll posten?

    Basierend auf dem Beispiel von IanB im doom9-Forum:

    ^ Diskussionsgrundlage, nur theoretische Vorschläge...

  • Ich sehe gerade das du laut deiner Auflistung gar nicht AviSynth MT benutzt:

    Zitat

    C:\Windows\SysWOW64\avisynth.dll 2.6.0.5 13.01.2015


    Sollte aber sein:

    Zitat

    C:\Windows\SysWOW64\avisynth.dll 2.6.0.5 20.02.2015


    Bitte um Aufklärung.
    Zuerst die "normale" AviSynth Installation, dann die modifizierte avisynth.dll (MT) Version ins C:\Windows\SysWOW64\ Verzeichnis kopieren/einfügen.

  • Ich sehe gerade das du laut deiner Auflistung gar nicht AviSynth MT benutzt:

    Sollte aber sein:

    Bitte um Aufklärung.
    Zuerst die "normale" AviSynth Installation, dann die modifizierte avisynth.dll (MT) Version ins C:\Windows\SysWOW64\ Verzeichnis kopieren/einfügen.

    Sorry da hab ich einen Fehler beim Abschreiben gemacht - hab die avisynth.dll vom 20.02.2015 schon die ganze Zeit im Einsatz. Habs in meinem ursprünglichen Beitrag angepasst. Danke für den Hinweis.

Jetzt mitmachen!

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