[Announce] vdr-plugin-plex-0.1.1

  • Hallo,


    Nach nun einiger Zeit, viele Test- und Codingstunden, release ich Version 0.1.0 vom Plugin "Plex for VDR"


    Mit dem Plugin lassen sich Videos (Filme, Serien, Youtube, Vimeo, uvm.) via dem eigenem Plexmediaserver direkt im VDR über das Ausgabedevice abspielen. Getestet habe ich es mit Softhddevice, theoretisch müsste jedes andere Ausgabedevice (rpihddevice, xine, fullfeatured) funktionieren.
    Die Videos werden je nach Quellmaterial on-the-fly in einen TS-Stream verpackt. Sollte das Quellmaterial nicht h264 vorliegen wird es on-the-fly in h264 vom Plexmediaserver reencodiert (eventuell potente CPU erforderlich), die meisten MKV können aber direkt gestreamt werden.


    Die Plexmediaserver werden automatisch im Netzwerk gefunden.
    In den Optionen lässt sich ein "Plex Pass" hinterlegen.


    Man kann entweder mit den VDR Menüs seinen Plexmediaserver durchsuchen, oder was deutlich komfortabler ist, mit den Plex "Apps" (Android, IOS, Web) mittels der "Cast to" Funktion. Youtube
    Über die Apps lässt sich der VDR auch Fernbedienen


    Spulen ist wegen des Http-Live-Streams leider nicht möglich. Deswegen wird "gesprungen" Grün/Gelb -> +/- 5min
    Oder über die Apps, damit lässt sich genau die gewünschte Stelle anspringen.
    "Now Playing" wird unterstützt.


    Somit habe ich XBMC/Kodi endlich los ;)
    Sobald louis seine Aktuelle "Baustelle" im Skindesigner beendet hat wird es "Bunt" ;) Covers, Fanarts, Infotexte, alles schön skinbar.
    Deswegen wird sich das ganze ohne skindesigner optisch in grenzen halten...


    Viel Spaß. Bugs in den Bugtracker oder hier.


    Vorraussetzungen:
    Plexmediaserver (ohne geht nix)
    libpoco >= 1.4.6 (!! Die Version aus YaVDR 0.5 ist zu alt!)
    libpcrepp


    Git: http://projects.vdr-developer.org/projects/plg-plex oder https://github.com/chriszero/vdr-plugin-plex


    Chris.

  • Hi Chris,


    an der Stelle mal ein fettes Dankeschön für die ganze und vor allem tolle Arbeit mit dem Plugin! Da steckt so viel drin (wie einen .m3u8 http-videostream direkt in ein VDR device ummünzen).


    Weiter so! Ich bin schon sehr gespannt auf Deine UI Erweiterungen und wo die Reise hingeht.


    Grüße,
    J*

  • [...] oder was deutlich komfortabler ist, mit den Plex "Apps" (Android, IOS, Web) mittels der "Cast to" Funktion. ...


    Dass das "deutlich komfortabler" ist, wage ich zu bezweifeln, zum Einen braucht man ein weiteres Gerät und zum Anderen ist die Verbindung nicht sonderlich stabil und so etwas wie ein "reconnect" ist wohl nicht vorgesehen. getestet mit einem Nexus5 mit Lollipop.

  • Ich würde mir noch den entsprechenden Tag in deinem Git wünschen :D


    Tag ist gepushed


    Dass das "deutlich komfortabler" ist, wage ich zu bezweifeln, zum Einen braucht man ein weiteres Gerät und zum Anderen ist die Verbindung nicht sonderlich stabil und so etwas wie ein "reconnect" ist wohl nicht vorgesehen. getestet mit einem Nexus5 mit Lollipop.


    Ist mit Sicherheit Ansichtssache. Ich habe auch ein Nexus5 mit Lollipop und keine Probleme, auch nicht mit einem Nexus10 oder dem OnePlus. Die Verbindung zwischen Smartphone und dem Plugin läuft über eine Art Polling ab. Die App registriert sich beim Plugin mit einer "CommandID" dann wird per HTTP-POST vom Plugin zur App im Sekundentakt Daten übertragen. Sollte sich die App innerhalb von 30sek nicht erneut registriert haben wird das beliefern mit Daten eingestellt. Wenn die App zwischendurch das Netzwerk wechselt oder verlässt (WLAN im Ruhemodus nicht aktiv -> Einstellungen -> WLAN -> Erweitert) muss über die Cast Funktion erneut der Player gewählt werden. Ansonsten lässt sich das nur mit Wireshark debuggen. Von Plex gibt es ja in der Richtung praktisch keine Informationen, ich habe alles mit Wireshark und den "Plex Home Theater" Sourcen herausfinden müssen.


    Wenn der skindesigner soweit ist steigt auch die Benutzbarkeit der Oberfläche im VDR nochmal an, vorerst bleibt es bei den Listenelementen.


    Ideen zum "springen" in der Wiedergabe nehme ich gerne an.
    In Mediaportal (Windows) werden "Skip Steps" verwendet
    drücken -> 15s
    2x drücken -> 30s
    3x drücken -> 1min
    4x drücken -> 5min
    könnte man Konfigurierbar machen, somit kann das jeder nach seinem Gusto einstellen.

  • Mir gefällt dein Code. Ich bin am überlegen, ob es Sinn macht den Plexbmc-Helper-Script mit Hilfe deines Codes zu reimplementieren. Der läuft nämlich alles andere als stabil und mit C++ komme ich nun mal deutlich besser klar als mit Python.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Viel Spaß. Bugs in den Bugtracker oder hier.

    Hi Chriszero,


    ich hab's heute nachmittag dann ans laufen bekommen. Aus der iPhone-App mit dem Plexcast bekomme ich Filme und Serien gespielt, dass ist schon ziemlich gut. Was mir (bisher) aber aufgefallen ist, sind Fehlerchen/Fehlendes in der Navigation innerhalb des VDR.


    • Serien werden nicht mit Collection Name angezeigt bzw. oft steht einfach nur "EMPTY" da
    • Channels sind aus der Navigation innerhalb VDRs nicht erreichbar, er zeigt nur Video-Sammlungen an
    • Abspielmarken werden a) ignoriert und b) nicht aktualisiert


    Mehr ist mir bisher nicht aufgefallen... Wenn Du Debug-Logs willst, dann gib kurz Bescheid wo ich was einstellen soll dafür. Ich hab's ja händisch gebaut und kann gerne irgendwas in den Code einfügen.


    Für *mich* ist es allerdings jetzt schon Super, weil ich viel mit VDR LiveTV schaue und jetzt nicht zwingend PlexConnect, AppleTV usw brauche um mal einen Film aus der Plex Mediathek zu schauen.


    Grüße,
    Alex

  • Abspielmarken werden a) ignoriert und b) nicht aktualisiert


    Was meinst du mit Abspielmarken?


    "Collection Name" bei Serien? Screenshot? Bzw die XML vom PMS würde mich Interessieren. Ich habe das anscheinend nicht bei mir....
    Das mit den Channels ist mir auch aufgefallen gerade ;)

  • Moin,


    Abspielmarke - also wenn einen Film schaue bis 23:42 und dann das Abspielmedium wechsele, dann fragt mich Plex.tv, die iOS App und Plexconnect, ob ich da weiter schauen mag oder von vorne ... Dein Plugin fängt sofort von vorne an.


    Umgekehrt genauso, es wird nicht "gemeldet", wo ich abgebrochen habe und das Resume wird nicht angeboten.


    Collections - was für ein XML meinste denn und woher, dann schick ich Dir gerne was?


    Beispiel:


    Ich habe die Serien sortiert nach [Serienname]-[Staffel]-[Folgen]


    Also:


    TheFlash-Season01-01_blablabla


    Wie navigiere ich mich dahin? Wenn ich den "Baum" entlang gehe, dann sind die Folgenordner alle immer "EMPTY", wenn nach "unwatched" navigiere, dann sehe ich Folgen - aber ohne Namen :)


    Unser Knirps schaut gerade Wickie, wenn der im Bett ist probiere ich mal Screenshots zu machen.


    VG,
    Alex

  • OK, Apspielmarken sollten zumindest vom Plugin zum Server funktionieren. Das andere mus ich noch machen.


    Meine Serien sind genau so sortiert. Müsste eigentlich gehen.


    Um an die XML zu kommen:
    Wird in Zeile 135 von Plexservice.CPP ins syslog eine URL geloggt. Diese einfach in den Browser kopieren.


    Habe in der Zwischenzeit die Menünavugation verbessert. Deutlich schneller, und Video Kanäle sind auch da. Siehe GIT

  • Hallo,


    ich habe mir dieses Plugin jetzt auch mal installiert (aktuellen Git-Stand). Super Sache, auch mit meiner TT6400 funktioniert es prinzipiell.


    Es geht das Abspielen von Videos, wenn ich sie über eine Tablet-App starte. Dann kann ich auch am vdr weiter bedienen, z.B. Vor- und Zurückspringen.


    Code
    Feb 17 15:14:17 home-05.home.de vdr[31080]: [31080] [plex]: play file '/library/metadata/528'
    Feb 17 15:14:18 home-05.home.de vdr[31080]: [31990] [plex]Action Create Ringbuffer 64 MB
    Feb 17 15:14:47 home-05.home.de vdr[31080]: [31080] switching to channel 104


    Ich habe allerdings einige Probleme (auch schon mit Version 0.1.0):


    1. Das Plex-Menü wird aufgerufen, es steht dann da:
    - PlexMediaServer - Library
    - PlexMediaServer - Video Channels
    Wenn ich dann eins von Beiden aufrufe, stürzt der VDR ab:


    Code
    Feb 17 15:17:20 home-05.home.de vdr[32301]: [32301] [plex] plex.tv Login failed, check you creditials.
    Feb 17 15:17:21 home-05.home.de vdr[32301]: [32301] [plex] plex.tv Login failed, check you creditials.
    Feb 17 15:17:22 home-05.home.de vdr[32301]: [32301] [plex] plex.tv Login failed, check you creditials.
    Feb 17 15:17:24 home-05.home.de systemd[1]: vdr.service: main process exited, code=killed, status=6/ABRT


    2. Wenn ich versuche, vom Tablet aus, ein Foto zu schicken, dann stürtzt der VDR auch ab:


    Code
    Feb 17 15:15:11 home-05.home.de kernel: vdr[31095]: segfault at 1f0 ip 00007f6ea8a7da5a sp 00007f6e89ffa4b0 error 6 in libvdr-plex.so.2.1.10[7f6ea8a48000+52000]
    Feb 17 15:15:13 home-05.home.de systemd[1]: vdr.service: main process exited, code=killed, status=11/SEGV


    Frage dazu: Das Ganze sollte doch auch ohne einen Plex-Account funktionieren? Zum Testen habe ich mich da noch nicht registriert.
    Und am Tablet geht ja auch alles.


    Außerdem wird der Ton von Videos mit mp3-Ton nicht wiedergegeben. Wäre das Sache vom Plugin dem Plexmediaserver mitzuteilen, das er hier was machen muss, oder muss ich das dem Plexmediaserver Geräteabhängig selbst beibringen?


    Grüsse
    kamel5

    VDR 2.6.6: ASUS Prime X470-PRO, Ryzen 7 5700X, 64GB, 6TB HD, GT1030, Fedora 39 Kernel 6.8 X86_64, Devicebonding 2 x 1 auf 2, TT6400, DVBSky S952 V3

    Git-Repo: gitlab.com/kamel5

  • Hallo,


    hast du zu dem crash einen Backtrace? Weil an dem fehlendem Login liegt das nicht.


    Bilder und Musik geht noch nicht, deswegen crasht das. Aus dem VDR Menü kann man diese nicht auswählen.


    Kann es sein das die TT6400 nicht mit MP3 klar kommt? Falls das so ist müsste ich ein anderes Profil beim PMS hinterlegen. Dann wird der MP3 Ton in AC3 oder MP2 transcodiert.


    Chris

  • Hallo,


    ja, die TT6400 kann MP3 nicht direkt, AC3 oder MP2 ist OK.



    hast du zu dem crash einen Backtrace? Weil an dem fehlendem Login liegt das nicht.


    Reicht da die Ausgabe von valgrind?


    vdr.txt.gz


    Allerdings gestern noch mit der Version 0.1.0 gemacht.


    Wenn ich noch was Anderes, z.B. gdb, machen soll, kann ich das versuchen, zeitlich frühestens aber erst am Donnertag.


    Grüsse
    kamel5

    VDR 2.6.6: ASUS Prime X470-PRO, Ryzen 7 5700X, 64GB, 6TB HD, GT1030, Fedora 39 Kernel 6.8 X86_64, Devicebonding 2 x 1 auf 2, TT6400, DVBSky S952 V3

    Git-Repo: gitlab.com/kamel5

  • Fedora benutzt auch systemd. Dann ist das total einfach.


    coredumpctl aufrufen. Gecrashten Prozess in der Liste suchen, PID merken. Ist er nicht da, musst du den VDR mit --userdump starten.


    Danach:
    coredumpctl gdb $PID


    Darin dann diese 4 Befehle:


    set logging file backtrace.txt
    set logging on
    bt full
    quit


    Und die erstelle backtrace.txt irgendwo hochladen. (pastebin z.B.)


    Bessere Ergebnisse gibt es, wenn man die Debug-Pakete installiert hat. Ob es die bei Fedora gibt, kann ich nicht sagen.

  • Danke, werde ich probieren.


    Debug-Pakete gibt es bei Fedora auch, muss ich dann mal installieren.
    Ich hätte den vdr im gdb laufen lassen, mal sehen, was sich hier besser macht.

    VDR 2.6.6: ASUS Prime X470-PRO, Ryzen 7 5700X, 64GB, 6TB HD, GT1030, Fedora 39 Kernel 6.8 X86_64, Devicebonding 2 x 1 auf 2, TT6400, DVBSky S952 V3

    Git-Repo: gitlab.com/kamel5

  • Hallo,


    so, ich habe jetzt mal einen Backtrace zum Abstutz erzeugt, nach Copperhead's Anleitung inklusive Debug-Pakete, hat gut funktioniert.


    backtrace.txt.gz


    Meine Konfiguration dazu war:
    Plain-VDR-2.2.0-rc1 + dvbhddevice + remote + plex



    Grüsse
    kamel5

    VDR 2.6.6: ASUS Prime X470-PRO, Ryzen 7 5700X, 64GB, 6TB HD, GT1030, Fedora 39 Kernel 6.8 X86_64, Devicebonding 2 x 1 auf 2, TT6400, DVBSky S952 V3

    Git-Repo: gitlab.com/kamel5

  • Danke, werde ich mir heute Abend anschauen.
    Zwei Dinge noch:
    Welche Version hat deine libpoco?
    Kannst du mir dir XML Datei die vor dem crash aufgerufen wird noch geben. Die URI dazu wird ins syslog geschrieben. Einfach ein einen Browser eingeben und die XML speichern.


    Danke

Jetzt mitmachen!

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