x264 encoding mit Handbrake: CRF / Presets

  • Hallo,

    ich möchte Video-Dateien (1920*1080, 16:9) mit Handbrake x264 reencodieren (1920*X, gecroppt).

    Da ich die reencodierten Videos über einen HD-Beamer auf einer 3m Leinwand schauen möchte, soll eine entsprechend hohe Qualität behalten werden. Daher habe ich mit CRF 16 und 18 experimentiert.

    Ich habe jeweils einen Teil zweier Videos mit verschiedenen Einstellungen reencodiert.

    Diese Einstellungen waren bei allen Tests gleich:

    Codec: x264
    x264 Tune: Film
    H.264 Profile: High
    H.264 Level: 4.0


    Das Quellviedeo der 1. Tests hatte ein Bits/(Pixel*Frame)-Verhältnis von 0.588. Ich habe einen 11-Minutenausschnitt reeoncodieren lassen.

    Hier das Bits/(Pixel*Frame)-Verhältnis des Produkts und die Reencoding-Dauer pro Durchlauf:

    CRF 16 -> Bits/(Pixel*Frame): 0.544-0.547

    Preset "faster": 16 Minuten
    Preset "slow": 47 Minuten


    CRF 18 -> Bits/(Pixel*Frame): 0.346-0.348

    Preset "faster": 14 Minuten
    Preset "slow": 42 Minuten


    Das Quellviedeo der 2. Tests hatte ein Bits/(Pixel*Frame)-Verhältnis von 0.749. Diesmal habe ich einen 15-Minutenausschnitt reeoncodieren lassen.


    CRF 16 -> Bits/(Pixel*Frame): 0.796-0.834

    Preset "faster": 23 Minuten
    Preset "fast": 38 Minuten
    Preset "medium": 46 Minuten
    Preset "slow": 67 Minuten


    CRF 18 -> Bits/(Pixel*Frame): 0.507-0.544

    Preset "faster": 20 Minuten
    Preset "fast": 34 Minuten
    Preset "medium": 42 Minuten
    Preset "slow": 61 Minuten


    Hier die Settings je Presets in Handbrake :

    bei allen gleich:

    cabac=1 / deblock=1:-1:-1 / analyse=0x3:0x113 / psy=1 / psy_rd=1.00:0.15 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / hreads=6 / lookahead_threads=1 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_bias=0 / weightb=1 / open_gop=0 / keyint=240 / keyint_min=24 / scenecut=40 / intra_refresh=0 / rc=crf / mbtree=1 / crf=16.0/18.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00

    Unterschiede:

    faster [INDENT][INDENT][/INDENT]ref=2 / me=hex / subme=4 / mixed_ref=0 / chroma_qp_offset=-1 / b_adapt=1 / direct=1 / weightp=1 / rc_lookahead=20[/INDENT]

    fast [INDENT][INDENT][/INDENT]ref=2 / me=hex / subme=6 / mixed_ref=1 / chroma_qp_offset=-3 / b_adapt=1 / direct=1 / weightp=1 / rc_lookahead=30[/INDENT]

    medium [INDENT]ref=3 / me=hex / subme=7 / mixed_ref=1 / chroma_qp_offset=-3 / b_adapt=1 / direct=1 / weightp=2 / rc_lookahead=40[/INDENT]

    slow [INDENT]ref=5 / me=umh / subme=8 / mixed_ref=1 / chroma_qp_offset=-3 / b_adapt=2 / direct=3 / weightp=2 / rc_lookahead=50[/INDENT]


    Wie sind eure Erfahrungen und Empfehlungen? Welcher CRF und welches Preset lohnt sich und würdet ihr empfehlen für entsprechend hohe Qualität?

    Danke im Vorraus!

  • Danke fuer die Antwort.

    Wow das ist ja praktisch einfach :) Also bei slow gar keine Settings "feinjustieren"?

    Das passt auch:
    H.264 Profile: High
    H.264 Level: 4.0
    ?

    Gruss

  • Das Preset/Tuning-System wurde schon von den Entwicklern so gut justiert, dass es bei den meisten Filmen gute Ergebnisse liefern sollte, und an den spezifischen Parametern sollte man nur etwas ändern, wenn man x264 mindestens ebenso gut kennt wie deren Entwickler...

    Profile und Level dienen der Kompatibilität mit Abspielgeräten, deren Decoderchips und Datenträger-Ausleseverfahren ihre technischen Grenzen haben. Wenn das Ergebnis auf einem schnellen PC laufen soll, kann dir das relativ egal sein; wenn es auf einem mobilen Gerät oder einem Consumer-Player in der Schrankwand laufen muss, dann musst du auch deren Grenzen kennen und beachten.

  • Super, danke, dann werde ich der Empfehlung von Selur folgen!


    Das Preset/Tuning-System wurde schon von den Entwicklern so gut justiert, dass es bei den meisten Filmen gute Ergebnisse liefern sollte, und an den spezifischen Parametern sollte man nur etwas ändern, wenn man x264 mindestens ebenso gut kennt wie deren Entwickler...

    Profile und Level dienen der Kompatibilität mit Abspielgeräten, deren Decoderchips und Datenträger-Ausleseverfahren ihre technischen Grenzen haben. Wenn das Ergebnis auf einem schnellen PC laufen soll, kann dir das relativ egal sein; wenn es auf einem mobilen Gerät oder einem Consumer-Player in der Schrankwand laufen muss, dann musst du auch deren Grenzen kennen und beachten.

    Danke. Mein Haupt-HTPC im Wohnzimmer ist leistungsstark. Nur moechte ich mir fuers Schlafzimmer noch einen Raspberry PI B anschaffen und mit OpenELEC betreiben der auf die gleichen Daten zugreift. Koennt ihr fuer einen Raspberry PI ein Profil und Level empfehlen?

  • Also so niedrig wie moeglich? High@L4.0 ?

    Die Raspberry PI's sollen eh nicht alles abspielen. Bei zu hohen Bitraten soll es ruckeln..

  • Ne, sorry, hatte vor ner Weile mal auf meinem Raspberry Pi XMBC installiert und geguckt in wie weit er als MediaPlayer Ersatz etwas taugt.
    Da hab ich dann alle möglichen FullHD files abgespielt (alle mit crf 16-22 encoded) und da bei den meisten Ruckler auftauchten war klar, dass der Raspberry Pi nicht als fullHD MediaPlayer zu gebrauchen ist. Unter crf 22 zu gehen ist für mich nicht wirklich ne Lösung, da ich den Output entweder an nem 40" Fernseher oder am HD Beamer gucke und mich dann einfach die Qualität stört, es sei denn ich filtere vorher viele kleine Details raus, was mich stört wenn ich doch am Monitor gucke (an dem ich dann näher sitze).

  • Raspberry Pi als Media Player würde ich auch nicht nehmen.

    Ich verwende momentan als Openelec Hardware einen Intel Nuc dn2820fykh.
    Für H.264 FullHD sollte der ausreichen. Zumindest spielt er bislang fast alles problemlos.

    100min / 35GB Bluray Stream ohne Probleme
    Nur bei einem crf 0 FullHD H.264 Stream kam er hin und wieder ins straucheln. Aber da habe ich eh nicht erwartet, dass er diese Datei packt.

    H.265 habe ich noch nicht getestet. Da müsste der Nuc dann per Software decodieren, da wirds eng werden. Sehe ich, wenn Openelec (stable) H.265 Support hat.
    Aber bei Raspberry Pi sehe ich bei H.265 schwarz.

    Immer ne gute Übersicht für Openelec Hardware: http://technikaffe.de/anleitung-23-d…ware_fuer_xbmc_

  • Zitat

    Du hast mit CRF 16 reencodiert - ist dann nicht doch ein niedrigerer CRF als 18 zu empfehlen?


    Das musst Du für Dich selbst entscheiden, was für User X einwandfrei ist muss das noch lange nicht für User Y sein.
    18-22 ist so was die meisten Leute nehmen.

  • Dann werde ich wohl 17 CRF nehmen wenn die Quelle sehr gute Qualitaet hat und 18 CRF wenn die Quelle eher verrauscht ist. Komma-Werte sind zwar moeglich aber in Handbrake nicht einstellbar, korrekt?

    Monarc99, weisst du ob diese Intel NUC's den 24p-Bug (Ivy+Sandy-Bridge) haben?


  • Monarc99, weisst du ob diese Intel NUC's den 24p-Bug (Ivy+Sandy-Bridge) haben?

    Das kommt drauf an, welchen du im Auge hast.
    Auch würde ich bei den NUC immer suchen, ob denn nicht schon der nächste bald erscheint. Die haut Intel in so kurzen Taktraten raus, dass meiner vermutlich schon wieder veraltet ist.

  • Der DN2820FYKH wuerde reichen und ist sehr guenstig. Hier finde ich aber nichts ob Ivy oder Sandy-Bridge.

    Basis ist Silvermont. Gehört zur Generation 7 (Ivy Bridge). Ob der den 24p Bug hat, kann ich leider nicht sagen.
    Tritt wohl nur auf, wenn der Fernseher auch mit 24p läuft - soweit ich das verstanden habe. Kann das also bei mir nicht testen.

    Aber wie ich mir schon gedacht habe, ist der NUC 2820 schon Geschichte. Ersetzen wird ihn wohl der 2830:
    http://www.computerbase.de/2014-04/intel-…830-quick-sync/

    Den es noch nicht zu kaufen gibt. Aber vielleicht lohnt es sich zu warten. Der kann Quick Sync also vielleicht ne bessere GPU?
    http://cpuboss.com/cpus/Intel-Cel…l-Celeron-N2820

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!