MeGUI sehr langsam (Ordner übernehmbar?)

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • MeGUI sehr langsam (Ordner übernehmbar?)

    Anzeige
    Ok, ich bin mir gerade nicht ganz sicher, aber ich meine, meine Projekte zu rendern hat immer ~ 1 Stunde pro Folge gedauert.
    Jetzt encodiere ich gerade ein Spiel wo auf dem Bildschirm wesentlich weniger abgeht (weil 2D Sidescroller) und die Encodierzeit liegt am Anfang bei
    geschätzt 1h43m.

    Ich habe als ich das System neu aufsetzen musste MeGUI in den Backup-Ordner kopiert und so 1:1 übernommen.
    Alle Einstellungen sind wie vorher, nichts hat sich geändert. Legt MeGUI abseits des Installationspfad irgendwelche Dinge
    bei der Installation an, die essentiell für die Geschwindigkeit / das encodieren sind?

    Ansonsten fällt mir nur auf, dass der SSM eine neue Version hat.. aber ich bezweifle, dass die neue in irgendeiner Form ein Skript
    ausspuckt was das encodieren langsamer macht. ?(
    Mein Kanal:

  • Wie immer gilt: Avisynth Script und MediaInfo posten. Falls die verwendete Hardware sonst nirgends vermerkt ist, auch diese.
    Das einzige was an MeGUI wirklich langsam sein kann ist aus meiner Sicht die Queue-Übersicht mit allen (abgeschlossenen) Jobs, sollte aber nicht verwunderlich sein, wenn dort noch ~2000 Einträge vorhanden sind. ^^
    Wie sieht die CPU Auslastung aus? Wird das Multithreaded-Avisynth auch tatsächlich verwendet?
  • Ich habe doch geschrieben, dass ich mein System neu aufgesetzt habe - nur Windows neu installiert. Ist die gleiche Hardware wie vorher, dürfte also als Faktor wegfallen. Wenn es jetzt schlechter läuft als vorher, kann's ja nur an den Einstellungen liegen.

    Multithread Avisynth ist aktiviert, alle 4 Kerne auf 100% Auslastung. In der Jobliste ist nur 1 alter Auftrag.

    Wie kann ich das Avisynth-Script posten?

    Mediainfo:

    Spoiler anzeigen
    Allgemein
    Vollständiger Name : D:\Dxtory Aufnahme\Dex 1.avi
    Format : AVI
    Format/Info : Audio Video Interleave
    Format-Profil : OpenDML
    Dateigröße : 67,5 GiB
    Dauer : 25min
    Gesamte Bitrate : 386 Mbps
    Originale Source-Form/Vertrieb durch : Video:MagicYUV lossless v1.2rev0 (64 bit) Audio:Lautsprecher (High Definition Audio-Gerät)
    Kodierendes Programm : DxtoryCore ver2.0.0.134

    Video
    ID : 0
    Format : MAGY
    Codec-ID : MAGY
    Dauer : 25min
    Bitrate : 385 Mbps
    Breite : 1 920 Pixel
    Höhe : 1 080 Pixel
    Bildseitenverhältnis : 16:9
    Bildwiederholungsrate : 60,000 FPS
    Bits/(Pixel*Frame) : 3.094
    Stream-Größe : 67,2 GiB (100%)

    Audio
    ID : 1
    Format : PCM
    Format-Einstellungen für Endianess : Little
    Format-Einstellungen für Sign : Signed
    Codec-ID : 1
    Dauer : 25min
    Bitraten-Modus : konstant
    Bitrate : 1 411,2 Kbps
    Kanäle : 2 Kanäle
    Samplingrate : 44,1 KHz
    BitDepth/String : 16 bits
    Stream-Größe : 252 MiB (0%)
    Ausrichtung : Ausgerichtet an Interleaves
    Interleave, Dauer : 100 ms (6,00 Video-Frames)



    Aviscript so..?

    Spoiler anzeigen
    ### SagaraS Scriptmaker - Version 6.1 ###

    ### Lade Plugins und setze die globalen Variablen ###
    Global breite = 2048
    Global hoehe = 1152
    Global AR = 0

    ### Lade Videoquellen ###
    SetMTMode(3)
    AVIload("D:\Dxtory Aufnahme\Dex 1.avi", 0, 0, 0, -0, -0, "Auto", "Auto", 0, 0)

    ### Filter Verarbeitungszone ###

    (IsYUY2() == true) ? ConvertToYV16(matrix = "Rec709", ChromaResample = "Spline64") : Last

    ### Funktion für Video-Laderoutine ###
    Function AVIload (String file, int loading, int cl, int co, int cr, int cu, string pixtype, string afps, int fpsn, int fpsd) {
    pixtype2 = (pixtype == "YUY2") ? "YUY2" : (pixtype == "RGB24") ? "RGB24" : (pixtype == "Y8") ? "Y8" : (pixtype == "YV12") ? "YUV420P8" : (pixtype == "YV24") ? "YUV444P8" : pixtype
    (loading == 1) ? FFIndex(file) : nop()
    clip0 = (loading == 3) ? (pixtype == "Auto") ? LWLibavVideoSource(file) : LWLibavVideoSource(file, format = pixtype2) : (loading == 2) ? Import(file).KillAudio() : (loading == 1) ? (pixtype == "Auto") ? FFVideoSource(file, threads=1) : FFVideoSource(file, threads=1, colorspace=pixtype) : (pixtype == "Auto") ? AVISource(file, false).KillAudio() : AVISource(file, false, pixel_type=pixtype).KillAudio()
    clip1 = clip0.AutoFPS(afps, fpsn, fpsd).Cropping(cl, co, cr, cu)
    Return (clip1.width == breite && clip1.height == hoehe) ? clip1.ConvertToYV24(matrix = "Rec709", ChromaResample = "Spline64") : Clip1.Resize()
    }

    Function AutoFPS (Clip clip0, string afps, int fpsn, int fpsd) {
    rate1 = (afps == "Auto") ? (Round(Float(clip0.framerate * 1000)) / 1000) / 2 : nop()
    rate2 = (afps == "Auto") ? Round(clip0.framerate) / 2 : nop()
    rate = (afps == "Auto") ? (rate1 == rate2) ? 1 : 1001 : (afps == "Igno.") ? clip0.frameratedenominator : fpsd
    ratefaktor = (afps == "Auto") ? (rate == 1001) ? 1000 : 1 : nop()
    clip0 = (afps == "Auto") ? (rate == 1001) ? clip0.AssumeFPS(Round(clip0.Framerate) * 1000, rate) : clip0.AssumeFPS(round(clip0.framerate), rate) : (afps == "Igno.") ? clip0.AssumeFPS(clip0.frameratenumerator, rate) : clip0.AssumeFPS(fpsn, rate)
    Return clip0
    }

    Function Cropping (Clip clip0, int cl, int co, int cr, int cu) {
    clip0 = (clip0.IsRGB32() == True) ? clip0.ConvertToRGB24() : clip0
    Return (cl != 0 || co != 0 || cr != 0 || cu != 0) ? clip0.Crop(cl, co, cr, cu) : clip0
    }

    Function Resize (Clip clip1) {
    clip1 = (AR == 1) ? ((float(Clip1.height * breite) / clip1.width) / 2 == round((float(Clip1.height * breite) / clip1.width) / 2)) ? ((float(Clip1.width * hoehe) / clip1.height) / 2 == round((float(Clip1.width * hoehe) / clip1.height) / 2)) ? clip1 : clip1.ConvertToRGB24() : clip1.ConvertToRGB24() : clip1
    clip1 = (AR == 1) ? (((clip1.width * hoehe) / clip1.height > breite) ? Clip1.Spline64Resize(breite, ceil(float(Clip1.height * breite) / clip1.width)) : Clip1.Spline64Resize(ceil(float(clip1.width * hoehe) / clip1.height), hoehe)) : clip1.Spline64Resize(breite, hoehe).ConvertToYV24(matrix = "Rec709", ChromaResample = "Spline64")
    back = (AR == 1) ? (0 == 1) ? ImageReader("", 0, clip1.framecount - 1, clip1.framerate).ChangeFPS(clip1.frameratenumerator, clip1.frameratedenominator).Spline64Resize(breite, hoehe).ConvertToYV24(matrix = "Rec709", ChromaResample = "Spline64") : BlankClip(clip1, width = breite, height = hoehe, pixel_type = "YV24").KillAudio() : clip1
    Return (AR == 1) ? Overlay(back, clip1, (back.width - clip1.width) / 2, (back.height - clip1.height) / 2).ConvertToYV24(matrix = "Rec709", ChromaResample = "Spline64") : clip1
    }

    Mein Kanal:

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Chron ()

  • Der MagicYUV Farbraum war YUV422, nehme ich an? Dann wäre die Konvertierung nach YV24 im Script unnötig und leistungsmindernd. Generell jede Konvertierung kostet enorm Performance, zumindest ich habe diese Erfahrung gemacht. Bei mir hat das Weglassen der einzig verwendeten Farbraumkonvertierung in meinen Scripts zu einer Geschwindigkeitssteigerung von über 35% geführt.
    Ansonsten fällt mir noch auf, dass du Spline64 verwendest und nicht Spline36, aber du wirst bestimmt deine Gründe haben.

    Chron schrieb:

    Ist die gleiche Hardware wie vorher
    Gibt aber Menschen wie mich, die sich nicht die Hardwarekonfigurationen von allen Nutzern des Forums merken (können) und wenn diese Info auch nicht im Profil vermerkt ist, sollte man sie direkt mitliefern. ^^

    Chron schrieb:

    Wie kann ich das Avisynth-Script posten?
    Du öffnest es mit einem Text-Editor deiner Wahl, kopierst alles heraus und fügst es hier ein, am besten zwischen [spoiler][code][/code][/spoiler]-Tags, damit es vernünftig lesbar ist.
  • Anzeige

    Kayten schrieb:

    Der MagicYUV Farbraum war YUV422, nehme ich an? Dann wäre die Konvertierung nach YV24 im Script unnötig und leistungsmindernd. Generell jede Konvertierung kostet enorm Performance, zumindest ich habe diese Erfahrung gemacht. Bei mir hat das Weglassen der einzig verwendeten Farbraumkonvertierung in meinen Scripts zu einer Geschwindigkeitssteigerung von über 35% geführt.
    Ansonsten fällt mir noch auf, dass du Spline64 verwendest und nicht Spline36, aber du wirst bestimmt deine Gründe haben.
    Nein hab in YUV 4:4:4 aufgezeichnet. :)

    Wieso ist Spline64 nicht gut? Damals als ich mit den Leuten hier im Forum alles aufgesetzt habe wurde mir Spline64 empfohlen, ich hab das seitdem so gelassen und nie geändert :P Aber mehr Schärfe und weniger Treppeneffekt klingt doch gut.

    Edit: Ich glaube, dass es mir empfohlen wurde. Will jetzt auch keinen Müll erzählen :whistling: Aber ich denke nicht dass ich damals auf eigene Faust etwas eingestellt habe, ohne zu wissen, was es bringt. Maximal hat mir jemand gesagt: Du kannst beides nehmen, musst du selbst entscheiden.

    Kayten schrieb:

    Gibt aber Menschen wie mich, die sich nicht die Hardwarekonfigurationen von allen Nutzern des Forums merken (können) und wenn diese Info auch nicht im Profil vermerkt ist, sollte man sie direkt mitliefern.

    Ja das ist mir schon klar, aber es ging nicht darum dass du meine Hardware auswendig kennst, sondern darum dass sich an der Hardware nichts geändert habe, mit der ich seit mehr als einem halben Jahr täglich Videos rendere - von daher dürfte es an dieser nicht liegen.

    Kayten schrieb:

    Du öffnest es mit einem Text-Editor deiner Wahl, kopierst alles heraus und fügst es hier ein, am besten zwischen
    Spoiler anzeigen

    Quellcode

    -Tags, damit es vernünftig lesbar ist.
    Ist via Edit in meinem letzten Beitrag jetzt drin :)
    Mein Kanal:

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Chron ()

  • Wird in MeGUI das YUV444 Material auch genutzt?
    Es kann auch einfach sein, dass dieses Material nun komplexer ist als das vorherige und deshalb länger beim Kodieren braucht. Bei mir schwankt die Geschwindigkeit der Kodierung beim selben Spiel auch teils zwischen 32FPS und 42FPS.

    Chron schrieb:

    Aber mehr Schärfe und weniger Treppeneffekt klingt doch gut.
    Mehr Schärfe bedeutet im Allgemeinen schlechtere Komprimierbarkeit. Wüsste nun halt nicht, warum man sein Videomaterial noch schärfer machen sollte, als es ohnehin schon ist. Spline36 wäre dagegen neutral. Wird jemand anderes aber wohl besser beurteilen können.

    Chron schrieb:

    meine Projekte zu rendern hat immer ~ 1 Stunde pro Folge gedauert.
    Die Kodiergeschwindigkeit des Encodes wäre interessanter als die eigentliche Dauer der Kodierung. ^^
  • Jo bei MeGUI habe ich --output-csp i444 eingetragen.

    Also Spline36 lässt das Video wie es ist und 64 "schärft nach"? Und was ist mit Treppeneffekt, der ist bei 36 schon ein Stück höher, 64 dürfte dann doch sauberer sein oder?

    An die Encodiergeschwindigkeit alter Projekte erinnere ich mich nicht mehr ganz genau, im Moment liegt sie bei knapp 18fps.
    Dürfte sich aber im gleichen Rahmen bewegt haben, so zwischen 16~18.

    Wie kommst du auf 32-42FPS? 8o

    Mein PC ist eigentlich 'ne ordentliche Kiste.

    GTX 970,
    8GB RAM,
    Intel i5 4670 @ 3,40Ghz
    2x Western Digital 1TB Platten, eine komplett nur für LPs und die ist auch nicht zugemüllt.
    Mein Kanal:

  • Wenn du die genauen Auswirkungen der einzelnen Skalierer wissen möchtest, würde ich ein Bild mit jedem Skalierer mal skalieren lassen und mir die Unterschiede anschauen. Beim näher Heranzoomen dürften die recht schnell deutlich werden.

    Chron schrieb:

    An die Encodiergeschwindigkeit alter Projekte erinnere ich mich nicht mehr ganz genau, im Moment liegt sie bei knapp 18fps.
    Dürfte sich aber im gleichen Rahmen bewegt haben, so zwischen 16~18.
    "Momentan" klingt danach, dass es noch gar nicht fertig kodiert ist. Die eigentliche Dauer lässt sich also nicht wirklich gut einschätzen. Wen es vorher allerdings um die 18FPS waren und jetzt auch, dann ist doch alles prima? ^^
    Der einzige Grund, warum die Kodierung jetzt nun länger dauert, dürfte dann die Dauer des Videos selbst sein.

    Chron schrieb:

    Wie kommst du auf 32-42FPS?
    Weniger komplexes Spiel, mehr CPU-Kerne (6 statt deiner 4), mehr GHz (4 statt deiner 3,4), Hyperthreading (ca. +20% Geschwindigkeit) und wahrscheinlich auch ein schnelleres Preset. ^^
  • Dann hat sich meine Vermutung ja bestätigt.
    Wenn du es dir zutraust ein AviSynth-Script selbst zu schreiben, könntest du mit kurzen kleinen Scripten auch einen Geschwindigkeitszuwachs erfahren. Würde ich aber nur empfehlen, wenn du nicht immer munter fröhlich das Aufnahmeformat wechselst, sonst wäre auch mir das zu anstrengend. ^^
    Meine aktuellen Scripte sehen bei einer YUV444 Aufnahme (allgemein geschrieben, 16:9 Format) beispielsweise nur so aus:
    Spoiler anzeigen

    Quellcode

    1. hoehe = 1152
    2. breite = 16*hoehe/9
    3. SetMTMode(3)
    4. AVISource("AVI hier", audio=false)
    5. Spline36Resize(breite, hoehe)
    6. Trim(Anfang, Ende)


    Mehr brauche ich aus meiner Sicht nicht.

    Chron schrieb:

    Meintest du dass ich einfach nur 1 Frame aus einem Video encodiere? Da kann ich dann aber ja nicht ranzoomen.
    Script erstellen mit Skalierer XY, Script in VirtualDub ziehen, Frame raussuchen und speichern. Wiederholst du das nun mit allen Skalierern, hast du je ein Bild pro Skalierer und kannst die ihm Grafikprogramm deiner Wahl vergleichen. Sollte natürlich immer der selbe Frame sein.
  • Du skalierst ja auch nur 72p nach oben. Was willst du da für einen Unterschied erkennen bei so einer lahmen Skalierung ^^ Klar das für das Auge alles identisch dann ist. ^^ Für den Encoder allerdings nicht. Der sieht da einen Unterschied.

    Ich gib dir jetzt mal ein paar Beispiele zwischen den ein paar Skalierern, wo man den Unterschied auch mit dem Auge sieht.
    Quelle ist ein RGB Video und skaliert wird um den Faktor 2:

    killerinstinct.ath.cx:2000/Sag…ptmaker/Vergleiche/a1.png
    killerinstinct.ath.cx:2000/Sag…ptmaker/Vergleiche/a2.png
    killerinstinct.ath.cx:2000/Sag…ptmaker/Vergleiche/a3.png
    killerinstinct.ath.cx:2000/Sag…ptmaker/Vergleiche/a4.png

    Da es nur eine sehr kleine Skalierung ist nimmt das Auge relativ wenig war. Die Unterschiede sind aber bei Spline16 und 64 schon vorhanden. Man kann es an den Schriften schon erkennen das Spline64 schon Ringbildung aufweist. Selbst Spline36.

    Und nun noch mal ganz Verschärft mit einem Faktor von 6x skaliert (Bitte Geduld haben bis das Bild geladen ist.):
    killerinstinct.ath.cx:2000/Sag…tmaker/Vergleiche/a5h.png
    killerinstinct.ath.cx:2000/Sag…tmaker/Vergleiche/a6h.png

    Hier sieht man die Unterschiede nun sogar mit bloßen Auge schon. Und das kann aber der Encoder schon mit kleinen Auflösungen ersehen. ^^
  • Hmm aber auf deinen Bildern ist Spline 64 überall unscharf, in meinen Videos ist der Text nicht unscharf.
    Ich seh' natürlich jetzt die Unterschiede in deinen Vergleichsbildern.

    Aber wenn es bei mir keinen Unterschied macht, welche Einstellung wähle ich dann, was ist am schnellsten?

    Ich hab übrigens auch die Schriften bei mir verglichen - im 500% zoom, da gab es ebenfalls keinen Unterschied zwischen den 3 Spline Varianten.
    Jeder Pixel saß exakt an der gleichen Stelle.
    Mein Kanal: