MPV Player als Alternativer Player z.B. in Kodi

  • Wenn ich es richtig verstanden habe, dann bleibt die Matrix beim Erstellen eines synthetischen Profils auf Basis eines nicht synthetischen Profils erhalten, korrekt?

    Genau. Im Grunde reichen die Koordinaten des Zielgamuts. Man könnte also auch mit CalMAN oder HCFR die Koordinaten messen und in den Synthetic Profile Creator eintragen. MPV wird die Farben dann korrekt konvertieren. Nur Gamma eben nicht.


    Vermutlich sitzt das Problem vor dem Bildschirm, aber ich komm nicht drauf.

    Ich habe mal ((( atom ))) gefragt, wie er das macht. Ich melde mich, wenn ich eine Antwort habe. Zu Linux kann ich da nicht weiter helfen, unter Windows klappt das mit dem DisplayCal Loader sehr gut.

  • FoLLgoTT

    Danke für die Info und Deine Unterstützung. Du meinst vermutlich Profile Info von Displaycal, oder? Ja, damit hatte ich (zumindest bezüglich der selbst erstellten Profile) schon geschaut.
    Ich werde mir das Ganze am Wochenende nochmal in Ruhe anschauen, wenn ich etwas mehr Zeit habe. Es kann eigentlich nur ein Anwenderproblem sein, da die Tools dispwin und xcalib die Verarbeitung der jeweiligen Profile korrekt bestätigen und ich bei dem bluish-Profil ja auch die Blauverschiebung sofort deutlich sehen konnte.

  • So, inzwischen habe ich mal gpu-next zum Laufen bekommen. Es muss (unter Windows) zwingend gpu-api=vulkan gesetzt sein, sonst startet MPV nicht.


    Mit gpu-next unterstützt MPV 3D-LUTs im cube-Format. Das funktioniert auch, soweit ich das auf die Schnelle beurteilen kann. DisplayCAL kann die direkt erzeugen. Ich muss die sicherheitshalber aber noch mal nachmessen.


    Beispiel:

    Code
    vo=gpu-next
    gpu-api=vulkan
    target-lut="madVR 2021-12-21 09-07 2.2 F-S XYZLUT+MTX.Rec709.bb1.0,2.2Gawn65.cube"


    Es gibt verschiedene Stellen in der Verarbeitung, an denen eine 3D-LUT angewendet werden kann.

    1. Dekodierung (image-lut=)
    2. Farbkonvertierung (lut=)
    3. Nach Farbkonvertierung (target-lut=)


    Bei 3. ist das Bild dann bereits auf das Zielgamma konvertiert, wenn die LUT angewendet wird. Man könnte also target-prim auf "BT.2020" setzen und dann eine 3D-LUT von BT.2020 auf den Zielfarbraum erzeugen. Das sollte dann immer stimmen. Das Problem ist, dass target-lut in Profilen derzeit nicht funktioniert, sonst könnte man BT.709 auch ohne Umweg über BT.2020 ausgeben und eine zweite 3D-LUT dafür erzeugen. Das ist genauer und so mache ich das auch derzeit.


    Ich habe für das Profilproblem ein Issue angelegt.

  • Das klingt ja noch viel besser und könnte es dann wie bei MadVR handhaben. Mir ist eine 3D-LUT ohne mögliche Nebenwirkungen auch ehrlich gesagt viel lieber. Werde ich dann am kommenden Wochenende ebenfalls testen.

  • Ich teste nebenbei mal das neue Tone Mapping von gpu-next. BT.2446a ist kontrastloser und mit gamut-mapping-mode=auto auch noch dunkler. Dafür macht aber BT.2390 einiges besser als mit gpu. Die schwierigen Stellen mit illegalen Werten zeigen keine Fehlfarben mehr und die Highlights werden besser restauriert, brennen also weniger stark aus.


    Man achte auf die Wolken.


    gpu + bt.2390:


    gpu-next + bt.2390:



    Das sieht recht vielversprechend aus. Ich muss es allerdings noch längere Zeit in Bewegung testen.

    Code
    vo=gpu-next
    gpu-api=vulkan
    tone-mapping=bt.2390
    gamut-mapping-mode=clip
    tone-mapping-param=2.0

    Ach ja, Hardwaredekodierung funktioniert nur im copy-Modus.

  • tone-mapping-param=2.0


    Das war auch bei mir einer der Punkt der wirklich zu einer Verbesserung geführt hat. Wie die offizielle (ITU) Implementation 0.5 vorsehen kann ist mir ein Rätsel, das kann doch nur scheiße aussehen wenn es schon mit dem 1.0 Standard so ausbrennt in den Highlights...


    Hier ist es übrigens dokumentiert, in der offiziellen Anleitung fehlt, dass tone-mapping-param auch bei bt.2390 einen Einfluss hat.

    https://code.videolan.org/vide…acebo/tone_mapping.h#L119

  • Wenn man gpu und gpu-next schnell vergleichen will, geht das bspw. mit einer getrennten Config-Datei.

    Man erstellt sich eine mpv-next.conf und trägt dort nur die Einträge ein, die für gpu-next relevant sind bzw sich von den nicht-next unterscheiden. Dann startet man MPV mit diesem Parameter:

    --include=<pfad-zu>/mpv-next.conf


    MPV liesst dann zuerst alle "normalen" Config-Dateien ein und überschreibt zu Schluss seine Einstellungen mit denen aus der mpv-next.conf.

    Ist also quasi sowas wie ein Profil, nur dass es von aussen gesteuert wird.


    Vermutlich würde es sich auch über eine einzelne Config-Datei und einem extra next-Profil darin steuern lassen.

    Dann müsste mpv so aufgerufen werden:
    --profile=<next-profile>

    Das würde aber wohl zu Problemen führen, wenn man ein bestehendes Profil (bspw HDR) in beiden Fällen nutzen will, aber mit verschiedenen Werten. Dann müssten die Profile noch eine zusätzliche Bedingung bekommen, damit sie nur aktiv sind, wenn ein anderes Profil aktiv ist.


    Deswegen finde ich die Lösung über zwei getrennte Configs eigentlich einfacher.

    "A computer lets you make more mistakes faster than any other invention in human history, with the possible exceptions of handguns and tequila." - Mitch Ratcliffe

  • Vermutlich würde es sich auch über eine einzelne Config-Datei und einem extra next-Profil darin steuern lassen.

    Ja, das geht. Man kann im Betrieb zwischen gpu und gpu-next umschalten. Die gesamte Pipeline startet sich dann anscheinend neu. Das Fenster verschwindet dann kurzzeitig. Aber es funktioniert. :)

  • Ich habe soeben die neue Version zur Installation von Kodi, MPV und Displaycal auf Basis eines Ubuntu-Servers veröffentlicht. Diese kann nun über ein automatisiertes Install-Script erfolgen. Damit sollte es auch für Linux-Anfänger kein Problem mehr sein!
    => Link

  • Ich habe kürzlich meine erste 3D Lut mit Displaycal erstellt und mit dwm_lut auf meinen Monitor angewendet.

    Nun würde ich gerne auch meinen X7900 damit kalibrieren.


    Wie genau müssen denn nun die Einstellungen in MPV aussehen?

    Ich würde gerne nix umstellen müssen, egal ob nun ein SDR oder getonemappter HDR Film läuft.


    Bisher nutze ich für SDR target-prim=auto (rec.709 wird also nicht angefasst) und im HDR Profil target-prim=dci-p3.

    Der JVC läuft mit Autocal kalibriert im "HDR" Farbprofil. (Für die 3D Lut dann High-Bright + Farbraum "aus")

    Den Filter will ich nicht nutzen.


    Das sieht auch auf den ersten Blick farblich richtig aus, aber so ganz blicke ich da noch nicht durch...

    Nutzt der JVC dann "einfach" nur einen Teil des dci-p3 Gamuts bei rec.709 oder wie läuft das?

  • Wie genau müssen denn nun die Einstellungen in MPV aussehen?

    Variante 1 (dwm_lut):


    HDR-Profil:

    Quellfarbraum in DisplayCAL: BT.2020

    MPV: BT.2020


    SDR-Profil:

    Quellfarbraum in DisplayCAL: BT.709

    MPV: BT.709



    Variante 2 (dwm_lut oder target-lut + gpu-next):


    Alle Formate:

    Quellfarbraum in DisplayCAL: BT.2020

    MPV: BT.2020



    Der Trick bei Variante 2 ist, dass MPV intern BT.709 automatisch auf BT.2020 konvertiert. Die LUT erledigt dann die Korrektur für den Projektor. Das klappt auch wunderbar mit gpu-next und target-lut. Das habe ich verifiziert und läuft bei mir aktuell so. Das Farbmanagement ist bei meinem JVC ausgeschaltet, damit die 3D-LUT alleine für die Korrekturen sorgen kann und das Leben leichter hat.


    Ich weiß nicht genau, was MPV bei "DCI-P3" macht. Es kann sein, dass er den falschen Weißpunkt annimmt, was madVR z.B. nicht tut. Dort wird immer von D65 ausgegangen. Ich würde daher bei BT.2020 bleiben. Das funktioniert definitiv.

  • Ich teste nebenbei mal das neue Tone Mapping von gpu-next. BT.2446a ist kontrastloser und mit gamut-mapping-mode=auto auch noch dunkler. Dafür macht aber BT.2390 einiges besser als mit gpu. Die schwierigen Stellen mit illegalen Werten zeigen keine Fehlfarben mehr und die Highlights werden besser restauriert, brennen also weniger stark aus.

    Ich finde gamut-mapping-mode=desaturate besser als gamut-mapping-mode=clip

    In manchen dunklen Scenen sieht es mit clip ausgewaschen aus. Was meinst du dazu?

    Code
    gpu-api=vulkan
    vo=gpu-next
    tone-mapping=bt.2390
    gamut-mapping-mode=desaturate
    tone-mapping-mode=auto
    tone-mapping-param=2.0
    target-peak=85

    gamut-mapping-mode=clip

    gamut-mapping-mode=desaturate


    Bei hellen Scenen sehe ich hingegen keine Unterschied.

    Bei Dunkelheit + Feuer gibt es Unterschiede am Feuer:


    gamut-mapping-mode=clip

    gamut-mapping-mode=desaturate

  • Was meinst du dazu?

    Ich habe die beiden auch verglichen und es gibt Szenen, in denen scheidet "desaturate" sofort aus. Schaut dir z.B. mal in "Der Hobbit" Kapitel 2 die gelben Blumen an. Die sind dann plötzlich weiß.


    desaturate:


    clip:


    Oder auch in "Mad Max" verschwinden dann Farben komplett:


    desaturate:


    clip:



    Ich habe das auch immer mit madVR gegengeprüft und madVR bleibt in diesen Szenen stark gesättigt. Bis auf diese extremen Bildanteile sind desaturate und clip nahezu gleich.

  • Ich würde mal mit festem tone-mapping-mode testen um weitere variablen auszuschließen.

    Keine Ahnung, ob der sich durch die Wahl eines gamut-mapping-mode bei tone-mapping-mode=auto was ändert, denkbar wäre es aber?

    (Bei Tone-mapping-mode=hybrid gibt es im aktuellen release noch Probleme nahe Schwarz.)


    EDIT nach FollGoTT: Siehe meine Screenshots mit der Fackel eine Seite vorher. Da war die Darstellung ebenfalls mit desaturate schlechter.

  • D.h. du hast auch den Weipunktabgleich, den Displaycal vor der dem Beginn der eigentlichen Messreihe vorschreibt/vorschlägt nicht gemacht?

    Doch, den schon. Das betrifft ja nur die Gain-Regler im Projektor und nicht das eigentliche Farbmanagement (also die interne 3D-LUT des Projektors).

  • Ich habe nun eine 3D Lut integriert die mir sogar noch 10% Helligkeit mehr bietet gegenüber der internen Lut.


    Allerdings komme ich nur auf 84,7% DCI-P3 Abdeckung laut Displaycal, das ist irgendwie recht wenig? (X7900)

    Manch ein Messmensch hat da teils 10% mehr ohne Filter angegeben...

    Wie kann sich die Gamutabdeckung durch die 3D Lut vergrößern?! Blicke ich auch noch nicht richtig durch... (Rechts auch ohne beamerinteren Lut)


    Ich habe Gamma 2,2 in DIsplaycal ausgewählt, kann ich das jetzt nebenwirkungsfrei irgendwie wieder ändern?


    In MadVr konnte man ja "display calibrated to 2,2" angeben und dann auf ein anderes Gamma umrechnen lassen.

    Geht das hier mit target-trc auch?

  • Also ich finde keine Lösung:
    Egal ob ich eine 3DLut in Cube-Form erzeuge oder ein ICC-Profil: Es ist immer erheblich Black-Crush vorhanden. Ich kann zwar ein ICC-Profil mit einer synthetischen LUT erzeugen und dabei den Blacklevel, wie von Folgott gezeigt auf 0 setzen oder "Blackpointcompensation" nutzen, aber dies führt auch zu Nebenwirkungen, nämlich dass Farbverläufe in dunkleren Bereichen von Farbe x plötzlich ins Schwarz "überspringen". Ich habe keine Idee mehr wie ich ein Bild zu erhalten soll, das eine gute Durchzeichnung im dunklen Bereich hat und gleichzeitig im hellen Bereich nicht ausbrennt.

    Ansonsten habe ich mit bt.2446a getestet, aber damit wird das Bild dermaßen dunkel und "flach", dass es keinen Spaß macht und daher bin ich auch bei bt.2390 geblieben.

    Momentan sehe ich aber leider nicht, wie ich auch nur annähernd ein Bild wie mit MadVR erreichen könnte. Schade.

  • Egal ob ich eine 3DLut in Cube-Form erzeuge oder ein ICC-Profil: Es ist immer erheblich Black-Crush vorhanden.

    Dann stimmt irgendwas anderes bei dir nicht. Sowas hatte ich nie.


    Probiere mal diese synthetische LUT: BT.2020 zu BT.709 (Gamma 2.2)


    Code
    target-prim=bt.2020
    vo=gpu-next
    gpu-api=vulkan
    target-lut="BT.2020 BT.709 (Gamma 2.2).cube"

    Oder um alle anderen Parameter in deiner Konfiguration auszuschließen starte direkt MPV so:


    mpv "movie.mkv" --no-config --target-prim=bt.2020 --vo=gpu-next --gpu-api=vulkan --target-lut="BT.2020 BT.709 (Gamma 2.2).cube"


    Das muss praktisch identisch aussehen wie ohne LUT und mit target-prim=bt.709. Wenn das Bild damit weiterhin absäuft, dann weiß ich auch nicht weiter. Bei mir verhält sich das mit den cube-Dateien alles wie erwartet.


    Allerdings komme ich nur auf 84,7% DCI-P3 Abdeckung laut Displaycal, das ist irgendwie recht wenig? (X7900)

    Welches Farbprofil nutzt du am Projektor? Ohne Farbmanagement ist ja leider nur ohne Filter möglich am X7900.


    Ich habe Gamma 2,2 in DIsplaycal ausgewählt, kann ich das jetzt nebenwirkungsfrei irgendwie wieder ändern?

    Ja, das kann man im Nachhinein in DisplayCAL ändern und eine neue 3D-LUT generieren.


    In MadVr konnte man ja "display calibrated to 2,2" angeben und dann auf ein anderes Gamma umrechnen lassen.

    Geht das hier mit target-trc auch?

    Ja, target-trc macht praktisch dasselbe. Allerdings sollte man den Parameter bei SDR möglichst nicht benutzen, da er selbst bei Gamma 2,2 das Bild verändert (es wird untenrum dunkler). Bei "auto" bleibt SDR unangetastet. Und bei "auto" wird ohnehin Gamma 2,2 für SDR und HDR angenommen. Solange man kein anderes Gamma am Projektor kalibriert hat, benötigt man den Parameter überhaupt nicht und er schadet mehr als dass er nützt.


    target-trc ist übrigens auch mit 3D-LUT wirksam. "Display is alread calibrated" dagegen nicht. Wenn ihr also eine 3D-LUT benutzt, setzt target-trc möglichst gar nicht.

Jetzt mitmachen!

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