[Announce] mpv Plugin 0.0.1 alpha (fork von vdr-play) - libmpv als Mediaplayer

  • Hi,


    ich habe mich mal des play-Plugins angenommen und es umgebaut so dass es nun mpv anstatt mplayer/mplayer2 nutzt. Die erste Version wird noch als alpha veröffentlicht, da es zwar bei mir problemlos funktioniert ich aber keine Tests auf anderen Konfigurationen habe. Ich hoffe es läuft bei euch ;)


    Folgende Änderungen habe ich bisher vorgenommen:
    - Umbau auf libmpv, dadurch entfällt das Fehleranfällige parsen des Slave Modes
    - OSD wird über die API von libmpv dargestellt, das ermöglicht ein perfektes OSD inkl. Transparenz
    - Wiedergabe OSD wird ähnlich wie bei der Wiedergabe von VDR Aufnahmen angezeigt
    - Mit xrandr ist es möglich die Ausgabe modeline auf eine zur Film Framerate passende automatisch umzuschalten
    - DTS-HD Passthrough


    Bekannte Fehler:
    - Untertitel funktionieren noch nicht, generell kann mpv natürlich Untertitel darstellen, allerdings klappt es derzeit noch nicht sie so zu nutzen, so dass sie vernünftig über die Fernbedienung steuerbar sind
    - Audio/Untertitel Auswahl in DVD Menüs funktioniert nicht (mpv Bug)
    - Aktuell wird nur vpdau unterstützt, dies wird sich aber in einer der nächsten Versionen ändern, da dann die Parameter als Plugin-Parameter durchgereicht werden sollen


    Parameter:
    -/ /dir browser root directory
    -a audio e.g. -a alsa:device=[hdmi:CARD=NVidia,DEV=3]
    -r switch modeline to refresh rate of played file


    Zwingend notwendig ist der audio Parameter.


    Vorraussetzungen:
    - libmpv in möglichst aktueller Version, getestet ist es mit dem aktuellen git Stand, ältere Versionen können u.U. Probleme bereiten da die mpv Devs gerne mal verschiedene Parameter ändern
    - optional xrandr für Modeswitch

  • Sehr schön! Hab den Mplayer schon längere Zeit durch MPV ersetzt und benutze zur Steuerung das mplayer-Plugin. Das funktioniert zwar gut, aber das OSD vom VDR geht dabei halt flöten. Und mit dem rudimentären Erscheinungsbild des MPV-OSDs ist nicht jeder zufrieden = Stilbruch.


    Hab das grad mal auf die Schnelle installiert und getestet. Funzt wie versprochen...sehr fein!


    iNOB

  • Moin,


    klingt ja spannend...muss ich mal ausprobieren :tup


    Ich bin mir bewusst, dass das Plugin erst im Alpha Stadion ist...aber trotzdem die Frage, weil es mich natürlich interessiert: ist es technisch irgendwie möglich, das VDR OSD zu benutzen? Idealerweise mit dem Skindesigner Interface...dann könnte man (ähnlich wie beim Plex Plugin) das Plugin komplett in den VDR integrieren und optisch würde alles zusammenpassen. Zum einen wäre da das OSD während der Wiedergabe, zum anderen wären natürlich auch "schöne" Auswahllisten mit Postern und Bannern usw. interessant...


    Aber wie geschrieben: das können wir ja ggf. angehen, wenn das Plugin an sich erst mal stabil läuft...


    Ciao Louis


  • Ich bin mir bewusst, dass das Plugin erst im Alpha Stadion ist...aber trotzdem die Frage, weil es mich natürlich interessiert: ist es technisch irgendwie möglich, das VDR OSD zu benutzen? Idealerweise mit dem Skindesigner Interface...dann könnte man (ähnlich wie beim Plex Plugin) das Plugin komplett in den VDR integrieren und optisch würde alles zusammenpassen. Zum einen wäre da das OSD während der Wiedergabe, zum anderen wären natürlich auch "schöne" Auswahllisten mit Postern und Bannern usw. interessant...


    Das VDR OSD wird bereits benutzt, allerdings über einen extra OSD-Provider da es als ARGB in einen shared memory mit mpv geschrieben wird. Skindesigner sollte damit auch problemlos laufen, ist aber noch ungetestet (ich will skindesigner schon länger testen, bin aber noch nicht dazu gekommen).


    Ich plane auch eine Art mediacenter-Plugin zu bauen. Dafür hat das Plugin auch bereits ein Interface um von einem anderen Plugin aus etwas zu starten. Ich hatte vor längerer Zeit auch bereits etwas begonnen mit SQL-Datenbank im Hintergrund, dynamischen Menüs, eigenem Scraper und massiven rumgepatche an skinnopacity um das darzustellen.
    Wenn mpv soweit stabil auch bei anderen läuft und die letzten aktuellen baustellen raus sind wollte ich mich da wieder dransetzen. Ich bin mir nur noch nicht sicher ob ich es neu aufziehe oder den aktuellen Stand komplett umbaue. Geplant ist aufjedenfall die ganzen tollen Sachen die es mittlerweile so gibt zu nutzen (scraper2vdr, skindesigner, Screenshots vom neuen pley-Plugin gefallen mir auch sehr gut, so dass man sich dort auch am Design orientieren könnten.)

  • Ich wollte erst was schreiben, wenn ich es auch getestet habe.


    Klar, es ist Alpha, aber das so wenig passiert hätte ich nicht erwartet.



    Ich sehe in der Mitte einen Mauszeiger und das wars auch schon.


    mpv --> https://www.archlinux.org/packages/community/x86_64/mpv/

  • Sieht erstmal danach aus das mpv nicht startet. Das kann an einer fehlenden libmpv liegen (die wird nicht standardmäßig mitkompiliert, ich werde im Makefile einen check über pkg-config einbauen um das als Fehlerquelle auszuschliessen). Oder die lib ist zu alt und kennt die aktuell verwendeten Parameter nicht. Vor ein paar Tagen wurde erst wieder der Parameter für DTS-Passthrough verändert, eventuell liegts daran. Ich guck mal das ich dort eine bessere Log-Ausgabe eingebaut bekomme.


    Edit: Die 0.9.2 ist zwar erst knapp 3 Wochen alt, aber der Parameter wurde danach geändert.
    Du kannst mal versuchen Zeile 235 auf folgendes zu ändern:


    Code
    check_error(mpv_set_option_string(ctx, "ad", "-spdif:mp3,-spdif:aac,spdif:*"));


    Wenn du DTS-HD Passthrough nach der Änderung haben möchtest folgende Zeile einfügen:


    Code
    check_error(mpv_set_option_string(ctx, "ad-spdif-dtshd", "yes"));


    Ich glaub ich bau das auch erstmal wieder um, derzeit funktioniert beides, die alte Option ist nur deprecated markiert.


    Du kannst auch versuchen im Makefile das DEBUG zu nutzen, dann sollten alle Log Messages vom mpv mit im Log landen.


  • Ich sehe in der Mitte einen Mauszeiger und das wars auch schon.

    Da ich wie Du Archlinux benutze und das Plugin auch hier das gleiche Verhalten zeigt, könnte es etwas mit der Version von mpv zu tun haben?

    MSI H55M-E33 |Intel Core i3 530| 4 GB RAM | TT DVB-S2 6400 | Ubuntu 12.04 | Kernel-3.5.0-28 | VDR-2.2.0 | v4l-dvb| eigene Distri.
    ProLaint: Ubuntu Server 12.04.5 auf HP ProLiant ML330 G6, Xeon E5506 2.13-GHz, 16GB ECC DDR3, Digital Devices MaxS8, Samsung 840 EVO 120GB, 4x WD Red WD30EFRX 3TB in HP P410 Raid6, Zotac GT730 1GB

  • Maniac: Jetzt kommt mehr Text im Journal aber auf dem Bildschirm ist noch nicht anders.


  • Ich habe mir mal die aktuelle Git-Version von mpv (gibt ja PKGBUILDs im AUR dafür) gebaut. Er spielt auch etwas ab, aber er scheint an einem HD-ready TV Probleme zu haben:

    Video und Ton funktionieren, das OSD sehe ich nicht (eventuell liegt das daran, dass der TV nur mit 720p läuft) und wenn ich die Wiedergabe stoppe, kehrt er nicht zu softhdevice zurück.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Ok, den alsa default werde ich als default einbauen wenn kein-a übergeben wird.


    Stimmt, OSD != 1920x1080 kann noch Probleme machen. Derzeit wird das noch fest auf 1920x1080 gesetzt. Baue ich in der nächsten Version um.

  • Ich habe 1080p und trotzdem kein OSD

    Nur zur Bestätigung. Habe ebenfalls kein OSD mit dieser Auflösung.

    MSI H55M-E33 |Intel Core i3 530| 4 GB RAM | TT DVB-S2 6400 | Ubuntu 12.04 | Kernel-3.5.0-28 | VDR-2.2.0 | v4l-dvb| eigene Distri.
    ProLaint: Ubuntu Server 12.04.5 auf HP ProLiant ML330 G6, Xeon E5506 2.13-GHz, 16GB ECC DDR3, Digital Devices MaxS8, Samsung 840 EVO 120GB, 4x WD Red WD30EFRX 3TB in HP P410 Raid6, Zotac GT730 1GB

  • Ich werde etwas mehr Logging in der Richtung einbauen. Was nutzt ihr den als Skins? Den skindesigner, skin-Plugins oder einen der Standardskins?


    Mit skinnopacity (als Plugin) und den VDR Standard-Skins ist es bei mir getestet.


    Hat der VDR Schreibrechte unter /tmp?

  • Was nutzt ihr den als Skins?

    LCARS

    Hat der VDR Schreibrechte unter /tmp?

    Ja, er scheint da auch eine Datei angelegt zu haben, warum die write-only ist, weiß ich aber nicht (also ich sehe es im Code, dass sie so angelegt wird, aber verstehe nicht warum das gemacht wird):

    Code
    $ ls -la /tmp/
    insgesamt 8144
    drwxrwxrwt  9 root root     260  9. Jun 12:13 .
    drwxr-xr-x 20 root root    4096 25. Feb 11:22 ..
    [...]
    --w-------  1 vdr  vdr  8294400  9. Jun 12:14 play_osd_1
    [...]

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

Jetzt mitmachen!

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