MeGui + SSM dauert ewig

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

  • MeGui + SSM dauert ewig

    Anzeige
    Schönen guten Tag,

    ich habe mir heute nach dem ich meinen PC vor ca. 2 Monaten neu gemacht habe mal wieder MeGui und Sagaras Script Maker drauf gehauen, aber bei fast allen einstellungen die ich versuche komme ich immer über eine encoding Zeit von über 3-4 Stunden für ein 10min Video (1,44 FPS). ?(

    Quelldatei:
    1920x1080px aus dxtory mit 30fps Lagarith Lossless Codec YV12

    Hier ist das was ich als script raus bekomme, wenn ich mit SSH arbeite:

    Quellcode

    1. ### Lade Plugins und setze die globalen Variablen ###
    2. LoadPlugin("M:\SagaraS Scriptmaker2k14\Plugins\resamplehq.dll")
    3. Global breite = 2560
    4. Global hoehe = 1440
    5. Global AR = 0
    6. ### Lade Videoquellen ###
    7. SetMTMode(3)
    8. AVIload("F:\Lets Plays\###LP Cubeworld\Material\#Titanfall\Temp.avi", 0, 0, 0, -0, -0)
    9. ### Filter Verarbeitungszone ###
    10. ### Funktion für Video-Laderoutine ###
    11. Function AVIload (String file, int loading, int cl, int co, int cr, int cu) {
    12. (loading == 1) ? FFIndex(file) : nop()
    13. clip0 = (loading == 3) ? LWLibavVideoSource(file) : (loading == 2) ? Import(file).KillAudio() : (loading == 1) ? FFVideoSource(file, threads=1) : AVISource(file, false)
    14. rate1 = (Round(Float(clip0.framerate * 1000)) / 1000) / 2
    15. rate2 = Round(clip0.framerate) / 2
    16. rate = (rate1 == rate2) ? 1 : 1001
    17. ratefaktor = (rate == 1001) ? 1000 : 1
    18. clip1 = (rate == 1001) ? clip0.AssumeFPS(Round(clip0.Framerate) * 1000, rate) : clip0.AssumeFPS(round(clip0.framerate), rate)
    19. clip1 = clip1.Crop(cl, co, cr, cu)
    20. clip1 = (clip1.width == breite && clip1.height == hoehe) ? 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(matrix = "Rec601") : clip1.ConvertToRGB24(matrix = "Rec601") : clip1
    21. clip1 = (clip1.width == breite && clip1.height == hoehe) ? clip1 : (AR == 1) ? (((clip1.width * hoehe) / clip1.height > breite) ? Clip1.ResampleHQ(breite, ceil(float(Clip1.height * breite) / clip1.width), Kernel = "Spline16", dstcolorspace="RGB24", srcmatrix = "TV.601", dstmatrix = "TV.601") : Clip1.ResampleHQ(ceil(float(clip1.width * hoehe) / clip1.height), hoehe, Kernel = "Spline16", dstcolorspace="RGB24", srcmatrix = "TV.601", dstmatrix = "TV.601")) : clip1.ResampleHQ(breite, hoehe, Kernel = "Spline16", dstcolorspace="YV12", srcmatrix = "TV.601", dstmatrix = "TV.601")
    22. back = (clip1.width == breite && clip1.height == hoehe) ? clip1 : (AR == 1) ? (0 == 1) ? ImageReader("", 0, clip1.framecount, clip1.framerate).ChangeFPS(round(clip1.framerate) * ratefaktor, rate).ResampleHQ(breite, hoehe, Kernel = "Spline16", dstcolorspace="YV12", srcmatrix = "TV.601", dstmatrix = "TV.601") : BlankClip(clip1.framecount, breite, hoehe, "YV12", round(Clip1.framerate) * ratefaktor, rate).KillAudio() : clip1
    23. Return (clip1.width == breite && clip1.height == hoehe) ? clip1.ConvertToYV12(matrix = "Rec601") : (AR == 1) ? Overlay(back, clip1, (back.width - clip1.width) / 2, (back.height - clip1.height) / 2) : clip1
    24. }
    Alles anzeigen


    Hier die x264 settings:

    Quellcode

    1. program --preset veryslow --crf 20 --output "output" "input"


    Ich habe einen AMD FX 8350 mit 16GB Ram und eine Palit Geforce GTX 760 Jetstream mit 2GB.
    Das sollte ja wohl schneller von statten gehen normalerweise oder?

    PS: Wenn Infos fehlen, dann bitte bescheid geben, ich werde den Beitrag dann edetieren. :(
    Diese Signatur wurde entfernt, da gegen §5.7 und/oder §5.1e der Nutzungsbestimmungen verstoßen wurde.

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

  • x264 Settings ändern für 1440p auf
    Preset: Slow oder eventuell Medium noch
    CRF: 23 oder 24 gar.

    Das sollte schneller gehen.
    Am Skript wirste so nix weiter ändern können. Wieviel FPS hat denn das Quellvideo an sich? Nicht das du da mehr als 30 FPS durchjagen tust.

    Deine Grafikkarte wird an dem Encode nix beschleunigen können, da der Encode ausschließlich via CPU läuft. Wenn deine CPU zu schwach ist, wird das dauern.

    @De-M-oN wird dir da noch einiges zu sagen können ;D
  • Sehr gut, dann ändere ich das mal in einer 3/4 Stunde wenn der Prozess fertig ist.
    Gut, das verry slow dazu beiträgt war mit bewusst, aber das es so krass ist war mir nicht klar. :D

    Irgendwo hier im Forum gab es doch mal eine Liste mit den einzelnen CPUs wo gezeigt wurde wie viel FPS die beim rendern ungefähr haben.
    Ich suche die gerade, aber werde nicht fündig.
    Diese Signatur wurde entfernt, da gegen §5.7 und/oder §5.1e der Nutzungsbestimmungen verstoßen wurde.
  • ha ha geil, ja die riesige Tabelle meinte ich von De-M-oN und dir [Dosenbierdose]. :D

    Mal sehen ob ich gleich auf die 14 FPS komme mit den Verbesserungsvorschlägen.

    //EDITE:
    Ich habe das Video neu gerendert mit den Einstellungen und bekomme das hier dabei raus:
    youtube.com/watch?v=0INtL5lCB2s

    Dadurch das man sich hier sehr schnell bewegt verpixelt das bei den Bewegungen etc. sehr gerne und sieht nicht mehr so schön aus.
    Auf meinem PC habe ich dieses Problem nicht, da sieht alles tip top aus. (Ich weiß das YouTube da noch mal drüber geht, aber das
    die Qualität so sehr kaputt gemacht wird ist sehr komisch finde ich.)
    Diese Signatur wurde entfernt, da gegen §5.7 und/oder §5.1e der Nutzungsbestimmungen verstoßen wurde.

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

  • Was stellste denn im SSM alles ein?

    Interessant wäre Angaben für FPS, Auflösung, Resizertyp (Spline16, Spline36, ...), Resizerart (Intern, RHQ, nnedi3), Was haste bei Sonstiges eingestellt zusätzlich?

    Die Verpixelung kannste weiter einschränken in dem du in dein Spiel Motion Blur verwendest oder es mit SSM nachträglich behandelst. Bei SSM würd dir aber die Encodierzeit erhöht. Also lass es direkt vom Spiel machen.

    Der Effekt des Blurings soll das Spiel komprimierbarer machen. Du hast auf YT zu jeder Auflösungsstufe nur eine begrenzte Bitrate die sich die Bilder teilen müssen. Je mehr Bilder sich eine Begrenzte Bitrate zunutze machen wollen, desto schlechter ist es komprimierbar und desto schlechter wird das Video enden.

    Als Beispiel mal: Ein reines schwarzes Bild mit 1920x1080 hat wenn man es speichert vllt 30kb
    Ein Bild mit vielen Details und kunterbunten Farben in der gleichen Auflösung beträgt dazu 2MB

    Und jetzt stell dir das mal vor wenn es mehrere Bilder sind ;D
    Da auf YT nur eine begrenzte Bitrate zur Verfügung steht, musst du das Bild entsprechend entlasten. Vorzugsweise macht man sowas mit Bluring und niedriegen FPS.

    Aber sag uns erst einmal die Settings an.
  • Die Settings in SSH belaufen sich auf:








    Code:

    Quellcode

    1. ### Lade Plugins und setze die globalen Variablen ###
    2. Global breite = 2560
    3. Global hoehe = 1440
    4. Global AR = 0
    5. ### Lade Videoquellen ###
    6. SetMTMode(3)
    7. AVIload("F:\Lets Plays\###LP Cubeworld\Material\#Titanfall\Temp.avi", 0, 0, 0, -0, -0)
    8. ### Filter Verarbeitungszone ###
    9. ### Funktion für Video-Laderoutine ###
    10. Function AVIload (String file, int loading, int cl, int co, int cr, int cu) {
    11. (loading == 1) ? FFIndex(file) : nop()
    12. clip0 = (loading == 3) ? LWLibavVideoSource(file) : (loading == 2) ? Import(file).KillAudio() : (loading == 1) ? FFVideoSource(file, threads=1) : AVISource(file, false)
    13. rate1 = (Round(Float(clip0.framerate * 1000)) / 1000) / 2
    14. rate2 = Round(clip0.framerate) / 2
    15. rate = (rate1 == rate2) ? 1 : 1001
    16. ratefaktor = (rate == 1001) ? 1000 : 1
    17. clip1 = (rate == 1001) ? clip0.AssumeFPS(Round(clip0.Framerate) * 1000, rate) : clip0.AssumeFPS(round(clip0.framerate), rate)
    18. clip1 = clip1.Crop(cl, co, cr, cu)
    19. clip1 = (clip1.width == breite && clip1.height == hoehe) ? 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(matrix = "Rec601") : clip1.ConvertToRGB24(matrix = "Rec601") : clip1
    20. clip1 = (clip1.width == breite && clip1.height == hoehe) ? clip1 : (AR == 1) ? (((clip1.width * hoehe) / clip1.height > breite) ? Clip1.Spline16Resize(breite, ceil(float(Clip1.height * breite) / clip1.width)) : Clip1.Spline16Resize(ceil(float(clip1.width * hoehe) / clip1.height), hoehe)) : clip1.Spline16Resize(breite, hoehe).ConvertToYV12(matrix = "Rec601")
    21. back = (clip1.width == breite && clip1.height == hoehe) ? clip1 : (AR == 1) ? (0 == 1) ? ImageReader("", 0, clip1.framecount, clip1.framerate).ChangeFPS(round(clip1.framerate) * ratefaktor, rate).Spline16Resize(breite, hoehe).ConvertToYV12(matrix = "Rec601") : BlankClip(clip1.framecount, breite, hoehe, "YV12", round(Clip1.framerate) * ratefaktor, rate).KillAudio() : clip1
    22. Return (clip1.width == breite && clip1.height == hoehe) ? clip1.ConvertToYV12(matrix = "Rec601") : (AR == 1) ? Overlay(back, clip1, (back.width - clip1.width) / 2, (back.height - clip1.height) / 2) : clip1
    23. }
    Alles anzeigen
    Diese Signatur wurde entfernt, da gegen §5.7 und/oder §5.1e der Nutzungsbestimmungen verstoßen wurde.
    1. Da wo du die Videos reinziehen tust, stellst du bei FPS Ändern auf 25 FPS.
      Damit teilen sich die Frames die [lexicon]Bitrate[/lexicon] die von YT aus kommt besser.
    2. Bei Farbe machste Chroma Resample an.
    3. Zusätzlich zu der 25 FPS Änderung stellst du [lexicon]Motion Blur[/lexicon] mit an unter Sonstiges.
      Einstellungen sind: Genauigkeit 2 und Stärke 10 - 15.

      Damit Blurst du deine Bewegungen etwas und entlastest so die Framekomplexität.
      (Vorzugsweise wäre es besser solchen Effekt vom Spiel selbst darstellen zu lassen.)