Ich brauche Hilfen beim Encoden mit Magix MX

  • Ja die GOP hatte ich auf 0 eingestellt...

    In dem Tutorial wird ja folgende Command Line verwendet, wobei die FPS noch anzupassen sind:

    Code
    --keyint infinite --min-keyint 1 --fps 60.000 --range tv --colorprim bt709 --transfer bt709 --colormatrix bt709 --bframes 5 --partitions all

    Der Teil --keyint infinite --min-keyint 1 beschreibt die GOP-Länge - mit keyint infinite kann sie beliebig lang werden. Das wirkt sich zwar positiv auf die Kompressionseffizienz aus, aber damit killst du dir halt lokal die Spulbarkeit - sehr ungeil, wenn man da zum Schluss vor'm Hochladen nochmal drüberschauen möchte. Ich würde dazu raten, den Teil zu löschen - also folgende Command Line zu verwenden.


    Code
    --fps 60.000 --range tv --colorprim bt709 --transfer bt709 --colormatrix bt709 --bframes 5 --partitions all

    Die Angabe bei FPS musst du halt wieder an deine Bedürfnisse anpassen.

  • Hui, der MPC Player ist bei mir noch schlimmer als der VLC. Alle 4 Sekunden ein Tonaussetzer und beim Vorspulen ein Zusammenbruch...
    Aber egal, ich lade das Video heute Abend mal hoch. Soll ich den Link dann morgen mal posten? Es würde mich mal interessieren, ob ihr das für ein sooo schwer zu encodendes Video haltet.



    Welchen GOP Wert müsste ich denn einstellen, damit ein Video nicht zu groß wird, aber trotzdem noch spulbar ist?

  • Welchen GOP Wert müsste ich denn einstellen, damit ein Video nicht zu groß wird, aber trotzdem noch spulbar ist?


    "Nicht zu groß" ist natürlich eine sehr geile Angabe. :P Das müsstest du halt selbst ausprobieren.


    Was die Spulbarkeit angeht, stell es dir so vor: Bei einer GOP-Länge von 300 wird bei einem Video mit 30 FPS alle 300 Frames (also alle zehn Sekunden) ein vollwertiger I-Frame gesetzt. Wenn du jetzt irgendwo dazwischen hinspulen willst, muss der Decoder zum letzten I-Frame zurückspringen (also maximal zehn Sekunden) und für alle nachfolgenden Frames die Unterschiede berechnen. Das ist so ungefähr der Standard.


    Bei einer unendlichen GOP-Länge (also 0) kann es durchaus sein, dass die I-Frames noch weiter auseinanderliegen und der Decoder noch länger errechnen muss, wie der momentane Frame aussieht. Bei Videos mit Standbildern gibt es sogar nur einen einzigen I-Frame und der Decoder muss bei jedem Spulvorgang direkt zum Anfang zurückspringen. Das dauert dann natürlich sehr viel länger.

  • Julien: Ja das leuchtet mir ein. Aber bei der Action in dem Video dürften viele viele I-Frames gesetzt worden sein. Sehr komisch.


    RealLiVe: Jetzt wo du es schreibst fällt mir ein, dass ich die 60fps vergessen habe in 50fps zu ändern. Vielleicht liegt es ja da dran.

  • Ja aber wenn ich da den Wert 0 eingebe, setzt das Programm doch automatisch die I-Frames, oder bin ich noch immer neben der Spur?

  • Ja, und im extremsten Fall eben ganz am Anfang einen einzigen I-Frame, während das komplette Video danach nur noch aus B- und P-Frames besteht. ;) Deswegen bin ich kein Freund davon, weil ich meine Videos immer noch mal lokal kontrollieren möchte, und das geht mit unendlicher GOP-Länge einfach nicht wirklich.

  • Wie gesagt, normal sind so das Zehnfache der FPS üblich. Du kannst ja aber auch mal das 20-fache ausprobieren und schauen, wie sich das auf die Dateigröße auswirkt. Hierbei kommt es halt einfach auf Tests an, da es keinerlei pauschale Angaben gibt, was "besser" ist.

  • Ja das werde ich mal austesten, was für meine Videos am besten ist...



    Aber gerade hat sich ein neues Problem aufgetan:


    Ich habe letzte Nacht das unspulbare Video auf youtube hochgelagen und es ist gerade fertig geworden...


    Aber es wird bei Youtube nicht als HD gelistet und ist nur in 360p verfügbar!


    Hier das Video bei Youtube



    Was ist da nur wieder schief gelaufen? Das ist gar nicht gut.

  • Ich bin gerade nam Ausprobieren und möchte über nacht noch mal etwas encoden lassen.


    Wo genau stelle ich eigentlich den GOP ein? Ich hab leider nichts gefunden...

  • Wenn du den x264vfw verwendest, dann stellst du die GOP-Länge mit den Parametern --keyint und --min-keyint im Feld Extra Command Line ein. Mehr zu den Parametern incl. Erklärungen findest du auf Encodingwissen.


    Die Werte für diese beiden Parameter, die im Guide von @GrandFiredust stehen, lassen dem Codec da zwar maximalen Freiraum, machen die Videos aber unspulbar. Ich würde empfehlen, sie wie in meinem vorherigen Beitrag beschrieben rauszuschmeißen - dann greifen die Standardwerte dafür, die auch in Ordnung sind.


    MfG

  • Wenn du den x264vfw verwendest, dann stellst du die GOP-Länge mit den Parametern --keyint und --min-keyint im Feld Extra Command Line ein. Mehr zu den Parametern incl. Erklärungen findest du auf Encodingwissen.


    Die Werte für diese beiden Parameter, die im Guide von @GrandFiredust stehen, lassen dem Codec da zwar maximalen Freiraum, machen die Videos aber unspulbar.

    Machste halt als Ausgleich den Parameter --scenencut auf einen höheren Wert, dann sind die Videos wieder Spulbar. Weil du damit einfach mehr I-Frames wieder hast. ^^


    Standardmäßig ist --scenencut auf 40 eingestellt. Ergo müssen sich Frames die nebeneinander stehen in 40% unterscheiden damit ein I-Frame geschrieben wird und somit anspulbar ist.


    Wenn du jedoch --keyint und --min-keyint einen Wert zuordnest, werden abgesehen von diesen 40% von --scenencut mehr I-Frames gesetzt als Üblich und man kann somit besser spulen.


    I-Frames = Schlüsselbilder (Keyframes)



    @Kaldan DE
    Faustregel ist an sich eigentlich ganz einfach bei der GOP Erstellung:


    --keyint = FPS * 10
    --min-keyint = FPS


    Referenzframes sollten 3 - 5 genutzt werden. Auf keinen Fall höher. Es sei denn man hat einen Trickfilm/Anime vor sich.
    Sprich:
    --ref = 3
    bis
    --ref = 5


    sind Werte die in Ordnung sind. Je höher das Ganze, desto länger wird die Codierzeit.
    Standardwert ist meist 3 und sollte auch so gelassen werden.


    Will man Speicherplatz etwas sparen und somit auch die Codierzeit, so kann man halt --keyint auf infinite setzen und --min-keyint auf 1



    Normal sollten nur 3 B-Frames hintereinander stehen. Sprich der Wert --bframes sollte den Wert 3 haben für die x264 Presets superfast bis slower.


    Bedeutet das selbst mit einen --b-adapt 1 (Standard) 5 B-Frames ein langsameres Encoding liefern, als wenn man jetzt den Wert 3 nutzt.


    Optimal für die B-Frame Verteilung ist --b-adapt 2 (etwas langsamer, als 1) und --bframes 5.


    Auch optimal wäre --b-adapt 1 (Schnell (Standard)) und --bframes 16.


    Oder man lässt beide Angaben weg und nutzt den Standard von: --b-adapt 1 --bframes 3


    Könnt euch ja für eins entscheiden. ^^ Die Angaben haben Schlussendlich eine Teilauswirkung auf die Dateigröße und der Darstellung der Bilder. Je mehr I-Frames im Video integriert sind, desto sauberer sind die Kopien von B und P Frames die ja dann als Referenz die I-Frames nutzen.



    Und bitte, beim x264vfw immer die FPS mit angeben. Und zwars immer die, die beim Output der VFW anliegt.


    Sprich: Wenn du dein Video encodieren willst und die FPS unter AVI einstellst, dann muss das genau die gleiche sein die du dann in der VFW Schnittstelle von x264vfw angibst.


    Der Parameter --partitions sollte wenn möglich nicht so viele Angaben bekommen. Diese drückt ebenfalls auf die Encodierungs-Geschwindigkeit
    In der Regel brauch dieser Parameter nicht angegeben werden, denn für HD Auflösungen eine Partitionsgröße eines Macroblocks von P4x4 ist sehr Untypisch oder besser gesagt recht selten zu finden.



    Im Endeffekt sollte das Ganze so aussehen für ein 60 FPS Video bei der Verwendung des x264vfw:
    --fps 60 --keyint 600 --min-keyint 60 --range tv --colorprim bt709 --transfer bt709 --colormatrix bt709


    Und bitte das Preset medium oder slow nutzen. Schnellere Presets verursachen immer schlechtere Einstellungen des Encoders.


    Und bei der Verwendung von CRF am besten so zwischen 18 bis 25 halten. Je niedrieger, desto besser wird die Qualität. 18 wäre da schon ein recht sehr guter Wert. 23 wäre Standard.


    Das musst du dann aber wissen.

  • Moin! Und danke für die ausführlichen Tipps.


    Ich bin in den letzten Tagen zu nichts gekommen, will heute aber einen neuen Versuch wagen...


    Wenn ich also alles richtig verstanden habe, sollten meine Werte etwa so aussehen:


    --keyint 500 --min-keyint 50 --fps 50.000 --range tv --colorprim bt709 --transfer bt709 --colormatrix bt709 --b-adapt 2 --bframes 5 --partitions all


    Preset habe ich slow gewählt und CRF 18. Ist das OK so?



    Bei Encodingwissen.de habe ich folgendes gelesen:


    Allgemeine Psy-Optimierung für Kinofilme.
    --deblock -1:-1 --psy-rd 1.0:0.15


    Was macht das und sollte ich das mit einfügen?

  • Bei Encodingwissen.de habe ich folgendes gelesen:


    Allgemeine Psy-Optimierung für Kinofilme.
    --deblock -1:-1 --psy-rd 1.0:0.15


    Was macht das und sollte ich das mit einfügen?


    Was das macht, weiß ich nicht genau, aber es sind auf jeden Fall irgendwelche Filter. Davon würde ich für Let's Plays und so was grundsätzlich abraten, da wir hier einfach komplett anderes Bildmaterial haben als Kinofilme. Jegliche Filter würden hier vermutlich eher nur stören.

  • Den Parameter --partitions all einfach mal weg lassen. In der Regel kommen P4x4 Macroblocks nicht auf bei Standard HD Auflösungen.
    Wenn du es weg lässt, wird der Encode minimal schneller.


    Psy Optimierungen einfach weg lassen. Die sind für Filme ausgelegt und nicht für Spielvideos.


    Zudem sind deine angegebene Parameter dazu teil der Tuning Vorgabe und wäre das gleiche, als wenn du --tune film eingibst.


    Lass die Angabe aber einfach weg. Das ist wie gesagt für Filme interessant und nicht für Spielvideos.


    Einfach aus dem Grund das Filme Block Fragmente aufweisen, die mit Deblock nachgebessert werden können. Bei Spiele hat man diesen Effekt nicht.


    Die PsyRD (psychovisuelle Stärke) ist ebenfalls für bereits verlustbehaftetes Material vorgesehen und trägt zur Kompression bei. Dabei können Artefakte entstehen. Diese Artefakte werden üblicherweise mit Deblock ausgeglichen.
    Resultat ist aber das es am Ende schlechter aussieht, als wenn man es weg lässt.


    Für Filme, Anime, etc. ist das interessant, da man Filme oder Anime somit weitaus besser komprimieren kann.


    Für Zeichentrick, Anime und Konsorten nutzt man die Vorlage: --tune animation die aus folgenden Parametern besteht:
    --bframes <um 2 erhöhen> --deblock 1:1 --psy-rd 0.4:0.0 --aq-strength 0.6 --ref <verdoppeln, falls größer als 1; sonst 1>



    Die FPS Angabe würde ich vllt. auch noch in rationalen Zahlen angeben. Das wäre besser denk ich.
    Deine Angabe müsste also wie folgt lauten:
    --fps 50/1 --keyint 500 --min-keyint 50 --range tv --colorprim bt709 --transfer bt709 --colormatrix bt709


    Das reicht absolut aus und wird gewiss seinen Zweck mit Zufriedenheit erfüllen.

  • OK, aber ich mache ja hauptsächlich "Realfilme" und nur selten mal ein Let's Play. Mir geht es bei den Einstellungen ja vordringlich um gute Qualität von HD Videos. Aufgenommen sind die Videos mit einem Panasonic Full-HD-Camcorder mit 1080p und 50fps.

  • Wie gesagt dienen die PsyRD und Deblock Sachen einzig und allein der Kompression und nehmen den Frames Qualität eher weg. Du wirst damit mehr Fragmente einbauen im Nachhinein.


    Kannst dich also entscheiden: gute Qualität oder kleinere Dateigröße, dank besserer Kompression. Beides geht nicht. ^^

Jetzt mitmachen!

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