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

  • Ich wirke meist den Farben entengen mit einer Farbkorrektur und fand die Ergebnisse immer recht gut.

    Farbkorrektur? Warum?
    Ist doch nur eine Frage des richtigen Umgang mit Farbbereich und Farbmatrix. Wenn du das richtig zu nutzen weißt, sehen die Videos auch so aus als wenn du sie gerade spielst.
    Da braucht man eigentlich nix entgegenwirken.


    Hast du zufällig ein Vergleichs Video der einzelnen zum Vergleich auf YouTube ?

    Leider nicht, weil das so ziemlich keinen bisher interessiert hat.


    Es gab zwars schon Vergleichs Videos, aber der der die gemacht hat ist nur von seinem Workflow ausgegangen. Und der war halt nicht sonderlich.

  • Und da setzt der technische Hintergrund an.


    YUV 4:4:4 -> YUV 4:2:0 von YT ist besser als YUV 4:2:0 -> YUV 4:2:0
    Sofern man bei YT an die restlichen Auflösungen seines Videos denkt die gewiss skaliert werden müssen vom hochgeladenen Quellvideo.


    So viel zur technischen Sicht. Bleibt da letztlich auch visuell etwas von übrig? Ich hoffe immer noch auf einen Nachweis - gerne auch mit Einzelbildern - die zeigen, dass ein in 4:4:4 hochgeladenes Video auf YT irgendwie besser aussieht als das selbe Video in 4:2:0.


    Ich kann dir höstens soviel sagen das viele A nicht bevorzugen aufgrund des großen Speicherplatzverbrauchs der Videos.

    Die Aufnahme betreffend stimme ich da zu, bei der nachfolgenden Kodierung allerdings nicht, siehe Encoding-Talk. Und das war kein Einzelfall, sondern ließ sich problemlos mit anderen Videos reproduzieren. Der Dateigrößenunterschied zwischen einem YUV420 und einem YUV444 Encode ist lächerlich gering.
    Eine genaue Begründung dafür habe ich bisher nirgends gelesen. Die einzige Vermutung, die ich hätte, wäre folgende:
    Man habe "konstante Qualität" und das gleiche Video in 4:4:4 und 4:2:0. Nun wird beim ersten Video die konstante Qualität auf mehr Informationen "verteilt" als beim zweiten, wodurch die Qualität eben identisch ist, genau wie die ungefähre Dateigröße. Analog zum Prinzip von konstanter Bitrate, nur ist es hier eben keine konstante Bitrate, die auf eine unterschiedliche Informationsmenge verteilt wird, sondern eben konstante Qualität. Hierbei würde das erste Video allerdings nach einer Konvertierung in 4:2:0 (YouTube) qualitativ schlechter dastehen als das zweite.
    Ob das auch nur ansatzweise der Realität entspricht, wird bestimmt jemand mit mehr Erfahrung ( @Sagaras oder jemand anderes) beantworten können.


    @Karmaalp
    Vielleicht noch als Zusatz die Geschwindigkeit betreffend:
    Konvertierungen sind Geschwindigkeitskiller beim Kodieren, zumindest meiner Erfahrung nach bzgl. AviSynth und MeGUI. Siehe >hier<.


    Ich persönlich würde, wenn ich nicht skalieren täte, zu Variante C tendieren, ansonsten zu A. Variante B wäre mir zu ineffizient was die Nutzung von Ressourcen betrifft. Begründung wurde verlinkt.

  • Farbkorrektur? Warum?
    Ist doch nur eine Frage des richtigen Umgang mit Farbbereich und Farbmatrix. Wenn du das richtig zu nutzen weißt, sehen die Videos auch so aus als wenn du sie gerade spielst.
    Da braucht man eigentlich nix entgegenwirken.


    Ich bin darauf gekommen, da Gronkh dies auch macht und vom sehen es meist besser aussieht als sonst.
    Daher hab ich auch geschaut und fand das man es damit vom aussehen her bisschen beeinflussen kann.
    Obwohl es eigentlich nicht so ist, da es trotzdem 4:2:0 ist.

  • Ich sag mal so. Wenn man so einen sündhaftteuren Monitor wie ich hat, hat man nicht das Verlangen an den Farben rumzuspielen. Will damit sagen, das ihr da mehr an den Missgunsten eures Monitors friemelt. Zumal der Entwickler die Farben schon so gewählt haben wird, wie er es sich vorstellt. ^^
    Einzig bei Shadowplay hab ich die Farbsättigung von 1.00 auf 1.05 erhöht. Aber auch nur wegen der dummen tv.601 Matrix. Ich konvertier sie zwar auf 709 um und Sagaras meint zwar das wäre sehr gute interpolation, bilde mir aber trotzdem ein das direkt in 709 aufgenommen einfach marginal die kräftigeren Farben hat. Aber ich gehe wahrscheinlich eh wieder auf lossless über. Zufrieden bin ich mit der Qualität von Shadowplay zum Teil einfach nicht, sowie es zu komplexerem übergeht wie zb Project Cars.


    Das Farbsampling (4:2:0 4:2:2 oder 4:4:4 hat allerdings nichts mit der Farbsättigungsstärke zu tun ;)
    Das entfernt lediglich Farbinformationen. Bei 4:2:2 ist dann halt jeder 2. Pixel ohne Farbinformationen. Wenn man nun nicht gerade nearest neighbor für die Chroma Skalierung verwendet, wie meine Capture Karte <.< dann sind diese Pixel aber nicht farblos, sondern es wird in die Lücken rein interpoliert mit einem bestimmten Skalierer. (dürfte zumeist bicubic sein, bei SSM mit Chroma Resample angehakt wäres der Skalierer der bei der Auflösungsskalierung gewählt wurde, ansonsten wird bicubic genutzt)
    An roter Schrift sieht man es zb das die Schriften dann etwas verschwommener sind. Aber das sieht immer noch besser aus als wenn jeder 2. Pixel farblos ist ;D

  • Der Dateigrößenunterschied zwischen einem YUV420 und einem YUV444 Encode ist lächerlich gering.

    Wenn du möchtest, gebe ich der gerne ein oder zwei Videos wo das nicht der Fall ist und die Größe massiv unterschiedlich ist. Halt nicht nur ein paar MB, sondern da bewegt man sich dann schon im GB Bereich. Und das ist definitiv dann nicht 'lächerlich gering' ;D


    Encoding Talk beschäftigt sich mit Filmen wohlgemerkt. Filme sind meist allesamt im YV12 Farbraum. Und darauf baut auch Brother John auf.
    Sprich er hat gar kein echtes YUV 4:4:4, sondern bezieht sich immer auf Filme.


    Und dann... ist das auch klar: Ein YUV 4:2:0 -> YUV 4:4:4 ist das gleiche wie YUV 4:2:0
    Somit sind YUV 4:4:4 und YUV 4:2:0 identisch. Man hat dann halt den geringeren Farbraum in ein hören gesteckt ohne jeglichen Nutzen davon. Fazit: Die Dateigröße wird ähnlich, da der Inhalt sich schon gleicht. Und erreicht wird das dann durch die Kompression. Gleicher Informationsgehalt = gleiche Dateigröße. Egal in welchen Farbraum du es stecken tust ;D


    Wenn es total unkomplexes Material ist, dann ist ein YUV 4:4:4 sogar oftmals kleiner als ein YUV 4:2:0 Video.
    z.B. kann man das an Gameboy Spielen oder NES oder auch SNES nachweisen.


    bei einem komplexes Bild aber streust du weitaus mehr Feinheiten zu wo du das YUV 4:4:4 einfach nur aufblasen tust, während YUV 4:2:0 eindeutig kleiner ist.


    kannst es ja gerne selbst probieren:
    http://www.mediafire.com/file/…hfz1q/StressTest_Video.7z


    Das sind Stresstest Videos die mit AVISynth Skripten und Bildern erzeugt wurden.


    Test 1 ist ein Rauschtest mit unterschiedlichen Farben. Jeder Pixel hat eine unterschiedliche Farbe. Jeder Frame ist anders und das ganze läuft 5min. Alles RGB Quellen. 60 verschiedene Frames für Tests an 60 FPS Videos.
    Da kannste dich austoben ;D


    Und richtige Filme sind halt ein ganz anderes Gebiet als Spiele Videos. Spiele haben halt harte Kanten und sind oft wenn Vegetation oder sonstiges komplexes Zeug dargestellt werden muss recht weniger komprimierbar. Und da merkst du dann auch YV12 vs YV24. Weil dann bekommst du richtige gewaltige Unterschiede hin zwecks Dateigröße.


    YV12 ist gerade deswegen erfunden worden für Fernsehn und Co. weil man damit die Übertragungen nicht unnötig belastet damit. Dies gilt auch für DVDs, BluRays und Co. Das hat also schon sein Zweck.




    @Karmaalp
    Ich hab dir mal jetzt ein Video hochgeladen das den Unterschied zwischen einem hochgeladenem YV12 und einem hochgeladenem YV24 Video zeigt.


    Die Videos wurden in 2048x1152 hochgeladen und sind beide exakt gleich encodiert bis auf den Farbraum.
    Die Farbmatrix ist bei beiden identisch mit BT.709


    Hier nun der Vergleich: i420 vs i444
    http://screenshotcomparison.com/comparison/192352


    Hier noch mal die Videos:
    I420:


    I444:


    Der direkte Bildvergleich zeigt schon mal das bei einer niedrig eingestellten Auflösung von 720p schon Farbunterschiede auf.
    Erklärung: Beim Upload des I444 alias YUV 4:4:4 Farbraums sind mehr Infos erhalten geblieben, bei I420 alias YUV 4:2:0 nicht.

  • @De-M-oN
    Es ist schwer es ersichtlich zu machen. Es ist halt der technische Aspekt dahinter der nunmal da ist. Ob sich das Lohnt oder nicht Lohnt, das muss jeder für sich selbst wissen.


    Immerhin wenn du dir die Videos simultan anschaust nebeneinander, dann wird dir das auch noch nicht mal auffallen. Hinsichtlich der Bitrate auf YT hat sich aber schon was getan.

  • Vielleicht noch als Zusatz die Geschwindigkeit betreffend:
    Konvertierungen sind Geschwindigkeitskiller beim Kodieren, zumindest meiner Erfahrung nach bzgl. AviSynth und MeGUI. Siehe >hier<.

    Wie kann ich das verstehen ?
    Damit es "Extra" Langsamer ist ?
    Aber irgendwo hatten wir mal ein vergleich bei einem Spiel und dann den vergleich zu Gronkh.
    Da hat man halt gemerkt das dort mit Farbe und Schärfe gearbeitet wurde und in meinen Augen gute Resultate gab.

    Ich hab dir mal jetzt ein Video hochgeladen das den Unterschied zwischen einem hochgeladenem YV12 und einem hochgeladenem YV24 Video zeigt.


    Die Videos wurden in 2048x1152 hochgeladen und sind beide exakt gleich encodiert bis auf den Farbraum.
    Die Farbmatrix ist bei beiden identisch mit BT.709


    Hier nun der Vergleich: i420 vs i444
    screenshotcomparison.com/comparison/192352


    Super vielen dank echt nett.
    Man merkt wirklich nur sehr leicht den Unterschied.
    Ist die frage ob man für diese Qualität wirklich so viel Aufwand betreiben möchte.


    Was ich glaub schon mal gefragt habe aber immer noch am probieren bin ist noch mit was man Skaliert.
    von 1080p auf 1152p. Spline 64 ?

  • Was ich glaub schon mal gefragt habe aber immer noch am probieren bin ist noch mit was man Skaliert.
    von 1080p auf 1152p. Spline 64 ?

    Am besten mit einem Skalierer der wenig Ringbildung verursacht. Spline36, Spline16, Lanczos2, etc.


    Oder total ideal und am schnellsten sind Punktskalierer wie z.B. Nearest Naigthbour oder HQx oder xBRZ oder Scale_x oder oder oder....
    Punktskalierer sollten dann aber in ganzzahligen Faktoren genutzt werden. sprich 2x, 3x, 4x, usw.


    Hiermal ein Beispiel:
    Das nachfolgende Video ist mit 320x200 in RGB 60 FPS aufgenommen worden. Das Spiel hatte nativ nicht mehr.
    Das skalieren mit einem Punktskalierer hat es mir ermöglicht ohne viel Aufwand das Video auf das 6x seiner Auflösung zu skalieren.
    Mit Spline36 habe ich dann das 16:10 Video in ein 4:3 anamorphes Video gezerrt. Da spiele früher auf 16:10 meist aufgebaut waren und für den PC in 4:3 gezerrt wurden.


    Wie man sieht ist das Ergebnis sehr sauber. Hätte ich Spline36 genutzt, wäre die 6x Skalierung ein sehr unscharfes Bild geworden. So aber nicht.


    Wenn es also geringe Auflösungsänderungen sind, dann sind Sachen wie Spline36, Spline16, und und und angebracht. Wird die Skalierung größer, sollte man in Faktoren skalieren mit einem entsprechenden Punktskalierer.



    Aber du weißt wenigstens damit umzugehen und nimmst nich einfach random irgendwas, wo noch nichtmal kritische Schrift drauf ist

    Naja, wenn man generell über Farbräume und deren Farbunterabtastungen redet, sollte man auch entsprechend die Farben analysieren. Und was eignet sich da mehr als die 3 primären Grundfarben? ^^
    Immerhin betrifft das meist Schrift, Fadenkreuze oder Mauszeiger.


    Farblose Graubilder sind lediglich mit dem Y Kanal verbunden. Sprich alle Grauabstufungen von Schwarz nach Weiß sind Farben die nicht verschwimmen, da sie vom Luma Kanal dargestellt werden. In den UV Kanälen sind diese Stellen Transparent kann man sagen.

  • Oder nnedi3, aber der ist sehr langsam und am besten auch hier nur faktorskalierung. Dann haste sogar gleich scharfes Bild, aber wie ein Anti Aliasing der Grafikkarte weniger Aliasing drin. Das hat mir bei meinem alten Need for Speed 3 video in 400x300 extrem geholfen. Mit purem nearest neighbor war da sehr viel aliasing (logisch), welches nnedi3 extrem mindern konnte ohne dabei die Schärfe anzukratzen.
    xBRZ war hier nicht die Lösung, da hier unschärfe zum tragen kommt aus so'ner tiefen Auflösung heraus und appliziert auf einem 2D Vollframe.

  • ich hab mir mal das in dem VFR to CFR angeschaut... erst mit einem schon erstellten Script, dass ich eingelesen hab, dann mit einem Video...Bin auf L-Smash gegangen sowie "libav", also dass dann im Script folgendes steht


    ist das nicht ein bisschen wenig? Was muss ich dann damit anstellen?

  • Aber da wäres sinnvoller das Hauptscript zu editieren, als 2 scripte laufen zu lassen. Und VFR haste ja denke ich nicht.

    okay das Hauptscript sieht so aus.. was muss ich editieren?


  • stimmt..übersehen..


    auch dieses Script liest megui nicht



  • Okay langsam verstehe ich die zusammen hänge etc. Vielen dank noch mal.
    Wieso werden bei "kleinen" Auflösungen nicht auch Punkteskalierer benutzt ?
    Sind die damit nicht so Effizient und arbeiten dann fast gleich wie ein Spline 16 ?


    Dann noch die frage wieso immer x2 x4 usw. ?
    Würde sich dann bei 1080p nur anbieten es x2 zu nehmen ?

  • Wieso werden bei "kleinen" Auflösungen nicht auch Punkteskalierer benutzt ?

    Weil ihr alle meist mit 1080p aufnehmt und 4K für total übertrieben haltet.


    1080p x2 = 2160p alias 4K


    720p wäre dann mit x2 gleich 1440p und obliegt einer guten Auflösung und Encoding Verfahren seitens YT.


    Die meisten spielen ja auch Emulatoren mit irgendwelchen vorgefertigten Skalieren, statt die Original Auflösung aufzunehmen. Zum einen geht die Verarbeitung auch mit RGB erheblich schneller und es ist halt nativ ohne Einwirkungen auf die Grafik den die ROM ausgibt.


    Machen viele nicht, weil sie glauben das sie min. eine entsprechende Auflösung brauchen um Qualität auf YT zu erzielen.


    Und wieder andere ballern beabsichtigt mehr Pixel rein weil sie in 1440p nativ spielen. Das dies das Video aber weitaus komplexer macht, als ein 720p -> 1440p Punktskaliertes Video verstehen sie halt wieder nicht.


    Und was viele überhaupt erst gar nicht raffen ist das ihr eigener Monitor nix mit der Auflösung des Videos zu tun haben muss.


    Aber wie soll man denn Leute schon aufklären, wenn sie sowieso alles besser wissen?


    Ist doch genauso wie mit euren GPU und CPU Encodern.
    Ich meine... die Masse der Leute wirft Rendern und Encoding in einem Pott und wissen gar nicht von was sie da reden.
    Die anderen merken nicht wann GPU und wann CPU am effektivsten ist, weil dazu muss man sich ja mal Gedanken gemacht haben wie so ein Encoder in der Praxis arbeitet.


    Und all diese Irrtümlichkeiten finden sich zu Hauf im Netz und werden sogar noch geglaubt von der Masse, eben weil sie es nicht besser wissen.


    Ich sag es aber mal so: Wer sich damit wirklich richtig befasst und selbst anhand von richtigen Fakten sich erarbeitet, der wird gewiss nicht jeden Schwachsinn glauben den man so oft im Netz findet.


    Für die Masse ist ohnehin meist alles egal. Die meisten sind halt überhaupt froh wenn sie was aufnehmen können. Die interessiert das sonst nicht weiter.
    Da fehlt sozusagen die Vorstellungskraft vllt. die hinter den ganzen technischen Kram ist.
    Ich versuch es zwars oft zu erklären, auch wenn es nicht immer so schön von mir rüber kommt, aber manchmal hab ich das Gefühl das die Leute es nicht verstehen wollen. ^^


    Also muss es mir egal sein.


    Immerhin kommen die ein oder anderen dann doch irgendwann wieder an und fragen nach. Sehe dich an. Von dir hätte ich z.B. erwartet das du das alles schon weißt ;D
    Sonst suchst du dir ja auch immer die tollsten Sachen raus ^^

    Zeile 10 und 20 gefallen ihm nicht

    Zeile 10 nimmt er. Was ihm stört ist Zeile 20. Weil in Zeile 10 wird die Funktion aufgerufen und die beinhaltet Zeile 20. ^^


    Sagt dir die Fehlermeldung auch was der Fehler sein könnte?

Jetzt mitmachen!

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