BR-Player kompatible x264 settings

  • Hallo,

    ich bin gerade dabei, die maximal unterstützten/möglichen bluray-kompatiblen x264 einstellungen für mich zu ermitteln. Grund war ein Encoding, dass zwar noch DXVA kompatibel ist, auf meinem BR-Player aber nicht ohne stottern nach ein paar minuten wiedergegeben werden kann. einer der gründe dafür könnte sein: ref-frames zu hoch, vbv unbeschränkt, b-pyramid auf normal und keine slices ... bei derselben auflösung mit geringeren bitraten und niedrigeren auflösungen haben diese einstellungen bisher immer ruckelfrei am brplayer funktioniert.

    Encoding settings:

    Code
    program --tune grain --pass 2 --bitrate 25730 --stats ".stats" --bframes 4 --b-adapt 2 --ref 5 --qpmin 10 --qpmax 51 --merange 32 --me umh --direct auto --subme 11 --partitions all --trellis 2 --output "output" "input"

    Mediainfo:

    Code
    GeneralUnique ID                                : 171885300564693696303470707452762119228 (0x814FE79CC32C9AFC96F607C08A5FDC3C)Complete name                            : E:\not-important.mkvFormat                                   : MatroskaFormat version                           : Version 4 / Version 2File size                                : 17.4 GiBDuration                                 : 1h 30mnOverall bit rate                         : 27.4 MbpsEncoded date                             : UTC 2014-05-23 03:23:07Writing application                      : mkvmerge v6.9.1 ('Blue Panther') 64bit built on Apr 18 2014 18:23:38Writing library                          : libebml v1.3.0 + libmatroska v1.4.1VideoID                                       : 1Format                                   : AVCFormat/Info                              : Advanced Video CodecFormat profile                           : High@L4.1Format settings, CABAC                   : YesFormat settings, ReFrames                : 5 framesCodec ID                                 : V_MPEG4/ISO/AVCDuration                                 : 1h 30mnNominal bit rate                         : 25.7 MbpsWidth                                    : 1 920 pixelsHeight                                   : 800 pixelsDisplay aspect ratio                     : 2.40:1Frame rate mode                          : ConstantFrame rate                               : 23.976 fpsColor space                              : YUVChroma subsampling                       : 4:2:0Bit depth                                : 8 bitsScan type                                : ProgressiveBits/(Pixel*Frame)                       : 0.699Title                                    : x264-1920x800@25.7MbpsWriting library                          : x264 core 142 r2431 ac76440Encoding settings                        : cabac=1 / ref=5 / deblock=1:-2:-2 / analyse=0x3:0x133 / me=umh / subme=11 / psy=1 / psy_rd=1.00:0.25 / mixed_ref=1 / me_range=32 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=6,6 / fast_pskip=1 / chroma_qp_offset=-4 / threads=12 / lookahead_threads=1 / sliced_threads=0 / nr=0 / decimate=0 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=4 / b_pyramid=2 / b_adapt=2 / b_bias=0 / direct=3 / weightb=1 / open_gop=0 / weightp=2 / keyint=240 / keyint_min=23 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=2pass / mbtree=1 / bitrate=25730 / ratetol=1.0 / qcomp=0.80 / qpmin=10 / qpmax=51 / qpstep=4 / cplxblur=20.0 / qblur=0.5 / ip_ratio=1.10 / aq=1:0.50Language                                 : EnglishDefault                                  : YesForced                                   : NoAudio #1/#2/Chapters ...

    Hab mir die BR-Spezifikationen durchgelesen. Das croppen werde ich in Zukunft lassen; wenn ich unter den x264-settings unter megui als target-playback-device blu-ray auswähle, werden u.a. die b & ref-frames auf 3 gesetzt, open GOP eingeschaltet, die slices auf 4 gestellt und die VBV Buffer Werte beschränkt. dh. wenn ich die tabelle richtig verstanden habe: eigentlich kann man dann ja nur mehr die reference frames auf 4 erhöhen damits noch kompatibel bleibt, richtig? Nur muss ich dazu target-playback-device wieder auf default stellen und b-pyramid auf normal da ansonsten obwohl 4 ref-frames ausgewählt ist trotzdem nur 3 verwendet werden ...

    Code
    program --level 4.1 --tune grain --pass 2 --bitrate 25730 --stats ".stats" --open-gop --b-adapt 2 --ref 4 --weightp 1 --slices 4 --qpmin 10 --qpmax 51 --vbv-bufsize 30000 --vbv-maxrate 40000 --merange 32 --me umh --direct auto --subme 11 --partitions all --trellis 2 --aud --nal-hrd vbr --output "output" "input"

    Mit diesen Einstellungen funktioniert eine ruckelfreie Wiedergabe am BR-Player. Meine eigentliche Frage ist jetzt, ob man an diesen Einstellungen noch was 'verbessern' kann. b-pyramid ist auf normal, ref-frames auf 4, b frames auf 3. Würde es qualitativ etwas bringen wenn man
    - P-Frame Weighted Prediction auf Smart statt Blind stellt
    - Open GOP weglässt oder
    - die slices wieder auf 0 stellt.

    Und wie siehts dann mit der Kompatibilität aus?

    5 Mal editiert, zuletzt von truthy (25. Mai 2014 um 11:24)

  • --open-gop verbessert die Qualität und verringert die Kompatibilität.
    --weightp 2 und --slices 0 würden die Qualität auf Kosten der Kompatibilität etwas erhöhen, aber der Unterschied wird - insbesondere bei dieser Bitrate - nicht sichtbar sein.

    Noch als Anmerkung:
    Diese ganze Vorschriften sind für "echte" Blu-Rays festgelegt, nicht für mkv. D.h.:
    - sie sind nicht unbedingt zwingend für die Abspielbarkeit der mkv-Datei auf einem Blu-Ray-Player
    - sie garantieren nicht die Abspielbarkeit der mkv-Datei auf einem Blu-Ray-Player

    Außerdem:
    Abspielprobleme können auch mit dem Muxing oder den anderen Spuren zusammenhängen.

    Einmal editiert, zuletzt von sneaker2 (25. Mai 2014 um 22:56)

  • wenn ich unter den x264-settings unter megui als target-playback-device blu-ray auswähle, werden u.a. die b & ref-frames auf 3 gesetzt, open GOP eingeschaltet, die slices auf 4 gestellt und die VBV Buffer Werte beschränkt. dh. wenn ich die tabelle richtig verstanden habe: eigentlich kann man dann ja nur mehr die reference frames auf 4 erhöhen damits noch kompatibel bleibt, richtig? Nur muss ich dazu target-playback-device wieder auf default stellen und b-pyramid auf normal da ansonsten obwohl 4 ref-frames ausgewählt ist trotzdem nur 3 verwendet werden ...


    Das kommt drauf an, was die Beschränkung der Referenzen auslöst.
    Bei Hardware Player ist es normalerweise die Größe des eingebauten Decoding Puffers. Der Chip muss ja mehrere dekodierte Frames zwischenspeichern, um weitere Bilder dekodieren zu können.
    Die harte Grenze von 4 Refs kommt - glaube ich von einer der - inzwischen sehr alten, aber weit verbreiteten - Spielkonolen xbox oder ps3. Neuere Player vertragen aber eventuell mehr.

    Und falls b-pyramid aktiviert ist, musst du ein ref Frame abziehen. Um die verschachtelten B-Frames zu dekodieren zu können, braucht er Player auch etwas Platz im Decoding Puffer. Deshalb dürfte MEGUI von 4 auf 3 gehen.

    mfg,
    monarc

  • Die harte Grenze von 4 Refs kommt - glaube ich von einer der - inzwischen sehr alten, aber weit verbreiteten - Spielkonolen xbox oder ps3. Neuere Player vertragen aber eventuell mehr.


    Die Grenze von 4 ref-Frames für 1080p ergibt sich direkt aus den Standards von H.264 bzw. Blu-Ray.

    Und falls b-pyramid aktiviert ist, musst du ein ref Frame abziehen.


    Nein, darauf muß man bei x264 nicht achten. Vor vielen Jahren arbeitete x264 mit B-Pyramid nicht korrekt (auch wenn man --ref n-1 gesetzt hat), aber das ist Vergangenheit.
    http://git.videolan.org/?p=x264.git;a=…addf370e7740ada

  • danke für eure antworten. megui ist die aktuelle version vom dev update server: v2500, x264 sollte auch aktuell sein v2431 (komisar) und zum muxen verwende ich mkvmerge/mkvtoolnix, auch aktuell v6.9.1 x64 mit '--clusters-in-meta-seek' weil sonst das seeken auf meinem älteren br-player nicht funktioniert. mein megui-x264 profil schaut so aus: bild bzw das xml-profil selbst: link - kA ob das veraltet ist. ruckeln wegen anderer (ton)spuren oder muxproblemen kann ich ausschließen, da es ja mit den anderen settings ruckelfrei funktioniert hat.

    open-gop, weightp und slices werde ich dann so lassen wie oben zwecks kompatibilität. interresant ist gerade bei dieser quelle noch, dass sogar das original-file sehr selten wenige, kurze ruckler und sehr kurze bildfehler am br-player verursacht, obwohl es nur 2 ref-frames hat ... wahrscheinlich deswegen, weil die variable bitrate kurzzeitig zu hoch ist (vbv buffer/maximum zu hoch oder nicht eingestellt ist). obwohl man doch meinen müsste, dass das original br-kompatibel encodiert wurde, vl ist auch mein br-player schon zu alt. mehr info lässt sich aus der quelle leider nicht herauslesen, aber egal hab jetzt meine einstellungen gefunden, danke. ;)

    2 Mal editiert, zuletzt von truthy (23. Mai 2014 um 18:29)

  • mein br-player kann keine dateien im *.ts container abspielen, BMDV-Discs erstelle ich nicht, wenn dann nur Daten-Discs mit UDF 2.5 und den einzelnen Datein bzw. erfolgt die Wiedergabe meist über USB (externe HD oder USB-Stick). ich verwende fast immer den mkv-container (sehr selten avi oder mp4, aber zb auch 1080i-mpeg2-interlaced von *.ts nach *.mkv geremuxt funktioniert)

    2 Mal editiert, zuletzt von truthy (23. Mai 2014 um 18:31)

  • Update: mhm, hab mich wohl zu früh gefreut, bei komplexen/schnellen Szenen ist das ganze trotz der neuen Einstellungen wieder nur eine Diashow ... weiss jetzt glaube ich auch warum: die Bitrate(Peaks) ist einfach zu hoch für meinen alten br-player, im Handbuch steht zwar dazu nichts aber beim Nachfolger ist die maximal unterstützte Video Bitrate im mkv-container bei x264-1080p mit 25 Mbps angegeben und DTS-HD hat im mkv-container auch noch nie funktioniert (vl nur direkt von der bluray/BDMV, unterstüzt wird es angeblich) weswegen ich immer nach dts downconverten muss ... naja wenigstens weiss ich jetzt das limit :D

    hier ein schöner vergleich mit bitrateviewer: links mein encoding mit peaks bei 48,8 Mbps, average 25,76 Mbps und rechts eine andere datei/quelle mit peaks bei 41,65 Mbps average 24,55 Mbps (die ohne ruckler problemlos wiedergegeben wird; zugegeben, die 2. datei hat nicht viel 'action/schnelle szenen')

    bitrate-comparison.jpg

    angesichts dieser tatsachen werde ich --vbv-bufsize --vbv-maxrate anpassen ... ich probiers mal mit 30/30 Mbps bei einer Bitrate von 24 Mbps statt 25,7. lt. dieser quelle muss angeblich auch -sar vorhanden sein und --keyint auf 1 Sekunde GOP beschränkt werden um theoretisch ganz kompatibel zu bleiben - also habe ich GOP auf fixed mit max 24 und min 1 gestellt.

    neue megui cl:

    Code
    program --level 4.1 --tune grain --pass 2 --bitrate 24000 --stats ".stats" --keyint 24 --min-keyint 1 --open-gop --b-adapt 2 --ref 4 --weightp 1 --slices 4 --qpmin 10 --qpmax 51 --vbv-bufsize 30000 --vbv-maxrate 30000 --merange 32 --me umh --direct auto --subme 11 --partitions all --trellis 2 --aud --nal-hrd vbr --sar 1:1 --output "output" "input"

    11 Mal editiert, zuletzt von truthy (24. Mai 2014 um 16:58)

  • Zitat

    aber etwa die Hälfte dieser anscheinend überspezifischen Liste sollte sich doch einsparen lassen.


    Ja, wäre etwas kürzer mit:

    Code
    program --tune grain --pass 2 --bitrate 24000 --level 4.1 --bluray-compat --ref 4 --keyint 24 --min-keyint 1 --b-pyramid strict --b-adapt 2 --slices 4 --qpmin 10 --qpmax 51 --me umh --mvrange 511 --subme 11 --trellis 2 --weightp 1 --vbv-maxrate 40000 --vbv-bufsize 30000 --output "output" "input"


    aber es weichen schon viele Einstellungen von den Defaults ab.

  • LigH, Selur
    naja, also der einzige grund warum ich die parameter einzeln angebe und nicht --bluray-compat verwende ist, da ansonsten immer die reference frames auf 3 gesetzt werden, obwohl ich 4 eingestellt habe. (wobei es egal ist, ob der output im mkv-container landet oder im elementary stream bleibt; änderungen an den vbv-werte funktionieren)

    megui-cl

    Code
    program --level 4.1 --bluray-compat --tune grain --crf 14.0 --keyint 24 --open-gop --b-adapt 2 [B]--ref 4[/B] --slices 4 --qpmin 10 --qpmax 51 --vbv-bufsize 30000 --vbv-maxrate 30000 --merange 32 --me umh --direct auto --subme 11 --partitions all --trellis 2 --sar 1:1 --output "output" "input"

    mediainfo test-mkv

    Code
    Format settings, [B]ReFrames: 3 frames[/B]Encoding settings: cabac=1 /[B] ref=4[/B] / deblock=1:-2:-2 / analyse=0x3:0x133 / me=umh / subme=11 / psy=1 / psy_rd=1.00:0.25 / mixed_ref=1 / me_range=32 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=6,6 / fast_pskip=1 / chroma_qp_offset=-4 / threads=12 / lookahead_threads=1 / sliced_threads=0 / slices=4 / nr=0 / decimate=0 / interlaced=0 / bluray_compat=1 / constrained_intra=0 / bframes=3 / b_pyramid=1 / b_adapt=2 / b_bias=0 / direct=3 / weightb=1 / open_gop=1 / weightp=1 / keyint=24 / keyint_min=1 / scenecut=40 / intra_refresh=0 / rc_lookahead=24 / rc=crf / mbtree=1 / crf=14.0 / qcomp=0.80 / qpmin=10 / qpmax=51 / qpstep=4 / vbv_maxrate=30000 / vbv_bufsize=30000 / crf_max=0.0 / nal_hrd=vbr / filler=0 / ip_ratio=1.10 / aq=1:0.50

    mediainfo test-rawavc

    Code
    Format settings, [B]ReFrames: 3 frames[/B]Encoding settings: cabac=1 / [B]ref=4[/B] / deblock=1:-2:-2 / analyse=0x3:0x133 / me=umh / subme=11 / psy=1 / psy_rd=1.00:0.25 / mixed_ref=1 / me_range=32 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=6,6 / fast_pskip=1 / chroma_qp_offset=-4 / threads=12 / lookahead_threads=1 / sliced_threads=0 / slices=4 / nr=0 / decimate=0 / interlaced=0 / bluray_compat=1 / constrained_intra=0 / bframes=3 / b_pyramid=1 / b_adapt=2 / b_bias=0 / direct=3 / weightb=1 / open_gop=1 / weightp=1 / keyint=24 / keyint_min=1 / scenecut=40 / intra_refresh=0 / rc_lookahead=24 / rc=crf / mbtree=1 / crf=14.0 / qcomp=0.80 / qpmin=10 / qpmax=51 / qpstep=4 / vbv_maxrate=30000 / vbv_bufsize=30000 / crf_max=0.0 / nal_hrd=vbr / filler=0 / ip_ratio=1.10 / aq=1:0.50


    es scheint so, als hab ich jetzt endlich herausgefunden, was das ruckeln am br-player verursacht:

    - beim alten encoding wars wirklich die zu hohe bitrate und/oder vbv zu hoch --> ruckeln
    - beim neuen encoding wird das video alleine und auch mit einer audiospur rucklefrei abgespielt

    sobald aber eine 2. audiospur dazukommt --> ruckeln. wobei es egal ist was für ein audioformat: dts,ac3,aac. anzumerken ist auch, dass die gesamte bitrate: video+audio1und2 bei 24,8 Mbps liegt - also kanns an der 25 Mpbs Grenze eigentlich auch nicht liegen. sehr interessant.
    :ratlos:

    Die Bitrate-Peaks sind jetzt bei 40,2 Mbps statt 48,8 vorher. ich glaube zwar, dass wenn die bitrate beim alten encoding 24 Mbps statt 25,7 gewesen wäre, hätte es mit den standard vbv-werten auch ev funktioniert. mit 30.000/30.000 bin ich aber eher auf der sichereren/kompatibleren seite.
    maxrate-30-30.jpg

    Jetz habe ich endlich, glaube ich, die für meinen br-player 'bestmöglichen/maximalen' einstellungen gefunden: prinzipiell gleich wie --bluray-compat, nur mit 4 reference frames, b-pyramid normal und vbv buffer/max 30.000/30.000, GOP ist zwar bei meiner hardware eigentlich egal, da aber das seeken schneller funktioniert lass ich das auch auf Fixed mit max 24/25/30 (je nach fps) und min 1. Maximale Video Bitrate 24 Mbps.

    megui-cl:

    Code
    program --level 4.1 --tune grain --pass 2 --bitrate 24000 --stats ".stats" --keyint 24 --min-keyint 1 --open-gop --b-adapt 2 --ref 4 --weightp 1 --slices 4 --qpmin 10 --qpmax 51 --vbv-bufsize 30000 --vbv-maxrate 30000 --merange 32 --me umh --direct auto --subme 11 --partitions all --trellis 2 --aud --nal-hrd vbr --sar 1:1 --output "output" "input"

    mediainfo der finalen version mit einer dts audiospur: link

    für verbesserungsvorschläge bin ich natürlich offen/dankbar. medium war standard - dauert so auch sehr lange - bei dieser datei und meiner doch sehr guten hardware 1st pass 1h, 2nd pass 7 h.

  • Die Limitierung auf 3 Referenzen wird u.U. mit der Einhaltung des Profile@Level (bei 1080i, oder wegen Weighted Prediction) zu tun haben...

    Schon bei DVD Video gab es Probleme, dass Bitraten am Anschlag schon mal einzelne GOPs ausreißen lassen können. Selbst wenn die VBV-Kontrolle des Video-Encoders das scheinbar verhindert habe, kommt es im Authoringtool manchmal doch zu Buffer Underruns. Sicherlich wird das nicht nur bei MPEG2-Encodern so sein.

  • Zitat

    Da gehst du also vom Preset medium aus; ist das schon das nächstähnliche? Mir scheint das alles eher nahe an einem unnötig langsamen Preset zu sein.


    Sollte. (oder ich hab nen Tippfehler in Hybrid, da wird ein Preset genommen, wenn mindestens 50% der Settings des Presets abgedeckt sind)

    Zitat

    mit 30.000/30.000 bin ich aber eher auf der sichereren/kompatibleren seite.


    eventuell auch eher an Medium anpassen,..
    mit DVD/BD (5/9) würde man typischer weise buffer 24k, maxrate 24k nehmen.

  • Die Limitierung auf 3 Referenzen wird u.U. mit der Einhaltung des Profile@Level (bei 1080i, oder wegen Weighted Prediction) zu tun haben...


    Verursacht wird das durch --b-pyramid strict (impliziert durch --bluray-compat), allerdings zeigt MediaInfo meines Wissens nicht wirklich die Anzahl der ref-frames unter "ReFrames", sondern die Größe des Puffers, d.h. das Feld ist falsch beschriftet. Das wurde irgendwann mal von den x264-Entwicklern gesagt.

    Zur Kommandozeile wurde ja schon einiges gesagt, ich glaube heutzutage würde man das eher so erschlagen:
    x264 --preset veryslow --tune grain --bitrate XXXX --level 4.0 --vbv-bufsize 31250 --vbv-maxrate 25000 --pass Y
    Im Grunde alles rauswerfen, was man nicht begründen kann.

    3 Mal editiert, zuletzt von sneaker2 (25. Mai 2014 um 23:26)

  • danke für eure hilfe. ;D

    habe mein preset etwas angepasst. da ich aber auch bei very slow meine abweichenden werte (gop, quantizer, subme, ...) drinnen haben will, ist es trotzdem sehr lange. nachdem ich eigentlich immer schon ein selbst-erstelltes preset unter megui gespeichert habe bei dem ich dann eh nur mehr bitrate anpasse stört das nicht weiter. vbv bufsize/maxrate lasse ich beides auf 24k - bilde mir ein, wo gelesen zu haben, dass bufsize nicht größer sein soll als maxrate, aber wahrscheinlich wäre das auch egal. weightp/b-pyramid lasse ich auf standard und sar lasse ich auch weg. also sieht meine cl jetzt so aus:

    Code
    --level 4.0 --preset veryslow --tune grain --pass 2 --bitrate xxxxx --keyint 24/25/30 --min-keyint 1 --open-gop --bframes 3 --ref 4 --slices 4 --qpmin 10 --qpmax 51 --vbv-bufsize 24000 --vbv-maxrate 24000 --merange 32 --subme 11 --aud --nal-hrd vbr
  • ... ich glaube heutzutage würde man das eher so erschlagen:
    x264 --preset veryslow --tune grain --bitrate XXXX --level 4.0 --vbv-bufsize 31250 --vbv-maxrate 25000 --pass Y
    Im Grunde alles rauswerfen, was man nicht begründen kann.


    wenn ich das richtig verstanden habe, meinst du, dass meine änderungen nur länger dauern und qualitativ nichts bringen. :grübeln: ... das könnte teilweise stimmen.

    Die Wiedergabe soll auf einem Standalone-BluRay-Player und mit den internen Mediaplayern von (Smart)TVs problemlos funktionieren. mit dem standard preset veryslow mit 8 b-frames und 16 ref-frames bei 1080p und diesen bitraten funktioniert das sicher nicht; das ist das absolute minimum, das geändert werden muss. das kann ich auf jeden fall begründen. ;)
    bisher habe ich bei 1080p maximal 4 b-frames und 5 ref-frames verwendet - jetzt verwende ich maximal 3 b-frames und 4 ref-frames. avc level lasse ich doch auf 4.1 weil bei megui mit level 4.0 immer so eine lästige, falsche warnung kommt, dass vbv maxrate 24k die level 4.0 main profile bitrate-grenze von 20k übersteigt, obwohl eh das 4.0 high profile ausgewählt ist und nicht main ... würde zwar level-conform sein mit 4.0 aber bei jedem encoding diese warnung nervt --> 4.1. vbv bufsize/maxrate bleibt bei 24k. die veryslow-standalone-cl, zumindest für meinen br-player, sieht dann so aus:
    x264 --preset veryslow --tune grain --bitrate XXX --level 4.1 --bframes 3 --ref 4 --vbv-bufsize 24000 --vbv-maxrate 24000 --pass Y

    Zu meinen Änderungen:
    alle diese parameter sind ja nur wegen besserer bluray/standalone kompatibilität drinnen - glaube nicht, dass die irgendwas sonderlich viel langsamer machen ...
    --keyint 24 --min-keyint 1 --open-gop --slices 4 --aud --nal-hrd vbr
    die quantizer min/max werte weiss ich nicht mehr genau warum ich die geändert habe ... lasse ich auch, außer ihr kennt einen grund warum 0/69 besser wäre?
    --qpmin 10 --qpmax 51
    Motion Vector Range auf 32 und Subpixel Refinement auf Full-RD ist wirklich übertrieben, die sollte ich doch auf 24 und 10 stellen.
    --merange 32 --subme 11 --> --merange 24 --subme 10
    RC-lookahead hatte ich bisher auf 40 - bei veryslow ist es 60 - wahrscheinlich auch übertrieben ... lasse ich aber.

    Ich habe gerade dieselbe Quelle mit dem geränderten veryslow und mit meinem preset ausgehend von veryslow encodiert - jeweils 2-pass.
    Win7 x64, megui 2500, avisynth x86+avs4x264mod, x264 v2431 64bit-mode, Intel Core i7 2600k HT 4 Cores, 8 Threads, 8 Gb Ram
    Zielgröße ~ 15892 MB (1/3 eines DL-BluRay Rohlings); DTS Audio 1352 MB --> Video Bitrate: ~16140 Kbps (Original 24 Mbps)

    Very Slow Preset
    1st pass: 31.69 fps, Dauer: 1h 35m, Log
    2nd pass: 5.22 fps, Dauer: 10h 37m, Log

    Mein Preset mit den 'alten' placebo-werten
    1st pass: 31.99 fps, Dauer: 1h 35m, Log
    2nd pass: 4.32 fps, Dauer: 11h 40m, Log

    Prinzipiell stört es mich nicht, wenn das encoden etwas länger dauert. Ich möchte halt qualitativ das maximal mögliche herausholen und genau die Dateigröße treffen, aber halt auch nicht mit unnötig langsamen einstellungen ohne sichtbaren qualitätsgewinn das ganze in die länge ziehen.

    Zu den Presets:
    Ganz erhlich gesagt verstehe ich nicht, warum ich überhaupt ein vordefiniertes preset wie veryslow verwenden soll, wenn eh so viele werte abweichen, nur damit die cl kürzer wird ... das ändert ja auch nichts an der encoding-geschwindigkeit. ohne --preset parameter habe ich alle meine abweichenden einstellungen ausgehend von medium in der cl und ob da jetzt 5 werte drinnen stehen oder 100 ist doch vollkommen egal. also sieht mein zukünftiges preset ausgehend von medium unter megui jetzt so aus (--bframes 3 wird mit medium augeblendet):

    Code
    program --level 4.1 --tune grain --pass Y --bitrate XXX --stats ".stats" --keyint 24/25/30 --min-keyint 1 --open-gop --b-adapt 2 --ref 4 --slices 4 --qpmin 10 --qpmax 51 --vbv-bufsize 24000 --vbv-maxrate 24000 --rc-lookahead 60 --merange 24 --me umh --direct auto --subme 10 --partitions all --trellis 2 --aud --nal-hrd vbr --output "output" "input"

    was euch wahrscheinlich besser gefallen würde wäre:
    --level 4.1 --bluray-compat --preset veryslow --tune grain --pass Y --bitrate XXX --open-gop --ref 4 --slices 4 --vbv-bufsize 24000 --vbv-maxrate 24000

    ich bleibe aber bei meinen jetzt vl etwas weniger placebo-artigen (merange/subme) einstellungen. man lernt nie aus, danke. btw das ruckeln bei einer 2. audiospur am br-player besteht weiterhin ... egal werde ich mich halt mit einer zufrieden geben müssen. hier noch ein bitraten/peaks vergleich vom original und meinem reencode:

    1.jpg

    2 Mal editiert, zuletzt von truthy (27. Mai 2014 um 20:37)

  • wenn ich das richtig verstanden habe, meinst du, dass meine änderungen nur länger dauern und qualitativ nichts bringen.


    Unter anderem das. Hier bezogen auf --subme 11 und --merange 32. Die andere Sache sind Dinge wie --qpmin, --qpmax, --min-keyint, --keyint, --aud, --nal-hrd vbr u.a. die meist von Leuten übernommen werden, ohne daß bekannt ist, wozu das gut sein soll.

    mit dem standard preset veryslow mit 8 b-frames und 16 ref-frames bei 1080p und diesen bitraten funktioniert das sicher nicht; das ist das absolute minimum, das geändert werden muss. das kann ich auf jeden fall begründen. ;)


    Mein Beispiel in Beitrag #15 begrenz die Anzahl der ref-frames automatisch, das muß nicht manuell getan werden.

    bisher habe ich bei 1080p maximal 4 b-frames und 5 ref-frames verwendet - jetzt verwende ich maximal 3 b-frames und 4 ref-frames. avc level lasse ich doch auf 4.1 weil bei megui mit level 4.0 immer so eine lästige, falsche warnung kommt, dass vbv maxrate 24k die level 4.0 main profile bitrate-grenze von 20k übersteigt, obwohl eh das 4.0 high profile ausgewählt ist und nicht main


    x264 schaltet im ersten Pass auf das Main-Profile zurück - die Fehlermeldung ist normal und darf ignoriert werden. Im zweiten Pass sollte sie nicht mehr erscheinen.

    die quantizer min/max werte weiss ich nicht mehr genau warum ich die geändert habe ... lasse ich auch, außer ihr kennt einen grund warum 0/69 besser wäre?


    Im Grunde nimmst Du damit x264 etwas Freiheit. Ob das jetzt "schlimm" ist, sei dahingestellt. In Extremsituationen braucht x264 diese Freiheit, um die vbv-Grenzen einzuhalten.

    Zu den Presets:
    Ganz erhlich gesagt verstehe ich nicht, warum ich überhaupt ein vordefiniertes preset wie veryslow verwenden soll, wenn eh so viele werte abweichen, nur damit die cl kürzer wird


    Es wird empfohlen, damit nicht sowas wie bei Dir mit --subme 11 und --merange 32 passiert. Die Presets sind so ausgewählt, daß für die gewählte Rechenzeit das Maximum an Qualität herausgeholt wird. Andere Einstellungen können bei gleicher oder niedriger Geschwindigkeit schlechtere Qualität ergeben. Auf der Grafik oben dann entsprechend gleicher oder niedrigerer y-Wert, aber höherer x-Wert. Deshalb sollte man bei ungewünschter Geschwindigkeit als erstes am Preset und keinesfalls an den Einzelparametern schrauben.
    Wenn Du ein Preset natürlich 1:1 mit Einzelparametern nachbaust, macht es in der Tat keinen Unterschied, da muß ich Dir Recht geben.

    Ich finde es halt nur seltsam, daß Du die Blu-Ray-Vorgaben nur teilweise nachbilden willst. Meine Meinung: ganz oder gar nicht. Kannst ja mein Beispiel aus #15 testen, wenn Du möchtest. Das sollte auf den allermeisten Playern laufen. Aber gut, jeder wie er mag. Man sollte sich halt nur bewußt sein, daß mehr Parameter nicht immer besser sind und daß langsamer nicht gleich besser ist.

    3 Mal editiert, zuletzt von sneaker2 (27. Mai 2014 um 23:04)

  • danke für die antworten/infos. zu #15: stimmt, sry der --level parameter beschränkt ja die b/ref-frames.
    werde beim nächsten mal mein selbst gebautes mit 100%igen BluRay-Vorgaben und eine leicht abgewandelte variante aus deinem beispiel versuchen. x264 --preset veryslow --tune grain --bitrate XXXX --level 4.1 --vbv-bufsize 24000 --vbv-maxrate 24000 --pass Y

Jetzt mitmachen!

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