Featureliste für kommendes UPnP/DLNA-Plugin

  • Das UPnP-Plugin (genau genommen das 2. UPnP-Plugin) nimmt Gestalt an und soll in den nächsten drei Monaten bis zum Release fertig geschrieben werden. Das ganze läuft wieder im Rahmen eines Projektes ab, wo "projektorganisatorische Mittel" angewendet werden sollen. Das heißt Pflichtenheft, Meilensteinplan, der ganze Spaß eben. Abgabe und Prüfung wird irgendwann Ende November sein.


    Damit das Pflichtenheft nicht nur aus dem Satz besteht "Soll funktionieren", würde ich gerne hier einmal eure Featurevorschläge haben, die ich einpflegen soll. Der parallel weiterlaufende Thread VDR Plugin für DLNA Streaming Support bleibt später für Hilfeanfragen meinerseits weiterhin aktuell. Sofern mir jemand hilft. :lol2


    geplante Features:
    * DLNA-Support
    * XBox-Support
    * Windows Media Player 11-Support
    * Radio
    * Aufnahme anstoßen
    * (Wenn viel Zeit übrig ist.) Java-Controller für's Handy.
    Neu:
    * EPG
    * Timeauswahl via EPG
    * Timer löschen
    * Spulen in Aufnahmen
    * Springen in Aufnahmen (Zeit, Marken)
    * Webinterface
    * MP3-Support mit ID3-Tags
    * Sortierung nach Genre/Titel/Album
    * Webradio


    (Meine Prio ist von oben nach unten.)


    Also dann legt mal los!


    Geräteliste, mit denen geprüft werden könnte:
    * PCH A110
    * Philips 42 PFL 9703D/10
    * Bravia Sony 40W5500
    * Playstation 3
    * tg100
    * Samsung LE40B650
    * Samsung i8910 hd


    PS: Ziel-VDR wird Version 1.7.8 wie im Nachbarthread beschrieben sein, daher ist HD mit dabei, so lange es der Client unterstützt.
    PPS: VDR 1.6.x wird wegen fehlender HD-Wiedergabe NICHT unterstützt. Spätere Portierungen durch andere ist immer noch möglich, aber nicht durch mich!


    Medion Digitainer; AsRock B75 Pro3-M, Celeron G540; Kingston Value 4GB
    Samsung SpinPoint 250GB 2,5"; Samsung WriteMaster DVD-Brenner;
    TT-S2-6400, 2x TT-S2-1600, Ubuntu 12.04 mit YaVDR-Paketen. VDR 1.7.27, UPnP/DLNA-Plugin

    8 Mal editiert, zuletzt von methodus ()

  • :moin


    Client Support für Bravia Sony 40W5500. Ich teste auch ganz leidenschaftlich.


    - Support für HD
    - Timerauswahl via EPG
    - Timer löschen
    - Aufnahmen ansehen
    - Spulen in Aufnahmen
    - alternativ: Springen (+1,5,71/2,10 Min.)
    - alternativ: Springen auf Marken (noad)


    Ob man das über DLNA überhaupt realisieren kann, weiß ich nicht, aber
    der PS3 Media Server kann auf PS3s Seek on Time oder so. Das Ding
    kann auch schon recht brauchbar mit meinem Sony m2ts streamen.
    Immerhin reden die miteinander. Der Support von LGs, Pocorn etc.
    soll wohl auch gehen und shagrath hat auch jede Menge Netwzwerk
    Trafic liegen. Ich mahce Dir auch gerne einen Wireshark Mitschnitt
    von einer funktionierenden Kommunikation, aber das muss bis nach
    meinem Urlaub warten.


    GrCK.

  • Client support für tg100

    HW1: Asus M3N78-EM|AMD 235e 1xDVB-S2 HD-Nova, 1xDVB-S1 TT-Budget, OpenSuse 11.2 64bit vdpau
    per xinelib1.2
    HW2: Asus Pundit-P1-AH1 AMD3600X1 TT Rev1.3FF, DVB-S1TT Budget, OpenSuse11.1 64bit


    Weitere HW: SMT7020s zen2mms1.3, MacMini VirtualBox mit Ubuntu 9.10 und TT-s3200 USB

  • - OnScreenDisplay


    Das VDR-OSD kann dabei in einem HTML-Layer gerendert werden und das Video im Hintergrund-Layer laufen.


    Unterstützt VDR-1.7 inzwischen Multiuser-Zugriffe auf OSD-Objekte? Falls nicht, kann das Plugin vielleicht einen UPNP-/DNLA-Client als Primary Device mit OSD behandeln ...

  • Hmm.. klingt interessant für die Präsentationsschicht. Aber so ganz verstanden hab ich das nicht?!


    Also das VDR-OSD soll als HTML-Seite dargestellt werden und das Video im Hintergrund laufen?


    Medion Digitainer; AsRock B75 Pro3-M, Celeron G540; Kingston Value 4GB
    Samsung SpinPoint 250GB 2,5"; Samsung WriteMaster DVD-Brenner;
    TT-S2-6400, 2x TT-S2-1600, Ubuntu 12.04 mit YaVDR-Paketen. VDR 1.7.27, UPnP/DLNA-Plugin

  • Ja. siehe http://homepages.fh-giessen.de/~hg10513/vdrosd.html (nur mit Firefox >= 3.5). So ähnlich lässt sich das hoffentlich auch mit DLNA-Clients machen.


    Zwei Fragen stellen sich dabei:


    1.) Können DNLA-Clients die Weboberfläche aktualisieren, ohne das Video zu unterbrechen/neu zu starten?
    2.) Können DNLA-Clients ECMA-Script?


    Wenn ja, kann das OSD per HTML gerendert werden und die Eingaben der Fernbedienung können per JavaScript abgefangen und per POST an den Web-Server (das DNLA-Plugin) gesendet werden.



    Der Media-Server "ushare" verwendet übrigens "libdnla" und "libupnp". Um Bibliotheken bei Qualitätsproblemen schnell auszutauschen zu können, kann eine API in Form abstrakter C++-Klassen implementiert werden. Ein C++->C-Bibliotheks-Wrapper implementiert dann die eigentlichen Klassen und bindet die Bibliotheken an.


    Als embedded-Webserver eignet sich sicherlich TNTNET, der schon im Live-Plugin eingesetzt wird.


    Wenn sich HTML5-fähige Browser als Clients verbinden, sollte das <video>-tag verwendet werden und der Video-Stream per HTTP transportiert werden (siehe http://homepages.fh-giessen.de/~hg10513/vdrosd.html) und das Video gegebenenfalls on-the-fly transkodiert werden (z.B. ins Theora-Format für Firefox 3.5).

  • Wir haben bisher libupnp und libdlna genutzt, wobei ich aber wohl von libdlna abgehen werde, da ich damit keine TV-Streams profilieren kann. Das müsste ich alles per Hand machen. Bei Aufnahmen ist es das gleiche, weil die Videos auf mehrere Dateien gesplittet werden, wodurch man nicht mehr hundertprozentig sicher gehen kann, dass alles stimmt. Die Bibliothek wird also später rausfliegen.


    Deinen Vorschlag werde ich übernehmen, sobald ich das Webinterface schreibe. Ich glaube sogar, dass es klappen müsste, weil eine Anfrage und das Streamen zwei unterschiedliche Aufträge sind. Ob DLNA-Clients das als halbtransparente Webseite darstellen mag ich bezweifeln, weil die Clients ihr eigenes Interface mitbringen und die Presentation im Prinzip nur für Einstellungszwecke oder sonstiges genutzt werden sollte und nicht aktiv als Client. Ich werds trotzdem probieren einen Thin-Web-Client zu basteln. Achso, der Webserver in der libupnp ist schon recht gut und macht, was ich will. Daher ist ein weiterer Server nicht notwendig.


    Zu libupnp: ich musste leider feststellen, dass die Bibliothek einen nicht unvernachlässigbaren Fehler hat. Die Anzahl der Jobs pro Thread muss von 10 auf 1 gestellt werden, damit man zwei parallele Streams abspielen kann, sonst hängt sich der Server auf und wartet bis ins unendliche bis der erste Job fertig ist. Bei TV-Streams also ein Ding der Unmöglichkeit. Ich werde eine angepasste libupnp mitliefern, sobald ich ein brauchbares Plugin habe.


    Medion Digitainer; AsRock B75 Pro3-M, Celeron G540; Kingston Value 4GB
    Samsung SpinPoint 250GB 2,5"; Samsung WriteMaster DVD-Brenner;
    TT-S2-6400, 2x TT-S2-1600, Ubuntu 12.04 mit YaVDR-Paketen. VDR 1.7.27, UPnP/DLNA-Plugin

  • Client Support für Samsung LE40B650
    Für Test stehe ich natürlich zur Verfügung.


    Gruß


    Carlos

    VDR1: AMD Athlon 64 3200+ - Hauppauge Nexus-S, Debian Lenny - Kernel 2.6.28.2 VDR 1.7.21(Tobi)
    VDR2: POV ION 330 -2GB RAM - Tevii S470 MS-Tech 1200 Gehäuse, Debian YaVDR 0.4
    VDR4: Seagate Goflex net - Debian Wheezy - Linux 3.9.5-dockstar-goflex-shyd VDR 2.0.3
    VDR5: SMT-7020S zen2vdr auf Festplatte
    VDR5: SMT-7020S zen2mms 1.3b auf CF-Karte
    TV: Samsung LE46ES8090

  • Zitat

    Original von methodus
    Das müsste ich alles per Hand machen. Bei Aufnahmen ist es das gleiche, weil die Videos auf mehrere Dateien gesplittet werden, wodurch man nicht mehr hundertprozentig sicher gehen kann, dass alles stimmt.


    In neueren VDR-TS-Versionen können die Aufnahmen bis zu einem Tera-Byte groß sein. Also kein Grund mehr zum Splitten. Nach Jahren des Bohrens und Nervens hat KLS das endlich behoben! :) Alternativ wären auch virtuelle Aufnahmen möglich, d.h jede Datei wird mit jeweils einem File-Deskriptor geöffnet und die Datei dann per Pointern in einem virtuellen Adressbereich (z.B. Struct mit Pointern auf File-Deskriptoren) zusammengefasst, der beim Streamen von einem Pointer abgelaufen wird.


    Zitat

    Original von methodus
    Ob DLNA-Clients das als halbtransparente Webseite darstellen mag ich bezweifeln, weil die Clients ihr eigenes Interface mitbringen und die Presentation im Prinzip nur für Einstellungszwecke oder sonstiges genutzt werden sollte und nicht aktiv als Client.


    Alternativ kann das OSD, je nach Fähigkeit des DNLA-Clients, auch als Text- oder Bitmap-Untertitel mitgesendet werden. Aber HTML ist natürlich eleganter und flexibler.


    Auf jeden Fall sollten auch Browser (am besten mit HTML5-Video-Tag) berücksichtigt werden, damit man mal eben mit dem Notebook Live-TV oder Aufnahmen ansehen kann! ;)


    Mir kam gerade die schräge Idee, das Firefox 3.5 mit Einbindung der libavcodec und eines UPNP-Clients zum vollständigen DNLA-Client werden würde ...

  • FH-Giessen, richtig? Na dann mach dich ran und schreib nen Client. Mein Firefox spielt im Moment alles wunderbar mit VLC ab. Leider hab ich noch kein Webinterface, aber ansonsten geht alles, auch die Aufnahmen. Ich lasse aber dennoch die Berechnung drin, falls es doch mal gesplittete Dateien gibt. Keine Ahnung, wie Klaus das in Zukunft handhaben wird. Gestern habe ich entdeckt, dass es im UPnP-Standard schon Metadatenvorgaben für TV-Kanäle existieren, die ich noch einpflegen muss.


    Morgen bekomme ich erstmal die DLNA-Guidelines, damit ich an der Baustelle weiterarbeiten kann.


    Medion Digitainer; AsRock B75 Pro3-M, Celeron G540; Kingston Value 4GB
    Samsung SpinPoint 250GB 2,5"; Samsung WriteMaster DVD-Brenner;
    TT-S2-6400, 2x TT-S2-1600, Ubuntu 12.04 mit YaVDR-Paketen. VDR 1.7.27, UPnP/DLNA-Plugin

  • wozu ist denn das gut, monatelng ueber features eines plugins zu reden?
    her damit, wird schon reifen :jb


    oder droht dann das schicksal des ersten plugins?
    n paar wochen programm, dann tot.


    dann warte ich lieber noch :jb

  • Das nennt man ganz einfach Software-Engineering.


    Wenn ein Bauarbeiter ohne Architekt/Statiker ein Haus baut, bringt er es wahrscheinlich nicht zu Ende, weil es einstürzt. Wenn er es doch schafft, hat er wegen Redundanzen meist viel zu viel Material und Arbeitszeit verschwendet.


    Außerdem ist das Gebäude dann oft krumm und schief, weil z.B. keine Untergrundanalyse gemacht und nicht mit hochwertigen Instrumenten gemessen wurde. Bei Anbauten gibt es keinen zuverlässigen Plan des Gebäudes, es ist verwinkelt und verschachtelt und alles riesig aufwendig und nicht bedarfsgerecht.


    Resultat:


    Gebäude -> Abrissbirne, Bauarbeiter pleite


    bzw.


    Software -> /dev/null, Programmierer pleite


    ;)


    Gescheiterte Software-Projekte hatten schlicht nicht genug Planung, um Ihre Komplexität zu beherrschen und die Bedürfnisse des Anwenders zu erfüllen. Da heute übliche Programmiersprachen keine validierenden Hochsprachen sind, sondern in der Regel aufgebohrte, maschinenabhängige Addressmanipulierer, ist Software extrem fehleranfällig. Ohne Planung steigt der Aufwand durch die exponentialen Abhängigkeiten schnell mal um das 10- bis 100-fache.


    Deshalb:


    1.) Bedarfsanalyse
    2.) Pflichtenheft
    3.) Ist-Analyse (vorhanden Bibliotheken, Module, etc.)
    4.) (Strukturelle) Soll-Planung (Schnittstellen, Klassen, Signaturen)
    5.) Implementierung der Algorithmen
    6.) Test
    7.) Have Phun and Beer ;)


    Wer bei 1, 2, 3 und 4 mehr Zeit investiert, spart bei 5 und 6 ein Vielfaches ein.


    Deshalb stehe ich da voll hinter methodus! :)

  • Zitat

    Original von wilderigel
    wozu ist denn das gut, monatelng ueber features eines plugins zu reden?
    her damit, wird schon reifen :jb


    oder droht dann das schicksal des ersten plugins?
    n paar wochen programm, dann tot.


    dann warte ich lieber noch :jb


    Ich könnte die Welt auch jetzt schon mit Bugs überhäufen, aber da ich sowieso das als richtiges Projekt abliefern muss, isses rumwienum.


    Das Plugin kommt, wenn es mindestens mit den mir verfügbaren Clients getestet worden ist. Ich habe bis November Zeit komplett fertig zu sein. Die Zeit will ich auch nutzen was gereiftes abzugeben. Ich komme aus Leipzig, ich kenne mich mit Bananen aus :P


    Medion Digitainer; AsRock B75 Pro3-M, Celeron G540; Kingston Value 4GB
    Samsung SpinPoint 250GB 2,5"; Samsung WriteMaster DVD-Brenner;
    TT-S2-6400, 2x TT-S2-1600, Ubuntu 12.04 mit YaVDR-Paketen. VDR 1.7.27, UPnP/DLNA-Plugin

  • Wenn die UPNP/DNLA-Spezifikationen entsprechende String-Tags vorsehen, sollten nicht nur die Nummer der Aufnahme/desTV-Kanals, sondern auch Titel und Beschreibung der laufenden Sendungen bzw. der gelisteten Aufnahmen übermittelt werden.



    Ansonsten:


    - Striktes UTF-8, wenn die Spezifikationen keinen anderen Zeichensatz verlangen, um Fehler zu vermeiden
    - Dokumentation des Quellcodes mit Doxygen, damit Andere mit-/weiterentwickeln können

  • Hmm.. ist das keine Banane? :schiel


    Ich bekomme die Richtlinien heute. Ich hoffe, es sind nicht zu viele Seiten, sonst muss mein Drucker wieder glühen. Alleine die UPnP-Dokumente haben mir nen Stapel Papier beschert. Es lässt sich aber besser mit etwas in der Hand arbeiten, als ständig in die Online-Dokumente zu switchen.


    Ich hab jetzt auch eine Spezifikation gefunden, die ein Plays-For-Sure-kompatiblen UPnP-Server möglich machen sollte. Allerdings hat die eine ganz komische Ordnerstruktur. Das Dokument liegt hier: http://go.microsoft.com/fwlink/?LinkId=87957


    Hat jemand einen Vista-kompatiblen UPnP-Server (Plays-For-Sure!!!) und kann das verifizieren?


    Medion Digitainer; AsRock B75 Pro3-M, Celeron G540; Kingston Value 4GB
    Samsung SpinPoint 250GB 2,5"; Samsung WriteMaster DVD-Brenner;
    TT-S2-6400, 2x TT-S2-1600, Ubuntu 12.04 mit YaVDR-Paketen. VDR 1.7.27, UPnP/DLNA-Plugin

Jetzt mitmachen!

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