Beiträge von Selur

    Mal ne doofe Frage: Wie geht man in Vapoursynth eigentlich richtig mit soft telecine um?

    • ffms2.Source kennt kein "rffmode"
    • bei LWLibavSource: sehe ich auch keine Parameter dazu
    • bei d2vsource, was bei mir nur für einige Formate geht, steht dann:
      Zitat

      DGDecode's traditional "Force FILM" mode isn't really present in this plugin, but if your source or part of it is 100% FILM, which is the only time you should be Force FILMing anyway, You can simply set Force FILM in DGIndex, which will set the framerate properly in the D2V file, and then not apply RFF flags. It's also feasible to trim away any non-FILM frames and still Force FILM.

      Quelle: https://github.com/dwbuiten/d2vsource/

      Problematisch wenn man nicht unter Windows ist und deshalb d2vwitch verwenden muss, was so ne Option nicht hat oder man ein Format hat was weder DGIndex oder D2VWitch unterstützen.

    -> Ist die einzige Lösung das Material wie normales telecine zu behandeln? (also IVTC)


    Cu Selur

    Avisynth geht der Speicher aus, davon ausgegangen es liegt nicht an einem Bug in einem der Filter, könnte es Helfen mit SetMemoryMax

    (http://avisynth.nl/index.php/Internal_functions#SetMemoryMax) ein Limit zu setzen.

    Ohne zu Wissen:

    a. was die Auflösung des Materials ist das umgewandelt wird.

    b. was das Zielformat (Video/Audio/Container) ist.

    -> keine Ahnung


    Ich vermute Du verwendest eine 32bit Version von Avisynth (da es im 'Program Files (x86)'-Ordner ist), sprich mehr als 4GB würde kritisch.

    Spontan hätte ich QTSource im Verdacht, dass wurde die letzten 9+ Jahre nicht aktualisiert und baut auch Quicktime auf was es auch schon ne Weile nicht mehr offiziell für Windows gibt. Kommen LibavSMASHSource und FFmpegSOurce mit der Quelle nicht klar?


    Cu Selur


    Ps.: EdiThreads runter zu setzen sollte auch helfen,... Würde empfehlen das Skript mal durch AvsMeter (https://forum.doom9.org/showthread.php?t=174797) zu jagen um den Speicherverbrauch zu checken.

    Hi Leute, da https://github.com/Selur/hybrid-vapoursynth-addon kaputt ist (building Vapoursynth geht, building plugins geht, vscript und vspipe geht nicht mehr) und ich weder die Zeit/Motivation oder das Wissen habe um das zu fixen denke ich darüber nach den Linux support komplett einzustellen und Hybrid in ein 'Windows only' tool umzuwandeln.

    Macht einfach keine Spaß jeden Tag nach der Arbeit mehr Zeit mir shell Skripten rumzuhantieren als zu programmieren.


    Cu Selur

    Mein Frage zielt darauf hin ob das Problem bei Dir auch mit dem Sample auftritt, da ich mit dem Sample das Problem nicht nachstellen kann.

    Falls das Problem bei Dir mit dem Sample auch nicht auftritt hilft das Sample nicht, falls das Problem mit dem Sample auch auftritt liegt es vielleicht nicht direkt an Hybrid.

    Kleines Problem auch an dem Sample: Es ist ein anderes Format als das was Du verwendest hast im DebugOutput.


    Cu Selur

    Sehr merkwürdig.

    Hab Dein Skript (von der Quelle und den Pfaden abgesehen) und deinen x264 Aufruf 1:1 nachgestellt, aber bei mir ist der Output von x264.

    Bei mir wird die Ausgabegröße korrekt.

    -> Kannst Du bei Dir das Problem mit dem Sample nachstellen?


    Cu Selur


    Ps.: hab die Log files mal angehängt.

    Dateien

    • Output.zip

      (19,07 kB, 9 Mal heruntergeladen, zuletzt: )

    Kann ich hier nicht nachstellen.

    Was auffällt ist, dass die durchschnittliche Datenrate beim Encoden mit 2791.10kBit angegeben wird aber MediaInfo 5226kBit/s meldet.

    Vermutung: Vielleicht liegt es irgendwie am Bob deinterlacen.


    Wenn ich mir den DebugOutput den Du gepostet hast, der leider nicht zum Screenshot passt, ansehe sieht alles richtig aus.

    1. Input is 25fps

    2. QTGMC liefert 50fps

    3. Hybrid ruft x264 mit '-fps 50' auf.

    4. x264 meldet auch "y4m [info]: 720x576p 12:11 @ 50/1 fps (cfr)"

    5. Hybrid nimmt die Ausgaben von x264 und multipliziert die durchschnittliche Datenrate mit der Länge

    Code
    1. progress.bitrate = bitrate; // in kBit/s
    2. progress.estimatedSize = QString::number(bitrate * 1000.0 / 8.0 / 1024.0 / 1024.0 * m_currentLength, 'f', 2);

    Gerade mal hier versucht. Interlactes Material mit QTGMC gebobbed und an x264 gesendet.

    -> bei mir ist die Anzeige akkurat


    Falls Du den Effekt auch mit einem kleinen Sample nachstellen kannst könntest Du das wo hochladen und dann könnte ich übermorgen Abend mal drauf schauen (morgen bin ich unterwegs).


    Der Code in Hybrid ist schon ewig alt und hat bis dato nie Probleme gemacht, sehe da keinen Bug in Hybrid und kann es leider auch momentan nicht nachstellen mit den Files die ich so habe.


    Cu Selur

    Wenn man nicht 2pass Encoding verwendet, kann die Datenrate natürlich enorm schwanken.

    Laut DebugOutput sind die Datenraten der einzelnen Clips bei Dir immer recht konstant, die Datenraten der Clips untereinander hingegen sind sehr unterschiedlich.


    Was Hybrid macht ist vom Encoder durchschnittlich gemeldete Datenrate nehmen und dann mit der Länge des Clips multiplizieren.

    Hat bei mir bis dato eigentlich immer ganz gut gepasst.


    -> Sehe keine Grund dafür warum Hybrid a mit der Größenabschätzung bei den einzelnen Clips irgendwo stark abweichen sollte sofern die Länge der Clips richtig erkannt wurde. Je weiter das Encoding fortgeschritten ist desto genauer sollte die Abschätzung eigentlich sein, wenn das zu encodende Material einigermaßen Einheitlich ist. Also nicht z.B. erste Hälfte vorwiegend wenige Details und in der 2ten Hälfte vorwiegend viele Details.


    Hab gerade mal zwei Filme reencoded und die Vorhersage war eigentlich recht akkurat, nachdem ca. 10% des Filme encoded waren.


    Cu Selur

    Zitat

    Bzgl. Deinterlacer-Option: Müsste der "Auto" Haken nicht gerade anders herum verankert sein? Momentan muss der Haken gesetzt werden, wenn ich QTGMC wählen will statt anders herum. Und die "Force" Option ist ja weg. Oder habe ich einen Denkfehler?

    Eigentlich sollte "auto" immer an sein.

    Ist der Input nicht progressive und der output progressive wird geschaut, ist das was ausgewählte ist ein Deinterlacer und der Input ist nicht Telecine oder progressive so wird der gewählte Deinterlacer verwendet. Ist eine IVTC Methode ausgewählt, wird ein deinterlacer gewählt. Ist der Input progressive wird nichts gemacht. Ist der Input telecine wird wie beim Deinterlacing vorgegangen nur, dass deinterlacing und ivtc verstauscht sind.

    Ist der Input progressive erkannt aber man weiß, dass dies falsch ist sollte man mit 'Overwrite scan type to' Hybrid wissen lassen was der Input ist.


    Zitat

    Sobald eine (neue) Datei eingelesen wird, ändern sich die voreingestellten/ im Profil gespeicherten Einstellungen. Gemerkt unter Crop/Resize -> Pixel Aspect Ratio:

    Was den Standardeinstellungen entspricht, will man das Hybrid den output PAR beibehält muss man ihm das sagen. "Crop/Resize->Misc->Misc->Keep output PAR"



    Cu Selur

    Hybrid rev 2020.07.11.1:

    *fixed*

    • Vapoursynth: saving profiles
    • Vapoursynth QTGMC bob
    • General: restting Defaults caused two instances to open
    • Jobs: tsMuxeR temp and input file handling

    *changed*

    • Filtering: Removed the "force deinterlace" option, instead 'Overwrite input scan type to' should be used.
    • Tools: adjusted to latest NVEncC 'check-features' changes
    • Audio: remove unneeded '-ac' in ffmpeg call

    *added*

    • Avisynth: 64bit Support, support 32bit and 64bit Avisynth jobs at the same time in the jobqueue (Windows only)


    -> downloads: http://www.selur.de/downloads


    Cu Selur

    Zitat

    If this version contain any new bugs feel free to comment in here or PM me in Discord (GRisk)

    • So, like I said in the previous post, I gave a shot of downgrading pytorch to see if it fix some of the bugs contained in 0.39 and 0.40
    • I did give it a try to improve a little more the memory usage.
    • In split options, the X and Y axis was getting the values incorrectly, hopeful this is fixed now.
    • There is a new option under "Application Style" to save and load all the values on the app, so you don't need to keep putting the same values. If it work correctly, in the next version one of those presets can be selected by default.

    Änderungen hören sich jetzt nicht so spannend an, hört sich nicht so an also ob an der eigentlichen Interpolation oder den anderen Problemen die wir so genannt hatten geändert hat.


    Cu Selur

    Zitat

    Welche Anpassung wäre zu empfehlen?

    Keine Ahnung ohne das Video zu sehen.


    Egal ob Vapoursynth/Avisynth oder irgendein NLE:

    Es gibt nicht eine Filterkette die für alle Videos Sinn macht.

    Animes, alte Cartoons, Bildschirmpräsentationen, Spielfilme, usw. sind alle meist komplett unterschiedlich und selbst Videos eines bestimmten Genres sollten i.d.R. individuell gefiltert werden.

    Gerade denoising und sharpening Filter aus anderen Skripten blind zu übernehmen ist i.d.R. ein Fehler.


    Cu Selur

    Empfehlungen für Upscaling ohne das Orginalvideo zu sehen ist immer schwer.

    Wenn Avisynth verwendet werden soll ist Waifu2x vielleicht noch interessant.


    Generell würde ich eher Vapoursynth verwenden, selbst wenn man NNEI3 verwendet gibt es da mit nnedi3cl eine GPU gestützte Variante die einiges flotter ist.

    Auf Waifu2x basierend gibt es da SRMD und auf Esgran basierend VSGRAN. Speziell für Animes gibt's noch Anime4KCPP.

    Generell wäre auch VapourSynth Super-Resolution-Helper interessant.


    ----

    Kleiner Kommentar noch zum Skript:

    Code
    1. Checkmate()
    2. DeDot()
    3. nnedi3_rpow2 (rfactor=4, nsize=3, nns=4, qual=2, etype=1, pscrn=4, threads=0, opt=0, fapprox=0)
    4. VagueDenoiser (threshold=2, method=1, nsteps=6, chromaT=3.0)
    5. WarpSharp (depth=300, blur=100, bump=128)
    6. VagueDenoiser (threshold=2, method=1, nsteps=6, chromaT=3.0)
    7. Spline64Resize(1920,1080)
    8. Sharpen(0.27)

    Dot Crawl/Rainbow Removal ->Resize->Denoise->Sharpen->Denoise->Resize->Sharpen,

    wäre nicht gerade die Kombination die ich wählen würde, ab dem ersten Resize wird es ungewöhnlich, was Sinn machen kann aber nichts wäre was ich allgemein empfehlen würde.


    Cu Selur