vdr-plugin-plex

  • Hi,
    ich habe (vermutlich) herausgefunden, warum bei mir die Skin Unterstützung nicht funktioniert hat / keinen Server gefunden hat.
    Bei den Skins wird wohl nur der erste "konfigurierte" Server verwendet. Und der war bei mir falsch konfiguriert:


    Ich hatte keinen Server eingetragen (plex.ServerHost =) aber ausgewählt (plex.UseConfiguredServer = 1). Ohne plex Unterstützung im Skin sehe ich dann meinen lokalen Server ("vdr"), insgesamt vier Einträge. Mit plex Unterstützung im Skin (tryouts) bekomme ich dann nur eine Fehlermeldung.
    Wenn ich den Server richtig eintrage (mit IP), dann sehe ich die Vorschaubilder.


    Mit der falschen Konfiguration bekomme ich auch zwei "dummy" Einträge. Die beiden ersten Einträge sind dann leer. D.h. mein Plex Menü sieht in etwa so aus:

    Code
    - Bibliothek
      - Video Kanäle
      vdr - Bibliothek
      vdr - Video Kanäle


    Evtl. kann man da noch was fixen. :)


    Danke!
    Stefan

  • Hallo,


    prinzipiell funktioniert die Verbindung Plexmediaserver und Plex-Plugin bei mir recht gut.


    Einige Dinge sind mir bei der Nutzung aber aufgefallen:


    1.
    Ich habe kurz nach dem Starten eines Videos in 90% der Fälle einen oder mehrere Hänger bei der Wiedergabe, danach läuft das Video erstmal eine ganze Weile ohne Probleme. Oft tritt dieser Effekt aber auch später im Video nochmals auf.


    Folgender Logauszug dazu, es wurden 3 Videos angespielt, das Problem ist reproduzierbar:



    Der Hänger taucht im Log als Error auf.
    Wie man sieht tritt dieser Effekt immer nach einerm "ResizeRingbuffer" auf, aber nie nach der ersten Änderung. Springt man danach kurz zurück und spielt die gleiche Stelle nochmals ab, tritt der Hänger nicht nochmal auf.
    Ein Problem des Servers kann ich hier vermutlich ausschließen, da bei anderen Clients das Problem nicht auftritt, die Videos außerdem nicht umkodiert werden müssen und die Auslastung des Servers bei der Wiedergabe gegen 0 geht.


    Wenn diese Probleme mit der Buffergröße zu tun haben könnten, würde ich auch Versuche unternehmen, wenn Du mir sagst, an welcher Stelle ich hier Einfluß nehmen kann.


    Der VDR und der Plexmediaserver laufen bei mir auf verschiedenen Rechnern.


    2.
    Die Wiedergabesteuerung:


    Da die im Moment vorhandenen Sprungweiten von 5min doch recht grob sind habe ich mal 2 Patche erstellt die:
    - auf den Tasten grün/gelb die Funktionalität vom vdr (ab 2.2.0) reproduzieren (aus dem VDR-Setup übernommene einstellbare Sprungweiten):


    skip.diff


    - auf den Tasten Rechts/Links bzw. schneller Vorlauf/Rücklauf eine sehr kurze Sprungweite zur Verfügung stellen (10s):


    ff.diff


    Unregelmäßigkeiten beim Benutzen kleiner Sprungweiten konnte ich nicht feststellen.


    3.
    Anzeige des Fortschrittsbalken:


    Z.Z. wird der Fortschrittsbalken nur 3s lang angezeigt, gibt es hierfür eine Notwendigkeit?
    Es ist nicht wirklich hilfreich, wenn der Fortschrittsbalken beim Navigieren im Video nach dieser kurzen Zeit immer wieder aus geht.
    Normalerweise würde man erwarten, das wie beim vdr selbst der Fortschrittsbalken beim ersten Drücken der "OK"-Taste angeht und beim zweiten Drücken wieder aus.
    Natürlich könnte man die Zeit in "cHlsPlayerControl::Show" auch vergrößern, deswegen die Frage oben.


    Plex-Plugin ist aktuell aus http://projects.vdr-developer.org/ vom 11.10.15


    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,


    Zu 1.
    Die Hänger treten wohl beim vergrößern des Puffers auf, so oft hintereinander hatte ich das jetzt noch nicht gesehen. Ich versuche ja im Vorfeld die Größe zu berechnen, leider ist das nicht all zu zuverlässig weshalb im "Notfall" der Ringpuffer vergrößert wird. Also ein neuer, größerer erstellt wird und dann der alte in den neuen Kopiert wird. Das dauert wohl zu lange und es gibt die Hänger.
    Die Hänger die spät im Film auftreten kommen häufig vom Plexserver, anscheinend stirbt der Transcoder ohne Grund (bzw. ohne sichtbaren Fehler) weg. Wird das erkannt wird versucht schnell eine neue Session zu starten, sozusagen um einen Bug drum rum Programmiert.
    Wobei der cSegmentLoader verbesserungswürdig ist, steht auf meiner LIste, aberdie Zeit ;)


    Zu 2.
    Ich nehme da gerne ein Patch, das ist schon öfters "bemängelt" worden. Ich springe und spule halt hauptsächlich mit der Android App.


    Selbiges zu 3.
    Die cHlsPlayerControl ist stark an die des bluray-plugins angelehnt, bzw habe ich mir da das Grundgerüst abgeschaut.


    Du nutzt das ja mit einer FullFeatured Karte? mit softhddevice bin ich bei der Wiedergabe zur Zeit recht unzufrieden, seit den letzten GIT Revisionen gibt es sehr viel AVSync Probleme dessen ich nicht Herr werde und ich deshalb den MPV Support ausgebaut habe. Ich weiß deshalb nicht ob die HLS Wiedergabe noch Zukunft hat.


    Chris,

  • zu 1) Frage / Anregung:
    Kann man einen fließenden Übergang bei den Puffern ermöglichen?
    Neuen Puffer anlegen und "füllen". Alten Puffer (nur) leeren und dann wegschmeißen / auf neuen Puffer umschalten.
    Ist zwar komplexer, aber könnte performanter arbeiten.
    Ach ja, und das Speicher beantragen kann auch dauern. Wenn der erst noch gelöscht werden muss (zwecks "Sicherheit" gegen Datenklau), wenn dann noch kopiert wird schreibt man gleich doppelt.


    Ein ähnliches Phänomen habe ich beim live TV. Ist evtl. das gleiche Problem.


    zu 2)
    iOS App. Damit stürzt der VDR/Plex Client dann gerne ab, wenn die Verbindung getrennt wird. :(
    Ich werde den Patch lieben. ;)


    Danke
    Stefan

  • Ich versuche ja im Vorfeld die Größe zu berechnen, leider ist das nicht all zu zuverlässig weshalb im "Notfall" der Ringpuffer vergrößert wird.

    Warum dann aber nicht von Anfang an einen etwas Größeren vorsehen? An welchen Stellen im Code müßte man den die Parameter variieren um dort z.B. einen größeren Startwert zu erreichen. Ich würde das durchaus mal mit verschiedenen Werten testen.


    Die Hänger die spät im Film auftreten kommen häufig vom Plexserver, anscheinend stirbt der Transcoder ohne Grund (bzw. ohne sichtbaren Fehler) weg.

    Ja, das hatte ich auch schon. Ich meinte oben aber, das später im Film auch mal kleinere Hänger auftreten. Ich muß die Logs mal beobachten, ob dort auch wieder ein ResizeRingbuffer auftritt.


    Die cHlsPlayerControl ist stark an die des bluray-plugins angelehnt

    Die 3s haben also keine wirkliche Bedeutung, dann kann ich die bei mir auf z.B. 30s hochsetzen.


    Du nutzt das ja mit einer FullFeatured Karte?

    Ja. A/V-Sync Probleme habe ich damit keine. Insgesamt funktioniert das mit der FF-Karte recht gut, die üblichen mkv-Dateien werden damit ohne Wandeln des Video-Streams wiedergegeben, nur dts-Ton muß ich wandeln lassen, das ist aber kein Problem.


    Ich weiß deshalb nicht ob die HLS Wiedergabe noch Zukunft hat.

    Solange es mit der FF-Karte dann immer noch geht.


    Grüße
    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

  • Naja häufig, die Errors im Log sind von 3 angespielten Videos.


    Beim ersten Video ist der Ringpuffer beim ersten Mal relativ viel vergrößert worden - Oldsize: 8388608, Newsize: 28597156, die zweite Änderung - Oldsize: 28597156, Newsize: 32284964 brachte dann das Hängen. Danach lief es dann recht lange ohne Probleme.


    Beim zweiteb und dritten Video war der Sprung bei der ersten Anpassung nicht so groß - Oldsize: 8388608, Newsize: 12123468, und es wurde mehrmals nachgesteuert - Oldsize: 12123468, Newsize: 14333220, - Oldsize: 14333220, Newsize: 22503136, - Oldsize: 22503136, Newsize: 24863100. Das führte dann auch zu weiteren Hängern.


    Die Datenraten lagen hierbei zwischen 9,5 und 12 Mb/s, also auch nicht so groß unterschiedlich.


    Nagut, ich werde das weiter beobachten und mal schauen ob ich da noch was tricksen kann.


    Grüße
    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

  • Plugin läuft bei mir. Server hat er nicht gefunden. Also habe ich den manuell eingetragen. Hat nicht geholfen, also auch noch einen Port eingetragen (32400). Aber: Ist hier der normale http-Port korrekt ?
    (Es laufen noch andere Medienserver im Haus; auch ein Octopus-Net)



    Stand ist, ich kann jetzt durch (z.B.) die Musikbibliothek navivieren und sehe Alben. Sehe aber keine Lieder und kann auch keine abspielen. Da steht dann immer: "Empty".
    Frage: Liegt das an meinem frisch aufgesetzten Server ? (Plex Account und oder Abo bis jetzt nicht vorhanden, der Server aktualisiert zwar noch seit gestern eine Mediathek, nicht aber die jetzt getestete, diese war gestern schon eingelesen)




    Im Log der VDR (Client) stehen dann solche Dinge:


    (Das mit den "children" wundert mich etwas)

  • Hallo,
    ich hatte mal wieder etwas Zeit zum rumprobieren ;)


    Im Branch "remoteserver" findet sich eine frühe Version des Plugins welche auf Freigegebene Plex Media Server zugreifen kann.
    Damit das funktioniert MUSS euer plex.tv Login im Plugin eingetragen sein und "Nutze Plex Account" auf "Ja" stehen. Im Syslog steht dann ob es geklappt hat. Es empfiehlt sich sie Logindaten direkt über die setup.conf einzutragen.


    Funktioniert noch nicht in Verbindung mit dem mpv Plugin, also nur zum direkt im VDR abspielen.
    Es wird bei Remote-Streams bis jetzt fix 1280x720 mit einer Bitrate von "8000" gestreamt.


    Mit meinem "Testopfer" gda funktioniert es bei mir.


    Wie gesagt, das ist noch stark verbesserungswürdig ;)


    https://github.com/chriszero/v…in-plex/tree/remoteserver


    Ach ja, SSL geht jetzt auch.


    Christian

  • Hi,


    Sichere Verbindungen sollten jetzt genauso wie die Nutzung von Remote-Servern funktionieren.
    Der Code ist im "Master Branch".


    Ich habe dafür einiges an Code ändern müssen, auch etwas an der grundlegenden Architektur.
    Deshalb bitte ich euch das ganze mal zu testen.


    Ich habe alles mit der aktuellen libpoco 1.6.1 getestet, das heißt es könnte sein das ihr die Version hochziehen müsst.


    https://github.com/chriszero/vdr-plugin-plex


    https://github.com/chriszero/v…n-plex/archive/master.zip


    Christian

  • Ich habe gerade versucht herrauszufinden warum das Plugin mit der letzten git-Version 0.1.5-11-g78eff7c bei mir nicht mehr baut.


    Folgenden Fehler bekomme ich beim kompilieren:

    Code
    g++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -std=gnu++0x -c -DLIBSKINDESIGNERAPIVERSION='"0.0.2"' -DPLUGIN_NAME_I18N='"plex"' -DPLUGIN='"plex"' -D_GNU_SOURCE   -DGIT_REV='"0.1.5-11-g78eff7c"'   -o PlexServer.o PlexServer.cpp
    In file included from PlexServer.cpp:1:0:
    PlexServer.cpp: In member function ‘std::istream& plexclient::PlexServer::MakeRequest(Poco::Net::HTTPResponse&, bool&, std::string, const std::map<std::basic_string<char>, std::basic_string<char> >&)’:
    PlexServer.cpp:140:3: error: cannot pass objects of non-trivially-copyable type ‘std::string {aka class std::basic_string<char>}’ through ‘...’
       esyslog("[plex] Timeout: %s", path);
       ^
    make[1]: *** [PlexServer.o] Fehler 1


    Das ganze unter Ubuntu Trusty mit libpoco 1.6.1 .

    Gruß
    Frodo

  • Moin,


    hm, das ist ein Fehler, path ist laut Compiler ein std::string, da muss in die Debug Ausgabe


    Code
    esyslog("[plex] Timeout: %s", path.c_str());


    Ciao Louis

  • Hallo,


    mit dem aktuellen GIT-Stand habe ich jetzt das Problem, das ich kein Video mehr von Anfang an wiedergeben kann.
    Das Ganze verhält sich ungefähr so:


    - Wenn ich die Wiedergabe bei einer Zeit ca. >= 20s starte, läuft das Video ganz normal los und ich kann mit den Sprung-Tasten auch ganz normal hin- und her Springen. Man kann eine Zeit größer 20s erreichen, indem man z.B. das Video zuerst in einem Browser startet und dann bei einer entsprechenden Zeitposition an das VDR-Plex-Plugin übergibt.


    - Wenn ich die Wiedergabe bei einer Zeit < 20s starte oder durch Springen in diesen Bereich gelange, bleibt das Video stehen und es reagiert auf keine weiteren Sprungbefehle, die aktuelle Zeitpostion am Fortschrittsbalken ändert sich dann auch nicht mehr. Mit der Stop-Taste kann man aber das Video ganz normal beenden.


    Die 20s sind ein ca Wert, da ich es nur mit ein paar Videos probiert habe.


    Wenn ich vom Browser aus versuche ein Video mit "von Anfang an abspielen" auf dem verbundenen VDR zu starten gibt es folgende Meldung im Log:


    Code
    Dez 27 18:48:22 home-05.home.de vdr[16565]: [16565] [plex]: play file '/library/metadata/1662'
    Dez 27 18:48:23 home-05.home.de vdr[16565]: [22770] [plex]Action Create Ringbuffer 1 MB
    Dez 27 18:48:23 home-05.home.de vdr[16565]: [22770] [plex] No further segments to load and buffer empty, end of stream!


    Danach erscheint sofort wieder Live-TV.


    Ich nutze libpoco-1.6.1 und aktuellen Plexmediaserver.


    [edit]
    Nachtrag:


    bei weiteren Tests habe ich festgestellt, das sich meine Videos erst bei einer Puffergröße von 32M auch von Anfang an abspielen lassen.
    [/edit]



    Und noch ein Schönheitsfehler:
    Obwohl ich keinen Skindesigner-Skin nutze, bekomme ich diese Meldung:


    "[plex]: used skindesigner skin does not support plex"



    Grüße
    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

    Einmal editiert, zuletzt von kamel5 ()

  • Irgendwas ist da Faul:

    Code
    Jan 05 16:18:56 vdr03 vdr[6632]: [6632] starting plugin: plex
    Jan 05 16:18:56 vdr03 vdr[6632]: [6632] skindesigner: plugin plex uses libskindesigner API Version 0.0.2
    Jan 05 16:18:56 vdr03 vdr[6632]: [6632] skindesigner: plugin plex has registered 1 views
    Jan 05 16:18:56 vdr03 vdr[6632]: [6632] [plex]: used skindesigner skin does not support plex
    Jan 05 16:18:56 vdr03 vdr[6632]: [6632] skindesigner: skin simplex started


    Verwende shady_kiss und dieser hat sehrwohl Plex Support

    Gruß utiltiy



    VDR Projekte VDR Projects

  • Also die Meldung "used skindesigner skin does not support plex" kommt fast immer einmal. Das hat was mit der Reihenfolge zu tun wie Plugins uns Skins geladen werden. Hat normalerweise nichts zu sagen wenn es dann geht.
    Sollte es nicht gehen, dann ist meistens was mit dem Skintemplate faul...

Jetzt mitmachen!

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