Häufige MeGui Abstürze - Ursache?

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

  • Häufige MeGui Abstürze - Ursache?

    Anzeige
    Hallo Zusammen,

    nach Aufnahme mit dem MSI Afterburner (MagicYUV) und Avisinth-Script Erstellung mittels Sagaras Script Maker encodiere ich meine Videos mit MeGui.
    Allerdings stürzt mir das Programm häufig während des Encodierens ab, allerdings nicht immer.
    Es ist dennoch ärgerlich einen längeren Encodierungs-Vorgang erneut starten zu müssen, daher wäre ich für jeden Tipp dankbar, der zur Behebung des Problems helfen könnte.

    Vielen Dank.

    Hier die Fehlermeldung:

  • Hier mal die Script-Settings

    Spoiler anzeigen
    Videoinfo=0
    Resolution_List_off=1
    Resolution_selection=13
    Width=2080
    Height=1170
    Widthpre=1920
    Heightpre=1080
    FactorScale=1
    Colorspace_selection=2
    MatrixDST=2
    MatrixSRC=0
    YUY16fix=1
    Chromare=1
    Aspect_Ratio=0
    Picture_on=0
    Watermark_on=0
    Watermark_Alpha=0
    Watermarkpos=1
    Watermarkabs1=20
    Watermarkabs2=20
    Watermarkzoom=1
    Watermarktr=0
    Subtitle_on=0
    MBlur=1
    FPS_on=1
    FPS=60
    NTSC=0
    Resizer=1
    MT=1
    RZ2=0
    BB=0
    Tweak=0
    Levels=0
    ATrack=1
    ATrackcount=2
    ATrackmix=0
    SBit=1
    SHz=5
    FSV=0
    AVSPlug=0
    MInfo=0

    [Tweak]
    Hue=0.0
    Sat=1.0
    Bright=0.0
    Cont=1.0
    Coring=True
    HSVswitch=0

    [Levels]
    Input_low=0
    Gamma=1.000
    Input_high=255
    Output_low=0
    Output_high=255
    Coring=True

    [Blockbuster]
    Method=0
    Blocksize=8
    Detailmin=1
    Detailmax=10
    Lumaoffset=0
    Lumathreshold=25
    Strength=25
    Mean=0
    Variance=1
    Cache=256
    Seed=0

    [MBlur]
    Pel=2
    Blurstrength=5.0

    [MT]
    MTSource=1,0,3,4
    MTTrim=1,0,2,2
    MTTweak=0,0,2,2
    MTBlur=0,0,2,2
    MTBB=0,0,2,2
    MTMem=0,512

    [nnedi3]
    nnedi3=0
    rfactor=2
    nsize=0
    nns=3
    qual=1
    etype=0
    pscrn=2
    cshift=9
    ep0=
    ep1=
    threads=0
    opt=0
    fapprox=15

    [ColorMatrix]
    cm=1
    mode=7
    source=0
    dest=2
    clamp=3
    interlaced=0
    inputfr=0
    outputfr=0
    hints=0
    d2v=
    debug=0
    threads=1
    thrdmthd=0
    opt=3

    [PointSize]
    ps=0
    ps_s1=0
    ps_s2=0
    ps_RGB32=1
    ps_s1_f=0
    ps_s2_f=0

  • Anzeige
    Hier das aktuelle Script, das gerade läuft
    Spoiler anzeigen
    ### SagaraS Scriptmaker - Version 6.1 ###

    ### Lade Plugins und setze die globalen Variablen ###
    LoadPlugin("C:\Program Files (x86)\SagaraS Scriptmaker\Plugins\mvtools2.dll")
    LoadPlugin("C:\Program Files (x86)\SagaraS Scriptmaker\Plugins\ColorMatrix.dll")
    Global breite = 2080
    Global hoehe = 1170
    Global AR = 0

    ### Lade Videoquellen ###
    SetMTMode(3)
    AVIload("E:\Aufnahmen\Lets Play\Minecraft Story Mode\MinecraftStoryMode_2016_12_29_22_32_52_675.avi", 0, 0, 0, -0, -0, "Auto", "Auto", 0, 0)

    ### Filter Verarbeitungszone ###
    ColorMatrix("Rec.601->Rec.709", 0, 2, 3, False, False, False, False, "", False, 1, 0, 3)

    SetMTMode(2)
    sum = MSuper(pel = 2)
    MFlowBlur(sum, MAnalyse(sum, isb = true), MAnalyse(sum, isb = false), blur = 5.0)

    (IsYUY2() == true) ? ConvertToYV16(matrix = "Rec709", ChromaResample = "Spline36") : 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.ConvertToYV12(matrix = "Rec709", ChromaResample = "Spline36") : 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.ChangeFPS(60, 1)
    }

    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.Spline36Resize(breite, ceil(float(Clip1.height * breite) / clip1.width)) : Clip1.Spline36Resize(ceil(float(clip1.width * hoehe) / clip1.height), hoehe)) : clip1.Spline36Resize(breite, hoehe).ConvertToYV12(matrix = "Rec709", ChromaResample = "Spline36")
    back = (AR == 1) ? (0 == 1) ? ImageReader("", 0, clip1.framecount - 1, clip1.framerate).ChangeFPS(Clip1.frameratenumerator, Clip1.frameratedenominator).Spline36Resize(breite, hoehe).ConvertToYV12(matrix = "Rec709", ChromaResample = "Spline36") : BlankClip(clip1, width = breite, height = hoehe, pixel_type = "YV12").KillAudio() : clip1
    Return (AR == 1) ? Overlay(back, clip1, (back.width - clip1.width) / 2, (back.height - clip1.height) / 2) : clip1
    }
    ### SagaraS Scriptmaker - Version 6.1 ###

    ### Lade Plugins und setze die globalen Variablen ###
    LoadPlugin("C:\Program Files (x86)\SagaraS Scriptmaker\Plugins\mvtools2.dll")
    LoadPlugin("C:\Program Files (x86)\SagaraS Scriptmaker\Plugins\ColorMatrix.dll")
    Global breite = 2080
    Global hoehe = 1170
    Global AR = 0

    ### Lade Videoquellen ###
    SetMTMode(3)
    AVIload("E:\Aufnahmen\Lets Play\Minecraft Story Mode\MinecraftStoryMode_2016_12_29_22_32_52_675.avi", 0, 0, 0, -0, -0, "Auto", "Auto", 0, 0)

    ### Filter Verarbeitungszone ###
    ColorMatrix("Rec.601->Rec.709", 0, 2, 3, False, False, False, False, "", False, 1, 0, 3)

    SetMTMode(2)
    sum = MSuper(pel = 2)
    MFlowBlur(sum, MAnalyse(sum, isb = true), MAnalyse(sum, isb = false), blur = 5.0)

    (IsYUY2() == true) ? ConvertToYV16(matrix = "Rec709", ChromaResample = "Spline36") : 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.ConvertToYV12(matrix = "Rec709", ChromaResample = "Spline36") : 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.ChangeFPS(60, 1)
    }

    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.Spline36Resize(breite, ceil(float(Clip1.height * breite) / clip1.width)) : Clip1.Spline36Resize(ceil(float(clip1.width * hoehe) / clip1.height), hoehe)) : clip1.Spline36Resize(breite, hoehe).ConvertToYV12(matrix = "Rec709", ChromaResample = "Spline36")
    back = (AR == 1) ? (0 == 1) ? ImageReader("", 0, clip1.framecount - 1, clip1.framerate).ChangeFPS(Clip1.frameratenumerator, Clip1.frameratedenominator).Spline36Resize(breite, hoehe).ConvertToYV12(matrix = "Rec709", ChromaResample = "Spline36") : BlankClip(clip1, width = breite, height = hoehe, pixel_type = "YV12").KillAudio() : clip1
    Return (AR == 1) ? Overlay(back, clip1, (back.width - clip1.width) / 2, (back.height - clip1.height) / 2) : clip1
    }


    dropbox.com/s/9cuxgo5m5jshgyw/…_29_22_32_52_675.avs?dl=0

    Hier die x264 Settings:
    img5.fotos-hochladen.net/uploads/x2645kp694hxwy.jpg

    Und normalerweise dauert das encoding nicht so lange (zwar immer noch eine beachtliche Zeit), das kommt daher, dass nach der Fehlermeldung kein Frame mehr generiert wird und die remaining Time damit immer weiter steigt.

    img5.fotos-hochladen.net/uploads/encodingzigu9erlo8.jpg
    1. Auflösung mal auf 2048x1152 stellen. Das ist wesentlich angenehmer für den Encoder, da es eine Modulo 8 Zahl ist. Noch schöner wäre eine Modulo 16 Auflösung.
      Deine jetzige mit 1170p ist eine Modulo 2 Auflösung. Da freut sich der Encoder nicht grad besonders drüber.
    2. Dann solltest du unbedingt mal dein MeGUI updaten lassen auf 2695 Dev Update Server
    3. Wenn es dann immer noch Probleme gibt, dann mal bitte Motion Blur ausschalten im SSM
    Dann noch eine Frage: Mit was nimmst du auf? MagicYUV oder UTVideo? Weil wenn du mit diesen Codecs aufnehmen solltest, kannst du direkt in BT.709 aufnehmen. Dann brauchst du sogar den ColorMatrix Filter nicht aktivieren.
  • @strohi
    Das mit der Mod16 Auflösung hat damit zu tun das beim Encodieren eine Fläche von 16x16 Pixel als ein Macroblock zusammengefasst wird.

    Entspricht eine Auflösung keine Mod16 Auflösung, so werden die letzten Flächen die nicht dem 16x16 Pixel Block entsprechen noch Leerdaten hinzugefügt um diese Restblöcke verarbeiten zu können. Sprich die Auflösung wird an sich künstlich vergrößert um auf diese 16x16 Block Größe zu kommen.

    Ein Decoder scheidet dann wieder diese Blöcke zurecht und gibt das Bild wieder fehlerfrei aus.

    Der niedrigste Macroblock besteht aus 2x2 und ist dem YUV 4:2:0 Farbraum zuzuordnen. Dieser Farbraum kann also keine Ungeraden Auflösungen besitzen.

    Der niedrigste Macroblock für YUV 4:2:2 ist 2x1.
    Und der niedrigste für YUV 4:4:4 ist 1x1

    Um Anfälligkeiten und Probleme durch sowas zu vermeiden, sollte man halt eine Mod16 Auflösung probieren, da dies eine Optimale Macroblock Größe entspricht.

    Der Effizienzverlust beim Encoding ist also geringer desto näher die Auflösung einer Mod16 Auflösung entspricht.

    Und rein theoretisch ist dies erst Relevant bei Hardware Player die auf bestimmte Kriterien geeicht sind.

    Daher kannst du kein Video unter 16x16 Pixel machen und abspielen und du kannst Farbraumspezifische Auflösungen wie bei YUV 4:2:0 keine ungeraden Auflösungen zuordnen, da die Mindest-Macroblock-Größe 2x2 beträgt.

    Also kannst du für YUV 4:2:0 jede durch 2 teilbare Auflösung nehmen die größer gleich als 16x16 ist.
    Und Ideal sind halt Auflösungen die in Höhe und Breite durch 16 Teilbar sind, da dies der Macroblockgröße entspricht.
  • Ah, danke für den Hinweis.
    Das mit den Makro-Blöcken wusste ich sogar schon. Du hattest da glaube ich mal encodingwissen.de oder so genannt und da wurde das erklärt.
    Danke für den link, der hat geholfen. :)

    Mir ging es aber eigentlich nur darum, dass du gesagt hast, dass 1152 im Endeffekt Modulo 8 ist. Allerdings ist 1152 durch 128 und damit auch glatt durch 16 teilbar, womit es ja für die Makro-Blöcke passen müsste, oder? Weil 128 * 16 = 2048 sowie 72 * 16 = 1152 und damit wären das 128 Makro-Blöcke in der Breite und 72 in der Höhe mit je 16 x 16 Pixeln, also glatte zahlen, ohne dass eine Reihe aufgefüllt werden muss.
    Oder täusche ich mich da?

    Aber 2048 x 1152 ist auf jeden Fall Modulo 16. Das kann sogar bis insgesamt 128 hoch gehen. :)


    Wollte es halt nur anmerken, weil du oben geschrieben hast, dass 1152p nur Modulo 8 sei und Modulo 16 noch besser sei. Es ist aber auch Modulo 16. :)
    @Sagaras
    You like music? I like pissing.
    ~Corey Taylor
  • strohi schrieb:

    Aber 2048 x 1152 ist auf jeden Fall Modulo 16. Das kann sogar bis insgesamt 128 hoch gehen
    Joa. Modulo 128 sagt man aber nicht, weil das ganz schön begrenzt an Auflösungen wäre. ^^

    Bis Modulo 16 macht man eigentlich, weil max. 16x16 Pixel ein Macroblock ergeben. Nicht mehr und nicht weniger.

    Daraus ergibt sich ja diese Schreibweise mit Mod16, Mod8, Mod4, Mod2 und Mod1

    Daraus lassen sich halt alle Auflösungen entsprechend ansprechen bis hin zur optimalen Lösung das die Auflösung nur aus 16x16 Blöcken besteht.

    Modulo 128 würde an sich heißen das es 128x128 Blöcke gibt. Gibt es aber nicht.
    Denn: 128x128 wäre Ideal, aber 16x16 nicht, weil Modulo 128. Demzufolge würden viele Auflösungen gar akzeptabel sein.
    Um aber alle Auflösungen des 16ten Teilers einzuschließen sagt man halt Mod16

    Sprich alle Auflösungen die durch 16 in Höhe und Breite teilbar sind, sind optimale Auflösungen für En- und Decoder, weil ein Macroblock aus 16x16 Blöcken besteht. Darum Mod16

    strohi schrieb:

    Wollte es halt nur anmerken, weil du oben geschrieben hast, dass 1152p nur Modulo 8 sei und Modulo 16 noch besser sei.
    Joa, das kannste gern machen. Aber wenn du mich schon korrigieren tust, dann tue das am besten auch bei anderen Usern im Technik Bereich. Die schreiben manchmal ein noch gewaltigeren Blödsinn ^^ Und die korrigiert komischerweise keiner. ^^ Aber das finden die Leute bestimmt ganz ok ^^
    Den blöden AVISynth Idioten und den dummen MeGUI Deppen die muss man ja ständig korrigieren oder anpöbeln, weil sie der Abschaum des Forums sind ^^

    Aber hey... ist OK ^^ Julien liked das bestimmt ^^

    Will damit nur sagen das ich dir zwars dankbar bin für den Hinweis und kann dir nur sagen das ich da im Kopf auf schnelle nur eine Mod8 Zahl ersehen habe bei 1152. Weil 1000 + 80 + 72 = 1152
    1000 ist durch 8 teilbar, 80 und 72 auch. Macht ein Modulo 8

    Macht sich auch schön im Kopf ^^
  • Sagaras schrieb:

    1. Auflösung mal auf 2048x1152 stellen. Das ist wesentlich angenehmer für den Encoder, da es eine Modulo 8 Zahl ist. Noch schöner wäre eine Modulo 16 Auflösung.
      Deine jetzige mit 1170p ist eine Modulo 2 Auflösung. Da freut sich der Encoder nicht grad besonders drüber.
    2. Dann solltest du unbedingt mal dein MeGUI updaten lassen auf 2695 Dev Update Server
    3. Wenn es dann immer noch Probleme gibt, dann mal bitte Motion Blur ausschalten im SSM
    Dann noch eine Frage: Mit was nimmst du auf? MagicYUV oder UTVideo? Weil wenn du mit diesen Codecs aufnehmen solltest, kannst du direkt in BT.709 aufnehmen. Dann brauchst du sogar den ColorMatrix Filter nicht aktivieren.
    Punkt 1 und 2 hatte ich gemacht, MeGui hat nach ca. 2 Stunden trotzdem wieder mit Fehlermeldung abgebrochen.

    Also Motion Blur abgeschaltet, dann ging es. Ich weiß zwar nicht ob das einmalig gewesen ist, oder wirklich der Problemverursacher (MEGui ist ja sonst auch durchgelaufen, mal beim ersten Mal, mal musste man mehrfach starten bis es sauber durch lief). Aber das wird die Zeit zeigen. Aber na ja, zumindest ist die encoding Performance ohne Motion Blut ca. 80-100 % besser ;)

    Ich nehme mit MagicYUV auf. Daher habe ich dann den ColorMatrix Filter deaktiviert.

    Eine Frage hätte ich noch, was sind eigentlich die sinnvollsten Einstellungen für Multithreading?
    So sehen meine aktuell aus:



    Und natürlich nochmal vielen Dank für die Unterstützung ;)

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