[HandBrake] Unklarheiten

  • Hallo liebe Forumsteilnehmer.


    Vielleicht kann jemand von Euch bei ein wenig Licht ins Dunkle bringen?


    Bei HandBrake gibt es 2 Methoden: Qualität oder Bitrate.

    Außerdem lässt sich die Geschwindigkeit von "Ultrafast" bis "Placebo" wählen.


    Bitrate ist soweit klar: Man benennt eine Bitrate, die Dateigröße ist immer gleich, nur die Qualität verbessert sich entsprechend der Geschwindigkeit - je langsamer, desto besser.


    Bei Qualität jedoch komme ich nicht klar.


    Eigentlich sollte die Qualität immer gleich bleiben - entsprechend der Geschwindigkeit. Die Dateigröße müsste dann mit zunehmender Geschwindigkeit immer größer werden. Ein hoher Rechenaufwand sollte mit kleineren Dateigrößen bei gleichbleibender Qualität belohnt werden.


    Es ist jedoch genau umgekehrt! Und die Qualität verändert sich entsprechend.


    Also: Je höher die Geschwindigkeit, desto kleiner die Datei und desto schlechter die Qualität.


    Wie kann das sein? Was steckt dahinter? Gibt es da vielleicht einen Trick oder etwas zu beachten, damit es so ist, wie es eigentlich sein müsste - nach meinem Verständnis?


    Jetzt die eigentliche Frage:

    Ich kann eine Datei, für die ich eine bestimmte Größe anpeile, wahlweise in höherer Qualitätsstufe und höherer Geschwindigkeit oder umgekehrt enkodieren. Also z.B. wenn ich eine bestimmte Datei in 16.75 und Ultrafast enkodiere, ist sie in etwa so groß, als wenn ich sie in 18.75 und Medium enkodiere. Das Ergebnis sieht für mich identisch aus - oder ich kann keine Unterschiede in der Qualität erkennen. Die Medium Datei hat allerdings 5x so viel Rechenzeit in Anspruch genommen. Gibt es denn einen Unterschied in der Qualität zwischen Dateien, die gleich groß sind aber in unterschiedlichen Qualitätsstufen enkodiert wurden? Ich frage mich halt, wozu soll ich den Rechner 5x so lange beanspruchen, wenn am Ende das Gleiche herauskommt.


    Noch eine andere Frage:


    Würde es Sinn machen, eine Datei zuerst auf Qualität und dann nochmals im 2-Pass mit der entsprechenden Bitrate zu enkodieren? Beispiel: Ich habe 50 Dateien, die zusammen 50GB groß sein dürfen / sollen. Ich suche die entsprechende Kombination aus Qualität und Geschwindigkeit, bis im Ergebnis 50GB heraus kommen. Dann aber enkodiere ich die Dateien nochmals im 2-Pass und zwar mit den Bitraten, die bei der Qualitäts-Enkodierung herauskamen. Würde das die Qualität nochmal steigern oder ist es sinnlos?


    Danke und lG

  • Was meinst du mit "Geschwindigkeit"? Der Rechenaufwand des Presets, mit dem der Encoder nach Einsparmöglichkeiten suchen soll? Nun, das hat wohl einen gewissen Einfluss darauf, wie viel Qualität pro Bitrate erhalten bleibt. Aber es garantiert nicht, dass das Ergebnis umso besser aussieht, je länger man suchen lässt. Und es garantiert auch nicht, dass bei gleicher Qualitätsstufe die Dateigröße bei mehr Aufwand kleiner wird. Auch wenn es im Allgemeinen logisch erscheint – man wird ja erwarten: Wenn sich der Encoder wenig Zeit nimmt, nach Möglichkeiten zum Platzsparen zu suchen, wird er eher schnell etwas ungenaues abspeichern, das wahrscheinlich mehr Platz braucht als nötig. Wenn er aber genauer sucht, muss das nicht unbedingt immer zum Platzsparen führen, was auch daran liegt, dass die Bedeutung der CRF-Parameter nicht mehr die selbe ist:


    Das Verfahren CRF (Constant Rate Factor) bei x264 und x265 soll ja eigentlich garantieren, dass das Ergebnis mindestens so genau abgespeichert wird, dass der Verlust unter einer angegebenen Schwelle bleibt. Je nach Preset werden dafür verschiedene Methoden erlaubt oder vermieden. Das macht es leider so gut wie unmöglich, Ergebnisse unterschiedlicher Presets hinsichtlich Qualitätserhalt und Platzbedarf direkt zu vergleichen, vor allem weil das auch sehr stark vom Videoinhalt abhängt. Nicht jede Methode der Platzeinsparung funktioniert bei jeder Art von Videomaterial gleich gut.


    Wenn dir gleichmäßige Qualität wichtiger ist als die exakte Größe des Ergebnisses: Suche dir einmal ein Preset, dessen Zeitbedarf erträglich ist, und einen Qualitätswert, bei dem du kaum noch Verluste bemerkst, indem du eine kleine Auswahl an Filmen unterschiedlichen Inhaltscharakters mit mehreren Varianten vergleichst.


    Das 2-pass-Verfahren ist immer dann sinnvoll, wenn die Zielgröße am wichtigsten ist. Hier nützt es wenig, vorher erstmal mit Zielqualität zu experimentieren. Der zweite Durchlauf tut genau das gleiche, wie wenn du einen CRF-Wert vorgibst ... nur dass er das Optimum für eine gewünschte Zielgröße aus der Statistik des ersten Durchlaufes berechnet. Für deine Vorstellung (5 Filme auf 50 GB) wäre das Optimum eigentlich, wenn du alle 5 Filme zusammenhängend im 2-pass-Verfahren encodieren und danach wieder in einzelne Filme trennen würdest; ich nehme aber an, dass das so einfach nicht möglich ist. Nicht mal mit anderen Programmen als Handbrake.

  • Hallo und danke für Deine ausführliche Antwort, dass Du Dir die Zeit genommen hast. Das finde ich ziemlich freundlich. :)


    Zitat

    Und es garantiert auch nicht, dass bei gleicher Qualitätsstufe die Dateigröße bei mehr Aufwand kleiner wird.

    Ja, aber es ist ja ganz eindeutig und ausnahmslos so, dass die Dateigröße mit dem Aufwand größer wird. Das ist schon nochmal was anderes, als wenn das eben - je nachdem - mal mehr, mal weniger oder gar nicht Platz spart. Schon garnicht sollte die Qualität sich von Preset zu Preset deutlich unterscheiden. Finde ich jedenfalls.


    Kennst Du vielleicht ein Tool, das die Qualität einer Datei bemisst?

    Zitat

    Für deine Vorstellung (5 Filme auf 50 GB) wäre das Optimum eigentlich, wenn du alle 5 Filme zusammenhängend im 2-pass-Verfahren encodieren und danach wieder in einzelne Filme trennen würdest


    Genau die Idee hatte ich auch schon mal, in einem Forum gepostet, aber man hat mir erklärt, das wäre Blödsinn, wobei ich nicht verstanden habe, warum das so sein soll. Es ist machbar - von Hand. Aber der Aufwand ist natürlich hoch - entsprechend dem Umfang der Sammlung. 5 Dateien sind ok aber 500 - nein. Prinzipiell ließe sich das gut in das Programm integrieren. Habe das mal bei GitHub vorgeschlagen. Mal schauen, was passiert.

  • Ja, aber es ist ja ganz eindeutig und ausnahmslos so, dass die Dateigröße mit dem Aufwand größer wird.

    Kann ich nicht so pauschal bestätigen. Ich hab gerade mal einen kleinen Test mit einem separaten x264-Encoder (ohne Handbrake drum herum) durchlaufen lassen:

    Code
    1. 03.03.2020 14:27 2.213.332 foreman_cif_ultrafast.264
    2. 03.03.2020 14:27 820.226 foreman_cif_superfast.264
    3. 03.03.2020 14:27 512.033 foreman_cif_veryfast.264
    4. 03.03.2020 14:27 572.528 foreman_cif_faster.264
    5. 03.03.2020 14:27 608.112 foreman_cif_fast.264
    6. 03.03.2020 14:27 609.141 foreman_cif_medium.264
    7. 03.03.2020 14:27 605.572 foreman_cif_slow.264
    8. 03.03.2020 14:27 590.491 foreman_cif_slower.264
    9. 03.03.2020 14:27 536.353 foreman_cif_veryslow.264
    10. 03.03.2020 14:27 553.648 foreman_cif_placebo.264

    Bei meinem Beispiel wird es erstmal kleiner, dann zwischendurch ein wenig größer...


    Kennst Du vielleicht ein Tool, das die Qualität einer Datei bemisst?

    Man kann nicht die Qualität eines Videos messen. Man kann höchstens den Unterschied zwischen zwei Videos (Original und Kopie) messen und das als "Qualitätsverlust" definieren; dabei sagt das aber noch nicht viel darüber aus, wie unangenehm dieser Verlust einem Menschen auffällt.

  • Huch!!! Jetzt bin ich aber baff. Danke für das Beispiel. Finde ich ziemlich verwirrend. Jetzt verstehe ich gar nichts mehr. Ich encode x265 in 12bit - macht das einen Unterschied? Bei mir sieht es wirklich genau so aus wie beschrieben - die Dateien werden immer größer, je langsamer das Preset.


    Mit Qualität meine ich den Detailreichtum eines Videos - oder etwas in der Art. Ein detailarmes Video lässt sich viel besser komprimieren als ein detailreiches. Darum kommen ja auch ganz unterschiedliche Bitraten bei CFR heraus.

  • Äh, ja ... x265 (HEVC) ist was ziemlich anderes als x264 (AVC), und mit 12 bit Genauigkeit erst recht: Die braucht man als Hobby-Video-Komprimierer eigentlich nicht, die ist gedacht für wissenschaftliche (z.B. medizinische) Anwendungen höchster Genauigkeit, aber nicht für Kinofilme. Bei deiner unüblichen Konstellation wundern mich "unerwartete" Ergebnisse gar nicht. Mit einer solchen Kombination dürften aber auch kaum andere Anwender Erfahrungen haben.