[ANNOUNCE] - XMLAPI Plugin und Windows 10 App/ Android App

  • Die ist native. Ich wollte auch erst Xamarin verwenden (dann hätte ich auch viel Code aus der Windows-App übernehmen können), habe mich dann aber dagegen entschieden, weil ich immer gerne was dazu lernen will. Und da ich mit Java, außer ein "Hello World", noch nichts zustande bekommen habe, war das die Gelegenheit.


    Im nachhinein muss ich sagen, das C# doch an vielen Stellen komfortabler ist.


    Also wird es sicherlich schwierig, das zu kombinieren.

  • Hallo,


    habe das Plugin auch probiert. Läuft zu Hause im Wlan ganz gut. Da dachte ich mir der Urlaub
    steht an, da kann ich über VPN ein bischen heimisches TV schauen.
    Leider kommt bei der VPN-Verbindung an dieser Stelle im Debugger eine Exception:
    string xmlstring = await client.GetStringAsync(settings.BaseURL + "version.xml");
    Hast Du eine Idee, was das sein könnte. Wird nicht schnell genug geantwortet?
    Jedenfalls schon mal Danke für das Plugin.


    Alexander

    WoZi: VDR 2.3.8 auf OpenSuse Leap 42.1, Kernel 4.7.0-RC5, K208 [GeForce GT 730TT-Budget S2-3200 PCI,TechnoTrend TVStick CT2-4400 USB, Kodi git
    SchlafZi: VDR 2.3.8, OpenSuse Leap 42.1, Kernel 4.7.2, GeForce GT 630 Rev. 2, Hauppauge WinTV-HVR4000 PCI

    Keller: Headless PI3, VDR 2.3.8, Technotrend TT Connect S2-3600 USB


  • ist ohne Text.
    Könnte es morgen nochmal nachstellen und die komplette exception posten.

    WoZi: VDR 2.3.8 auf OpenSuse Leap 42.1, Kernel 4.7.0-RC5, K208 [GeForce GT 730TT-Budget S2-3200 PCI,TechnoTrend TVStick CT2-4400 USB, Kodi git
    SchlafZi: VDR 2.3.8, OpenSuse Leap 42.1, Kernel 4.7.2, GeForce GT 630 Rev. 2, Hauppauge WinTV-HVR4000 PCI

    Keller: Headless PI3, VDR 2.3.8, Technotrend TT Connect S2-3600 USB


  • Morgen.
    Ich denke es liegt nicht an deiner APP.


    Unglaublich aber wahr:
    Aus dem Forum https://social.technet.microsoft.com:
    The problem still persists to this day. Edge cannot reach sites over VPN.


    Ich denke die httpClient-Komponenten benutzen intern die edge-Technik.


    Danke

    WoZi: VDR 2.3.8 auf OpenSuse Leap 42.1, Kernel 4.7.0-RC5, K208 [GeForce GT 730TT-Budget S2-3200 PCI,TechnoTrend TVStick CT2-4400 USB, Kodi git
    SchlafZi: VDR 2.3.8, OpenSuse Leap 42.1, Kernel 4.7.2, GeForce GT 630 Rev. 2, Hauppauge WinTV-HVR4000 PCI

    Keller: Headless PI3, VDR 2.3.8, Technotrend TT Connect S2-3600 USB


  • Plane schon Site to Site Tunnel mit Notebook und Surface. ;-)

    WoZi: VDR 2.3.8 auf OpenSuse Leap 42.1, Kernel 4.7.0-RC5, K208 [GeForce GT 730TT-Budget S2-3200 PCI,TechnoTrend TVStick CT2-4400 USB, Kodi git
    SchlafZi: VDR 2.3.8, OpenSuse Leap 42.1, Kernel 4.7.2, GeForce GT 630 Rev. 2, Hauppauge WinTV-HVR4000 PCI

    Keller: Headless PI3, VDR 2.3.8, Technotrend TT Connect S2-3600 USB


  • Ich versuche mich gerade daran den HLS Streamer im Browser mit hls.js zu verwenden. Funktioniert bisher ganz gut und das beste ist, das die Jungs von dailymotion (von denen ist hls.js https://github.com/dailymotion/hls.js/blob/master/API.md) behaupten das ihre API auf allen relevanten Browsern funktioniert. Damit rückt Streaming auch auf IOS in greifbare Nähe. Getestet habe ich das Teil bisher in Linux Chrome und Android Chrome.


    Damit das ganze ohne Proxy funktioniert musste ich im RequestHandler einbauen, das er CORS Header mitsendet. Bisher allerdings noch ohne den Allow-Authentication Header. Es funktioniert also nur ohne Passwort.
    Das würde ich noch einbauen wollen bevor ich bei Interesse einen Pull Request starte.


    Ab und zu, insbesondere bei verschlüsselten Kanälen steigt VDR mit einem Segfault aus. Leider ohne mir mitzuteilen warum.
    Hast du da eine Idee?


    Der Browser crashed auch relativ häufig. Von stabilem Betrieb kann also keine Rede sein. Es ist ja auch nur ein Prototyp...


    Mein Fork mit CORS Headern für den HLS Stream: https://github.com/hannemann/vdr-plugin-xmlapi
    Player: https://github.com/hannemann/vdr-hls-web-player


    Im Player muss in der Datei VDRHls.js die Eigenschaft baseUrl angepasst werden.
    In der Datei player/working.html ist einfach nur der Beispiel Code der API umgesetzt. Für einen schnellen Test kann man das ganz gut hernehmen.


    Mich würde mal interessieren auf welchen Browsern das noch läuft. Vielleicht opfert sich ja jemand von der IOS Fraktion ;)

    Images

    Grüße


    Hannemann

  • Das habe ich auch festgestellt und merkwürdigerweise muss man einfach den Sender noch mal anklicken oder vdrHls.controller.recoverMedia() ausführen.


    Hab ich vergessen zu erwähnen.

    Grüße


    Hannemann

  • Meinst Du, es gibt noch Chancen auf einen Landscape-Mode? *duck*

    VDR 2.2.0, PMS mit PlexVDR, XML-API+VDR Client
    Ubuntu 16.04 64bit
    alles 'headless' auf Intel(R) Core(TM) i5-4440 CPU @ 3.10GHz, 8GB RAM, 5 x 3TB im RAID5 (12TB)
    zzgl. diverse SH4 Sat-Boxen mit NeutrinoMP

  • Ja die Chancen gibt es noch ;)


    Einfach überall den Landscape-Mode zu aktivieren ist auch nicht das Problem.
    Die Frage ist halt, was macht man mit den anderen Platzverhältnissen.


    Eine Liste mit einigen Einträgen, macht im Landscape-Mode nicht so viel Sinn. Man sieht weniger Einträge und durch das andere Seitenverhältnis wird viel Platz für "nichts" verschwendet.


    Wie ich schon geschrieben habe, fehlt mir für Tablets da noch ein Konzept und da ich selbst keins habe fehlt es mir da auch Ideen und Testmöglichkeiten.
    Außerdem ist mein Kreativitäts-Gen nicht sonderlich ausgeprägt, wodurch es mir immer sehr schwer fällt etwas zu designen was dann auch halbwegs hübsch aussieht ;)


    Also wenns Vorschläge gibt, dann immer her damit.



    Wenn es ausdrücklich gewünscht ist, kann ich den Landscape-Modus auch erstmal überall aktivieren auch wenns aus meiner Sicht keine Vorteile bringt. Mal abgesehen von der Badewannen-Situation :D

  • Im Grunde ist das so, wie es in der Windows 10 Desktop-App dargestellt wird, ja gar nicht so schlecht. Was dann auf dem Tablet noch fehlen würde wäre ein "Handler" zum Maximieren bzw Minimieren des Videos.
    Wenn ich jetzt das Tablet im Playback zum Landscape rotiere, wird das Video automatisch maximiert dargestellt, was ich sehr gut finde. ich kann es dann aber nicht mehr verlassen. Mein Tablet hat keine Hardware-Tasten. Ich hab also keine Möglichkeit, die Wiedergabe im Querformat zu beenden.



    Wir nutzen VDR hier übrigens auch im beruflichen Umfeld zur Medienauswertung. Die Kollegen sind sehr angetan von allem, was hier rund um xmlapi läuft. Hab bislang die Desktop-App (Win10) und Android-App installiert.
    Ich hab gestern nochmal ffmpeg gebaut (gem. dieser Anleitung: https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu)
    Das Transcoding läuft damit doch schon recht geschmeidig.


    Ggf. sollte man aber doch nochmal über eine Art Bypass-Funktion ohne Transcoding zumindest für die Desktop-App nachdenken. Die Desktops haben i.d.R. genug Dampf und hängen physisch im selben lokalen Netz.


    BTW: Meine Badewanne ist natürlich für die Entscheidungsfindung unerheblich ;-)

    VDR 2.2.0, PMS mit PlexVDR, XML-API+VDR Client
    Ubuntu 16.04 64bit
    alles 'headless' auf Intel(R) Core(TM) i5-4440 CPU @ 3.10GHz, 8GB RAM, 5 x 3TB im RAID5 (12TB)
    zzgl. diverse SH4 Sat-Boxen mit NeutrinoMP

    The post was edited 1 time, last by sh4 ().

  • Quote

    Wenn ich jetzt das Tablet im Playback zum Landscape rotiere, wird das Video automatisch maximiert dargestellt, was ich sehr gut finde. ich kann es dann aber nicht mehr verlassen. Mein Tablet hat keine Hardware-Tasten. Ich hab also keine Möglichkeit, die Wiedergabe im Querformat zu beenden.

    Mein Smartphone hat auch keine Hardwaretasten. Aber die Softbuttons sollten doch im Fullscreen-Mode eingeblendet werden, wenn man von der Seite (beim Tablet bestimmt von unten) "rein wischt". Somit komme ich wieder zurück zur Kanal- bzw. Aufnahmeliste. Alternativ kann man ja auch wieder in den Portrait-Mode drehen.


    Quote

    Ggf. sollte man aber doch nochmal über eine Art Bypass-Funktion ohne Transcoding zumindest für die Desktop-App nachdenken. Die Desktops haben i.d.R. genug Dampf und hängen physisch im selben lokalen Netz.

    Für die Win10 Anwendung ist das auch in Planung. Hab da auch schon einige Tests gemacht. Da ist aber noch einiges an Forschungsarbeit zu leisten. Da die Windows-Anwendung keine Win32 sondern eine "Modern UI App" ist (damit sie auch auf Windows Smartphones läuft), ist es sehr schwierig Videos bzw. Streams abzuspielen, die andere Video-Codecs verwenden als die in Windows integrierten. Und da alle SD-Sender MPEG2 codiert sind und Windows dafür keinen Decoder hat, ist das schon mal ein Problem. Einfach ein Codec-Pack installieren funktioniert bei "Modern UI Apps" leider nicht. Mir ist es zwar gelungen die ffmpeg-Bibliotheken, zum dekodieren von MPEG2, in der Windows-Anwendung einzubinden, leider ist es mir noch nicht geglückt die MPEG2-Sender oder auch die 1080i Sender zu deinterlacen. D.h. bei bewegten Bildern gibt es hässliche Streifen und Verschiebungen.
    Wirklich stabil läuft es auch noch nicht. -> Ist also noch eine große Baustelle.

  • OFF TOPIC:

    Vielleicht opfert sich ja jemand von der IOS Fraktion

    Moin Hannemann,


    das ist ja spannend ... Ich hatte mit hls (via ffmpeg) und tvml (Aus javascript-mach-tvOS) rumprobiert letzte Woche und bin an der Stelle wie ich den Stream usw erzeuge hängen geblieben - jetzt lieferst Du mir da quasi eine Vorlage... Ich wollte halt gerne das Restfulapi-Plugin nutzen und dann einen schlanken Client für mein AppleTV haben, so dass ich einfach LiveTV habe, ohne den VDR als receiver nutzen zu müssen. Der rest geht ja eh über Plex bei uns daheim :-)


    Ich kann gerne was testen morgen Abend. Wollen wir das gesondert halten? Passt ja nicht hierher wirklich...


    VG,
    Alex

  • Ja klar. Kannst mich ja anpingen, wenn du getestet hast. Ich bin echt gespannt ob die HLS API hält was sie verspricht :)

    Grüße


    Hannemann

  • @nanohcv machst du noch was an xmlapi? Ich kann es zumindest ab 2.3.3 nicht mehr bauen. (vermute, es ist seit 2.3.1 so, war vorher auf 2.1.8)


    VDR 2.2.0, PMS mit PlexVDR, XML-API+VDR Client
    Ubuntu 16.04 64bit
    alles 'headless' auf Intel(R) Core(TM) i5-4440 CPU @ 3.10GHz, 8GB RAM, 5 x 3TB im RAID5 (12TB)
    zzgl. diverse SH4 Sat-Boxen mit NeutrinoMP