MPV Player als Alternativer Player z.B. in Kodi

  • Ich hab jetzt noch ein wenig mit den Tonemapping-Settings herum probiert.

    Mit dem Stand der dabei rauskam, bin ich auch eigentlich recht zufrieden.


    Links madvr, rechts mpv

    croods_1_madvr_autoscaled.jpgcroods_1_mpv_autoscaled.jpg


    valerian_1_madvr_autoscaled.jpgvalerian_1_mpv_autoscaled.jpg


    madmax_1_madvr_autoscaled.jpgmadmax_1_mpv_autoscaled.jpg


    Bis auf die MadMax Szene sieht das bisher doch sehr ähnlich aus. Und bei MadMax gefällt mir die MPV-Version sogar besser, weil nicht ganz so dunkel.

    Allerdings sind auch hier noch Fehlfarben am Heck. Das Problem gab es bei madvr auch mal kurzzeitig. Hoffe MPV löst das auch bald.


    Meine Settings sehen jetzt so aus:


    Dazu hatte ich auch mal die externen Upscaler und Sharpener eingesetzt.

    Von links nach rechts: madvr, mpv mit ewa_lanczos, mpv mit externen Filtern (s.o.)

    disney_madvr_autoscaled.jpgdisney_mpv_raw_autoscaled.jpgdisney_mpv_adapt_autoscaled.jpg

    Man sieht einen leichten, aber doch erkennbaren Schärfegewinn mit den externen Filtern. Durch das Hochladen gingen die Details leider verloren. In Wirklichkeit kann man es jedoch erkennen. Die Renderzeiten gehen damit auch nicht wirklich höher.
    Sie können also gerne bleiben.

    "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

  • Uhrzeit und Endzeit werden jetzt via LUA-Script in den laufenden Film eingeblendet. Braucht noch einen Eintrag in der Datei input.conf, die parallel zur mpv.conf liegt, bsp für Taste "E":

    Code
    E script-message display-eta


    Und hier das Script, welches ich von hier habe und um die aktuelle Uhrzeit ergänzt. Hübsch machen und positionieren kommt noch.


    Das habe ich jetzt in erster Line probiert, um zu sehen, ob man beliebige Overlays machen kann. Kann mal also und damit gibt's nun endlose Möglichkeiten, seinen Player so zu gestalten, wie man es gerne hätte.


    "Der Pizza-Bote hat geklingelt" oder so, alles drin.. ;)

  • Den externen Schärfer habe ich eben mal getestet. Der bringt eine 1050 Ti mit 16:9 1080p-Material, hochskaliert auf 4k schon an den Anschlag, wenn auch nicht dauerhaft. Da gilt es dann also mal in Ruhe nach geeigneten Filtern zu suchen, denn mir persönlich ist das etwas zu viel Rechenlast für das bisschen mehr Schärfe. Gut aussehen tut es, das stimmt, aber ich vermute, das geht auch günstiger.

  • warum überrascht dich das dein Pentium Gold 4K wiedergeben kann?

    h265 Hardware support gibts bei Intel seit Haswell anno 2013.

    Weil ich einen falschen Hardware-Dekoder in die Config eingetragen hatte und MPV auf Software Decoding zurück gefallen ist. Steht doch in meinem Beitrag.

  • Ich habe mir jetzt mal - visuell - den Upscaler FSRCNNX und den Schärfer Adaptive_sharpen angeguckt. Das sind beides Kandidaten für einen Screenshot-Vergleich, denke ich.


    Der FSRCNNX Upscaler ist echt heftig und macht direkt ein 3D-mässiges Bild draus, mit unglaublicher Tiefe. Mir persönlich ist der allerdings einen Tick zu heftig, das sieht schnell unnatürlich aus, speziell, wenn die Quellen nicht blitzsauber sind, da Rauschen und Artefakte prima mit geschärft werden. Blitzsaubere Quellen tendieren dazu, von Haus aus eh scharf zu sein, so dass es dann nicht mehr eine solch heftige Maßnahme braucht. Es gibt leider keinerlei Parameter dazu einzustellen, jedenfalls habe ich eine ganze Weile gesucht und nix dazu finden können. Es existiert eine "lite" Version, mit der ich tatsächlich auch bei meinem schwierigsten Filmen eigentlich immer knapp bei 90% Auslastung der 1050 Ti gefahren bin. Was allerdings sein kann, ist dass ich versehentlich mehrere Scaler aktiv hatte, wobei ich zu verstehen glaube, dass immer der letze im Config-File angewandt wird.


    Adaptive Sharpen gefällt mir in seiner Standard-Auslegung schon sehr gut, ist ebenfalls schön scharf, geht aber auch bei schlechteren Quellen nicht über die Kante. GPU-Auslastung der 1050 irgendwo zwischen max. 70% und 80%.


    Mir ist auch bei MadVR immer ein am Ende auf das fertige 4K Bild gelegter Schärfe-Filter am liebsten gewesen, da damit Filme jeglicher Auflösung das gleiche Maß nachgepfeffert werden. Aus meiner Sicht ist diese Notwendigkeit in erster Linie dem Betrieb eines Projektors und nicht dem Filmmaterial geschuldet, so dass mir die einheitliche Behandlung allen Materials am sinnvollsten erscheint.


    Mein Ehrgeiz ist irgendwo geweckt, ein rundherum zufrieden stellendes Setup mit der 1050 Ti hinzubekommen. Die 1080 ist schon ein heftiges Gerät und ich finde auch, 250 oder was die zieht Watt in die letzen 3% Postprocessing zu stecken irgendwo nicht auf der Höhe der Zeit. Klar, wenn alle stricke reißen, schraub ich die da auch rein, aber ich will halt sehen, ob sich das nicht vermeiden lässt.


    Was ich eigentlich noch vermisse, ist ein Schärfe-Filter, der sich auf Linien konzentriert, da ich hier glaube, dass schnell bewegtes Rauschen nicht erfasst und geschärft wird.

  • @((( atom ))) Erst einmal vielen, vielen Dank für diesen Thread. Sehr interessant, da aktuell in meiner privaten IT-Umgebung nur noch ein WindowsPC werkelt, der mit madVR im Kino.


    Ich nutze mpv schon lange als Player auf meinem Desktop. ich nutze konsequent ARCH-Linux mit KDE.


    1. Welche Distribution nutzt Du für den HTPC.
    2. Welche GUI? KDE?... Gnome? Benötigt man eigentlich eine, wenn Kodi direkt starten soll. Ist bei LibreElec ja auch keine vorhanden.
    3. Welche GPU-Treiber nutzt Du? OpenSource oder von nvidia?

    Den Post hatte ich glatt überscrollt, mea culpa!


    1. Ubuntu, aus dem einfachen Grund, dass die KODI Entwickler wenn Support nötig ist, diesen am liebsten für Ubuntu geben, weil sie wohl darauf entwickeln. Für mich selber nutze ich auch nur Arch, alles andere ist mir zu unflexibel und die Arch Doku ist schlicht die beste. Eine rolling Distribution für ein "Gerät" ist aber nervig, weil man es aktuell alten muss, oder nie mehr Softwaree nachinstallieren kann. Etwas, das man für ein Gerät nicht immer leisten will.

    Ich könnte mir noch einen Docker vorstellen, der dann direkt alles drin hat.. :)


    2. Wurscht, da Kodi nach Vollendung des Werkes an sich ohne WM als Session gestartet werden kann, wie Du ja auch schon angedacht hast. Ich habe aber festgestellt, dass sich die Kodi/MPV Kombi so dermaßen brav und performant benimmt, dass man auch den Desktop darunter liegen lassen kann, da man den wirklich gar nicht zu sehen bekommt.


    3. Auf jeden Fall nix anderes als Nvidia original.


    Ein Tip für eine evtl. Installation: Aktiviere bereits beim installieren die Option 3rd Party Treiber/Software und installiere nach der Installation (äh, ja) die NVidia-Treiber zwingend über die Software- und Treiber-GUI. Nimm die letzen getesteten, nicht die aktuellen. Nur über die GUI kannst Du alle Treiber problemlos wieder deinstallieren und updaten. Wenn von Hand installiert, meldet die GUI, dass sie da nix machen kann. Wenn Du dann von Hand das Meta-paket, dass alle Treiber und Zubehör beinhaltet, deinstallieren willst, meldet das System, dass die einzelnen Komponenten aber installiert bleiben. Das macht die GUI wohl besser. ich habe es bitter lernen müssen, indem ich an der Stelle direkt von vorne begonnen habe, um den Ärger zu vermeiden.


    SOlltest Du ideen/eine config für Fernbedinung mit Lirc brauchen, ich habe das komplett fertig und seeehr flexibel.


    Hast Du evtl. den Nerv, Deine Installation gleich zu dokumentieren? ich habe das nicht gemacht, weil ich nicht wusste, ob das Ergebins sich überhaupt lohnen würde.. Ich denke, das würde hier einige Freunde finden..

  • Was allerdings sein kann, ist dass ich versehentlich mehrere Scaler aktiv hatte, wobei ich zu verstehen glaube, dass immer der letze im Config-File angewandt wird.

    Wie hast du die bei dir eingebunden?
    Wenn es mit mehreren glsl-shader Einträgen ist, werden die immer aneinander gehängt, ohne die vorherigen zu löschen. Ein glsl-shader entspricht also einem glsl-shader-append.
    "Each use of the --glsl-shader option will add another file to the internal list of shaders, while --glsl-shaders takes a list of files, and overwrites the internal list with it."


    Beim schärfen gibt es ja leider immer das Problem, das rauschen mit verstärkt wird. Vielleicht könnte man sich dafür eine Konfig erstellen, die mit einer Tastenkombination aktiviert wird und dann weniger Schärfefilter beinhaltet.


    Bei madvr läuft bei mir auch schon die Kombination aus scharfem hochskalieren plus Nachschärfung.

    Ich steh' wohl auf scharfe Bilder:) Und nehme auch die Nachteile in Kauf.

    Da in meinem Rechner eh schon eine 2070 Super steckt, kann die auch ruhig etwas ausgelastet werden. Wobei die auch mit den Filtern nur bei 10% liegt.


    @((( atom ))) Hast du dir die Lastverteilung bei dir mal angeschaut. Bei mir braucht das Dithering mit error-diffusion am meisten (70%). Rein visuell macht der Unterschied im Dithering zwischen error-diffusion und fruit vermutlich weniger aus, als zwischen mit und ohne die externen Shader.

    "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

  • Hallo,

    Ich lese hier gerade sehr mit. Ein How To würde Ich sehr begrüßen. Aktuell läuft auf meinem HTPC noch windows 7 und Kodi Leia mit aktuell eingebauten 12 TB Festplatten. Das ganze auf eurem alten Athlon x240 mit Onboard Karte. Den Sprung zu Linux habe ich mich fürs Kino noch nicht getraut. Meine Haussteuerung läuft allerdings seit Jahren Stabil unter Linux.

    Was ich sagen will, sofern mir keiner bis Ende Januar zuvorkommt, könnte ich das HowTo mit Unterstützung erstellen.

  • Hast Du da andere, bessere Werte, oder die einfach auskommentiert?

    Ich habe die komplett entfernt und nur Deband dringelassen.


    Gestern habe ich mich ein wenig mit der Automatisierung beschäftigt. Ich habe ja eine komplett automatische Maskierung auf Basis von Metadaten am Film. Die Maskierung wird angesteuert und der Zoom im Player wird gesetzt. Ich war gestern so weit, dass ich per LUA-Script in MPV den Zoom abhängig von einem Tag im Dateinamen des Films (z.B. "ar=2.4") setzen konnte. Das funktioniert problemlos. Dann müsste ich nur noch per UDP eine Nachricht an meine Maskierungssteuerung senden. Auch das ist irgendwie machbar. Leider bringt der eingebaute LUA-Interpreter sowas nicht mit. Man müsste wohl LUA installieren, auf JavaScript umsteigen oder ein kleines Programm aufrufen, das die UDP-Pakete versendet. Dasselbe gilt für das Parsen von XML. Das hatte ich mir einfacher vorgestellt. Ist aber alles irgendwie machbar.


    Geil ist auch die Möglichkeit, Profile anhand von Bedingungen zu aktivieren. Man kann mit "profile-cond" im Profil eine LUA-Bedingung einbringen. Z.B. kann man auch hier den Dateinamen nach einem Tag durchsuchen und dann das Profil aktivieren.


    Durch diese mannigfaltigen Möglichkeiten sollte man MPV dazu bekommen, das gesamte Heimkino zu steuern. Also komplett ereignisgesteuert. Pause/Play dimmt das Licht, die Metadaten steuern die Maskierung an usw. Das habe ich jetzt zwar auch alles schon, aber ich denke, mit MPV wäre es stabiler machbar und flexibler.


    Die Bildwiederholfrequenz wechselt MPV dank diesem Script (nur für Windows) jetzt auch automatisch. Man kann sogar einstellen, wie lange er pausieren soll, bis der Projektor ein Bild zeigt.


    Ach ja, (zumindest unter Windows) kann man einfach die Unterverzeichnisse "mpv" für die Konfigurationen, "scripts" und "script-opts" direkt unterhalb von mpv.exe ablegen. Damit ist das ganze Verzeichnis voll portabel. :)


    Ich denke, ich werde die Automatisierung soweit erweitern, dass ich den Player einfach mal längere Zeit testen kann. Bisher bin ich sehr positiv überrascht von MPV. Das Ding ist perfekt als minimalistischer Player geeignet, der unter der Haube sehr mächtig ist. Eine externe GUI für die Filmauswahl sollte aber schon da sein. Daher ist das auch kein Player für Anfänger. Man sollte sich schon damit beschäftigen.

  • @((( atom ))) Hast du dir die Lastverteilung bei dir mal angeschaut. Bei mir braucht das Dithering mit error-diffusion am meisten (70%). Rein visuell macht der Unterschied im Dithering zwischen error-diffusion und fruit vermutlich weniger aus, als zwischen mit und ohne die externen Shader.

    Das Dithering benötigt bei mir auch um die 70%

    Gestern habe ich mich ein wenig mit der Automatisierung beschäftigt. Ich habe ja eine komplett automatische Maskierung auf Basis von Metadaten am Film. Die Maskierung wird angesteuert und der Zoom im Player wird gesetzt. Ich war gestern so weit, dass ich per LUA-Script in MPV den Zoom abhängig von einem Tag im Dateinamen des Films (z.B. "ar=2.4") setzen konnte. Das funktioniert problemlos. Dann müsste ich nur noch per UDP eine Nachricht an meine Maskierungssteuerung senden. Auch das ist irgendwie machbar. Leider bringt der eingebaute LUA-Interpreter sowas nicht mit. Man müsste wohl LUA installieren, auf JavaScript umsteigen oder ein kleines Programm aufrufen, das die UDP-Pakete versendet. Dasselbe gilt für das Parsen von XML. Das hatte ich mir einfacher vorgestellt. Ist aber alles irgendwie machbar.

    Ich benutze eine Custom Auflösung mit 3840x1600 (2.4:1). Mit dem https://github.com/mpv-player/…er/TOOLS/lua/autocrop.lua script passt sich jeder Film automatissch in die Leinwand ein.
    Das Script habe ich inzwischen modifiziert und habe zusätzlich optionalen Stretch/Zoom für unterschiedliche Formate hinzugefügt um das Bild auf 2.4:1 anzupassen.
    Dazu benutzt man dann die Shift+C Taste um den Zoom anzupassen und es funktioniert komplett ohne Dateinamenänderungen etc. Bei allen formaten > 1.9:1 habe ich das momentan automatisch aktiviert.
    Zusätzlich habe ich noch die Oberfläche angepasst und habe den Fullscreenbutton unten rechts mit einer "Toggle Zoom" Funktion ersetzt, womit ich die Funktion ein-/auschalten kann


    Edit: meine momentanten Version von autocrop mit stretch/zoom/crop:

    Vlt kann damit jemand was anfangen

    Für die Modifizerung des Buttons habe ich die "osc.lua" aus git in den script orderner gepackt und in der config das original osc ausgeschaltet (osc=no)


    Danach im osc.lua Script die Zeilen geändert:

    Code
    -- removed old lines
    --ne.eventresponder["mbtn_left_up"] =
     --function () mp.commandv("cycle", "fullscreen") end
    
    -- add new lines
    ne.eventresponder["mbtn_left_up"] =
       function () mp.command("keypress C") end

    Für Fullscreen toggle benutze ich eh Doppelklick


    Zur Vollständigkeit hier noch meine momentane Config:


  • Dazu benutzt man dann die Shift+C Taste um den Zoom anzupassen

    Dann ist es ja nicht vollautomatisch. :)


    Ich halte Abstand von Autoerkennungen, da das bei Filmen mit verschiedenen Formaten nicht 100%ig funktioniert. Ich analysiere die Filme vorher lieber einmal manuell und setze das Seitenverhältnis dann fest. So kann man z.B. auch "Tenet" komplett in 2,2:1 schauen oder ähnliches.

  • Ich lese hier sehr gespannt mit und überlege einen Versuch zu starten. Abgesehen von der Qualität des Tonemappings im Vergleich zu madVR gibt es aber 2 Punkte die ich gerne vorab klären würde.


    1) Kann MPV unter Linux 3D MVC dekodieren/abspielen und auch richtig über HDMI ausgeben?


    2) Ich befürchte, meine HDMI Capture Card funktioniert nicht unter Linux für HDMI Input und Tonemapping von Streaming Inhalten.

    Hat hier jemand bereits Erfahrungen?

  • Dann ist es ja nicht vollautomatisch. :)


    Ich halte Abstand von Autoerkennungen, da das bei Filmen mit verschiedenen Formaten nicht 100%ig funktioniert. Ich analysiere die Filme vorher lieber einmal manuell und setze das Seitenverhältnis dann fest. So kann man z.B. auch "Tenet" komplett in 2,2:1 schauen oder ähnliches.

    Shift+C ist nur für 16:9 - weil ich das nicht automatisch will für 16:9. Alle anderen bisher eingetragenen Formate funktionieren automatisch.
    Ja bei der Erkennung habe ich auch schon Fehler gesehen beim Testen. Über Dateinamen geht es natürlich auch.
    Bei guter Autoerkennung gehen auch Formatwechsel - zumindest hat das mit Madvr bei Aquaman gut funktioniert. Ich teste das mal mit meiner Bastelei.

  • Super spannender Ansatz, danke für den Impuls @((( atom ))) .


    Das größte Argument für MPV wäre für mich das wegfallen der discrete GPU. Ein 9th Gen Intel CPU mit integrierter UHD 630 sollte das wohl schaffen (GitHub). Damit ergeben sich natürlich ganz neue Möglichkeiten, z.B. ein 2HE Unraid ganz ohne Windows VM.


    Ich persönlich glaube, dass Dynamic Tone Mapping auf kurz oder lang commodity wird und auf allen modernen Projektoren aufs MadVR Level kommt. Deshalb könnte ich den Unterschieden bei den Extremfällen verschmerzen.


    Werde auf jeden Fall bald mal selbst rumexperimentieren und hier Eindrücke teilen, der Rechner ist gerade im Umbau…

  • Hast Du evtl. den Nerv, Deine Installation gleich zu dokumentieren? ich habe das nicht gemacht, weil ich nicht wusste, ob das Ergebins sich überhaupt lohnen würde.. Ich denke, das würde hier einige Freunde finden..

    Das kann ich gerne machen, wenn ich dazu komme. Momentan bin ich in 3D-Drucker-Bastel-Modus. Ich denke aber das ich das die Weihnachtstage mal angehen könnte. Werde es dann mit Ubuntu versuchen.


    Das Ziel bei soll sein, den HTPC als LXD oder KVM mit GPU-Paththrough laufen zu lassen.


    BTW: LIRC brauche ich nicht, habe einen FLIRC-Dongle

Jetzt mitmachen!

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