MeGUI [2015] -- x264 - bester Encoder, beste Videoqualität auf Youtube ;-)

  • Danke für die Antwort nur weiß ich leider immer noch nicht [lexicon]obs[/lexicon] nun richtig oder falsch war das so anzugeben^^


    /e anscheinend wars falsch?


    Video
    ID : 1
    Format : AVC
    Format/Info : Advanced Video [lexicon]Codec[/lexicon]
    Format profile : High [email protected]
    Format settings, CABAC : Yes
    Format settings, ReFrames : 5 frames
    [lexicon]Codec[/lexicon] ID : V_MPEG4/ISO/AVC
    Width : 2 048 pixels
    Height : 1 152 pixels
    Display aspect ratio : 16:9
    [lexicon]Frame[/lexicon] rate mode : Constant
    [lexicon]Frame[/lexicon] rate : 60.000 [lexicon]fps[/lexicon]
    Original [lexicon]frame[/lexicon] rate : 59.940 [lexicon]fps[/lexicon]


    /e2


    lol da lief einiges schief..


    Das 25min Video ist nur 12 min im [lexicon]media player classic[/lexicon] und läuft doppelt so schnell ab, wtf hilfe :(

  • Hallo, liebe [lexicon]Let's Play[/lexicon] Freunde :) .
    Durch euch bin auf [lexicon]MeGui[/lexicon] umgestiegen (danke! an dieser Stelle) und bin höchst zufrieden damit!


    Dennoch habe ich ein kleines Problemchen entdeckt welches ich gerne lösen möchte:
    Wenn ich mir ein Video auf YouTube ansehe das zuvor durch [lexicon]MeGui[/lexicon] gerendert wurde merke ich, vorallem in Spielen wo es häufig Kameraschwenks gibt (z.B. Cities Skylines) das das Bild doch recht unscharf wirkt, irgendwie verwaschen.


    Hab mich jetzt ein bisschen hier im Forum umgesehen und einen hilfreichen Thread gefunden. Einfach in der Command Line: --output-csp "RGB"eingeben! SUPER! dachte ich und hab gleich mal fröhlich ein Video gerendert. Nach circa 2 Stunden sah ich dann: 8,7 GB! Für 1 Video, das vorher mit YV12 so 2-3GB hatte. Hab sofort ein zweites Video gerendert und nach 20% abgebrochen. Bereits 3,8 GB groß!


    Daher jetzt hier meine Frage: Kann ich irgendwie einstellen, dass ich in [lexicon]MeGui[/lexicon] zwar mit RGB rendere, die Datei aber nicht so immens groß wird. Es macht nichts wenn sie 4 maximal 5 GB groß ist (für eine 20 Minuten Folge) aber fast 9GB ist doch schon etwas übertrieben!


    Ich rendere nicht direkt über [lexicon]MeGui[/lexicon] sondern über [lexicon]Adobe[/lexicon] Premiere dann [lexicon]Debugmode Frameserver[/lexicon] und dann [lexicon]MeGui[/lexicon].


    MEINE EINSTELLUNGEN:
    Contast Quality mit [lexicon]CRF[/lexicon] 16, Preset: Medium, 10 Bit Enconding ist an, dann noch den Zusatz von oben: --output-csp "RGB" und fertig! Sonst ist alles auf Standardeinstellung.


    Ich möchte wenn möglich keine Qualität verlieren sondern einfach nur die Datei ein wenig kleiner haben. Geht das irgendwie mit [lexicon]CRF[/lexicon] 16 und RGB oder muss ich mit 9GB pro Video leben?

  • rgb wird groß, das ist klar..
    Das bringt dir aber rein gar nichts, wenn du nicht auch in RGB aufnimmst.
    Und selbst wenn du in RGB aufnimmst, so tut es ein YV24 beim encode ( -output-csp i444 ).
    Wenn du Premiere weglassen würdest, hättest Farbkonvertierung weniger drin.
    Bei Premiere den [lexicon]Frameserver[/lexicon] auf YUY2 stellen, wenn die Quelle YUV ist, wenn es eine RGB Aufnahme ist, den [lexicon]Frameserver[/lexicon] auf RGB.


    In welche [lexicon]Auflösung[/lexicon] codierst du denn? 1920x1080 wird Pampe auf youtube. 2048x1152 und du hast 3-fache [lexicon]bitrate[/lexicon]. Die [lexicon]FPS[/lexicon] Rate auf mind 41 [lexicon]fps[/lexicon] steigert die Qualität auf youtube weiter.

  • Also beim [lexicon]Frameserver[/lexicon] habe ich RGB32 eingestellt. Es gäbe ja auch noch RGB24 aber ich denk mal bei der Dateigröße wird das keinen wesentlichen Unterschied machen ob RGB32 oder 24 eingestellt wurde.


    Aufnehmen tue ich mit [lexicon]DxTory[/lexicon] mit dem UTVideo [lexicon]Codec[/lexicon] auf RGB.


    Und ja ich skaliere das Video auch auf 2048×1152 hoch und nutze 60fps.

  • Kannst dann einfach in i444 machen. Spart schonmal deeeutlich platz.
    Und mit CRF16 haste halt große Dateien. CRF16 ist schon eine enorme Forderung an Qualität^^ Ich selber nutze zufällig auch 16. Aber bei meinem Uploadspeed ist mir die Dateigröße ziemlich egal. Dank Root kann ich auch schon während des Encodens hochladen und mit CRF16 überholt bereits der Upload ständig den Encode. Eig. könnte ich von dem her sogar tiefer gehen xD (oder eine bessere [lexicon]CPU[/lexicon] kaufen :D )

  • Kannst dann einfach in i444 machen. Spart schonmal deeeutlich platz.


    Ich denke mal es gibt einen Unterschied zwischen RGB und i444 oder?
    RGB ist ja genau das Bild das auch aufgenommen wurde mit exakt den selben Farben. i444 wird ja auch erst "converted" das heißt doch dann wiederum schlechtere Qualität.

  • Du solltest sowieso mal deine log checken, denn die pipeline kann nur YV12, YV16 oder YV24. Ansonsten müsstest du nämlich 32bit [lexicon]x264[/lexicon] nutzen, wenns RGB sein soll. Wenn die Pipeline etwas nicht unterstütztes bekommt - zb eben RGB - dann wird dein Video zu YV12 konvertiert, während [lexicon]x264[/lexicon] es dann wieder zu RGB upsampelt (output-csp).


    YV24 hat noch volle Chroma [lexicon]Auflösung[/lexicon], liegt jedoch dann im YUV Farbraum vor und die Farbrange ist auf 16-235 reduziert, RGB ist halt 0-255. Insofern ist dann 16 = 100% Schwarz und 235 = 100% weiß. Das heißt wir haben hier etwas engere Auswahl an Farbhelligkeiten.


    Unterschied ist dennoch recht marginal. YV12 ist dann aber schon ein merklicher Verlust.

  • Du solltest sowieso mal deine log checken, denn die pipeline kann nur YV12, YV16 oder YV24. Ansonsten müsstest du nämlich 32bit [lexicon]x264[/lexicon] nutzen, wenns RGB sein soll. Wenn die Pipeline etwas nicht unterstütztes bekommt - zb eben RGB - dann wird dein Video zu YV12 konvertiert, während [lexicon]x264[/lexicon] es dann wieder zu RGB upsampelt (output-csp).


    YV24 hat noch volle Chroma [lexicon]Auflösung[/lexicon], liegt jedoch dann im YUV Farbraum vor und die Farbrange ist auf 16-235 reduziert, RGB ist halt 0-255. Insofern ist dann 16 = 100% Schwarz und 235 = 100% weiß. Das heißt wir haben hier etwas engere Auswahl an Farbhelligkeiten.


    Unterschied ist dennoch recht marginal. YV12 ist dann aber schon ein merklicher Verlust.


    Und was soll ich jetzt in die Command Line schreiben? --output-csp "i444" oder --output-csp "RGB"? Und was soll ich beim [lexicon]Debugmode Frameserver[/lexicon] auswählen? RGB24 oder RGB32?

  • Und was soll ich jetzt in die Command Line schreiben? --output-csp "i444" oder --output-csp "RGB"?


    i444, wie gesagt - kleinere Datei und die Pipeline damit du 64bit [lexicon]x264[/lexicon] trotz 32bit [lexicon]avisynth[/lexicon] nutzen kannst unterstützt nur YV12, YV16 und YV24 und von daher wirste durch output-csp rgb tatsächlich durch die pipeline zu YV12 konvertiert haben und dann von YV12 heraus auf RGB wieder hochgesampelt. Das natürlich nicht sonderlich sinnbehaftet :D


    Und was soll ich beim [lexicon]Debugmode Frameserver[/lexicon] auswählen? RGB24 oder RGB32?


    Das, was du hübscher findest. Falls du mit [lexicon]Avisynth[/lexicon] jedoch Filter verwendest, welche RGB32 benötigen (wie zb Overlay, wenn du ein Bild mit Transparenz auftragen willst) machts natürlich Sinn RGB32 direkt zu nehmen, dann muss [lexicon]Avisynth[/lexicon] nicht erst changen (wobei die Wandlung wahrscheinlich eh im nuancen bereich zeit kostet, aber dennoch kann man das ja mitnehmen, wenn man es bloß anders anpunkten brauch.

  • So ich hab jetzt mal das Video hochgeladen und veröffentlicht aber leider habe ich 0 Qualitätsunterschied feststellen können ?(
    Hier mal zum Vergleich die letzte Folge mit alten Einstellungen: https://youtu.be/RUIp06vzqCM und die neue https://www.youtube.com/watch?v=akCO1R0iwGE.


    Jetzt habe ich folgende Idee: Ich könnte doch statt --output -csp "i444" einfach wieder statt i444 RGB nehmen und den [lexicon]CRF[/lexicon] Wert auf 20 erhöhen. Würde das mehr Qualität bringen oder scheiterts dann wieder an dem höheren [lexicon]CRF[/lexicon] Wert?


    Was ich noch nicht so ganz verstanden habe ist das mit dem 64bit und 32bit [lexicon]x264[/lexicon] :?:



    Ich fasse hier jetzt noch mal meine Einstellungen zusammen vom Aufnehmen bis Hochladen.


    .) In [lexicon]DxTory[/lexicon] benutze ich UTVideo mit RGB.
    .) In [lexicon]Adobe[/lexicon] Premiere füge ich meine Audio/Video Spuren zusammen und exportieren sie dann über den [lexicon]Debugmode Frameserver[/lexicon].
    .) Im [lexicon]Frameserver[/lexicon] habe ich die Einstellung RGB32 gewählt.
    .) In [lexicon]MeGui[/lexicon] erstelle ich mit dem [lexicon]AviSynth[/lexicon] Script Generator (blicke beim [lexicon]SSM[/lexicon] überhaupt nicht durch :P ) ein .avs script. Dort füge ich noch ein: Spline64Resize(2048,1152) um eine höhere Qualität auf YouTube erzielen zu können.
    .) Bei den [lexicon]MeGui[/lexicon] Einstellungen schreibe ich dann in die Custom Comand Line: --output -csp "i444" (falls ich mit RGB und einem höheren [lexicon]CRF[/lexicon] Wert eine bessere Quali bekomme (FRAGE AN DICH DEMON) steht dort natürlich RGB und nicht i444), außerdem stelle ich die B-Frames auf 0.


    Ja und das wars eigentlich auch schon. Gibt's hier irgendeinen Fehler oder sonst was? Um ehrlich zu sein hatte ich, zumindest bei Cities Skylines, mit [lexicon]Adobe[/lexicon] Premiere Pro eine bessere Qualität als mit [lexicon]MeGui[/lexicon] ...



    Edit: Mein Preset ist Medium

  • Jetzt habe ich folgende Idee: Ich könnte doch statt --output -csp "i444" einfach wieder statt i444 RGB nehmen und den [lexicon]CRF[/lexicon] Wert auf 20 erhöhen. Würde das mehr Qualität bringen oder scheiterts dann wieder an dem höheren [lexicon]CRF[/lexicon] Wert?


    Um diesen Effekt eines höheren Farbraum encodierten Videos zu sehen, so wie du es mit [lexicon]MeGUI[/lexicon] gemacht hast, sollten die nachfolgenden Kriterien vorher erfüllt worden sein:

    • Spiel sollte in RGB24/32 oder YUV444 aufgenommen worden sein
    • Das Spiel darf entweder nicht skaliert werden oder wenn dann mit einem Point Skalierer wie Nearest Neighbor, HQ2x, LQ3x, 4xBRZ, etc pp. eine Faktorskalierung machen und dann sehr seicht mit Spline100, oder Spline16 runterskalieren auf Wunschmaße. Das Video darf nicht vorher von anderen Filtern interpoliert werden. (Sehr große Gefahr bilden da NLEs mit ihren Massen an Effekten)
    • Es darf wärend der gesamten Übergaben durch [lexicon]Frameserver[/lexicon] und Co. keine Farbraumkonvertierung stattfinden.
      Immer drauf achten das folgendes Schema gilt:
      RGB24/32 -> YUV444 -> YUV422 -> YUV420


      Es darf nicht dieses Schema gelten:
      YUV420 -> YUV422 -> YUV444 -> RGB24/32


      Das letzte Schema beinhaltet Verlust der Farbe (Chroma) des Farbraumes. Eine Interpolation auf den nächst höheren Farbraum würde also 0 Effekt bringen.

    • Die Command Erweiterung für [lexicon]x264[/lexicon] mit --output-csp i444 ist nur dann effektiv, wenn man [lexicon]MeGUI[/lexicon] auch sagt das er im Skript kein ConvertToYV12() reinschreiben soll.
      VORSICHT AN DIESER STELLE!!!!


      Oft ist es so das User da einfach weiter klicken und mit ok bestätigen, aber sich die Frage gar nicht durchlesen die von [lexicon]MeGUI[/lexicon] da kommt. Bzw. haben die Meldung schon ganz ausgeschaltet.


      [lexicon]MeGUI[/lexicon] versucht nämlich zuerst ein ConvertToYV12() ins [lexicon]AVISynth[/lexicon] Skript zu schreiben.
      Somit würde folgender Effekt entstehen:
      RGB32 -> YV12 -> YUV444


      Und das ist Witzlos, da dann das Video nicht mehr Infos beinhalten kann als YV12. Da es der geringste Farbraum ist.


      Die Frage ob [lexicon]MeGUI[/lexicon] das reinschreiben soll, muss mit nein geantwortet werden. Erst dann ist es möglich.
      RGB32 -> RGB32 -> YUV444


      Auch hier wieder ACHTUNG bei der Wahl des Encoders für [lexicon]x264[/lexicon] hinsichtlich x64 vs x86.
      Die 32Bit Version kann jeden Farbraum nutzen.
      Die 64Bit Version ist zusammen mit [lexicon]AVISynth[/lexicon] mit einer Pipeline gekoppelt die ledeglich nur YV12 (YUV420), YV16 (YUV422) und YV24 (YUV444) umgehen kann. Sollten falsche Farbinformationen an die Pipeline gelanden, wie RGB24 oder RGB32, so wird die Pipeline dafür sorgen das es ein YV12 Video am [lexicon]Encoder[/lexicon] ankommt.


      Sprich wer die 64Bit Version von [lexicon]x264[/lexicon] bei [lexicon]MeGUI[/lexicon] nutzt, der sollte das Skript so abändern das er auf YUV444 konvertiert mit BT.709 als Farbmatrix.


      Sehr leicht im [lexicon]SSM[/lexicon] z.B. einzustellen


    Sind diese Kriterien nicht erfüllt, so wird man keinen Effekt ersehen können und hat im Endeffekt nur ein sehr großes Video in YUV444 kodiert was eigentlich nur YV12 Material beinhaltet.


    PS: Man sollte sich auch nicht zuviel von diesem Effekt versprechen. Es ist nur ein Minimaleffekt, da YT dann wirklich mit dem saubersten Video was hochgeladen wird den YT-Encode vollzieht. Und dieser Effekt fällt meist besser aus, da keine Unreinheiten des Farbraumes (Interpolations Effekte) enthalten sind.

  • Also wäre es ja fast besser gar nicht mit [lexicon]Spline64[/lexicon] auf 2048×1152 hochzuskalieren.


    Und natürlich lese ich die Frage von [lexicon]MeGui[/lexicon] wegen ConvertToYV12. Da drücke ich dann immer nein.


    Und noch eine Frage hätte ich: Wie kann ich denn einstellen ob ich x64 oder x86 will?


    EditEdit: Kannst vielleicht du oder jemand anderer der sich mit [lexicon]MeGui[/lexicon] auskennt die Einstellungen die ich ändern muss um eine RGB oder i444 Qualität haben zu können zusammenfassen und mir schicken? Ich habe alles auf Standardeinstellungen bis auf die B-Frames.

  • Also wäre es ja fast besser gar nicht mit [lexicon]Spline64[/lexicon] auf 2048×1152 hochzuskalieren.


    [lexicon]Spline64[/lexicon] ballert dir ordentlich Ringing Artefakte mit ein und skaliert sehr scharf. Daher benötigt ein [lexicon]Spline64[/lexicon] skaliertes Video sehr viel [lexicon]Bitrate[/lexicon] auf YT.
    Du musst allerdings anders denken. Je neutraler ein Skalierer ist bzw. weicher, umso mehr [lexicon]Bitrate[/lexicon] wirst du von Youtube bekommen. Je weicher ein Bild ist, desto weniger [lexicon]Bitrate[/lexicon] wird benötigt und desto besser wird das Bild auf YT auch werden.
    [lexicon]Auflösung[/lexicon] am besten die 1152p Marke nutzen beim skalieren.
    PointResizer dienen bei RGB24/32 und YUV444 am besten in Faktoren zu skalieren. Das sind die schärfsten Skalierer die es gibt. Eine Faktor 2 Skalierung und anschließend ein Interpoliertes Downscaling würde einen weichen und doch scharfen Effekt mit sich bringen, wo [lexicon]Bitrate[/lexicon] recht gut gesparrt werden kann.


    Und noch eine Frage hätte ich: Wie kann ich denn einstellen ob ich x64 oder x86 will?


    [lexicon]MeGUI[/lexicon] -> Options -> Settings -> External Program Comfiguration
    Unten Rechts steht dann irgendwo: "[lexicon]x264[/lexicon]: enable 64 bit mode"


    Ist diese Option angehakt, so verwendest du den 64 Bit [lexicon]Encoder[/lexicon] von [lexicon]x264[/lexicon].
    Ist diese Option aus, so verwendest du den 32 Bit [lexicon]Encoder[/lexicon] von [lexicon]x264[/lexicon]

  • Ok dann bin ich jetzt etwas schlauer geworden.
    Werde morgen gleich mal ne kleine Testaufnahme starten mit deinen empfohlenen Einstellungen und dann berichten ob die Qualität stimmt.


    An dieser Stelle auch ein dickes Dankeschön an euch das ihr mir hier weiterhelft.


    Edit: Werde auch mal Spline16Resize(2048,1152) verwenden.

  • Wenn du z.B. in 1080p schon aufnehmen solltest, so fehlt dir ja nicht mehr viel bis 1152p. Da bräuchtest du dann keine Faktoren Skalierung zu verwenden. Da reicht wirklich dann ein neutraler Skalierer wie Spline36, Spline16 oder Spline100 aus.


    Bei 720p Aufnahmen würde ich eine Faktorenskalierung empfehlen. 720p -> 1440 -> 1152
    Erst die Faktorenskalierung mit einen Point Resizer und dann der Finale Skalierer mit halt Spline36, etc, pp.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!