[Announce] HbbTV plugin / offscreen browser v0.0.3

  • Die Parameter sollten niemals als zusammenhängender String übergeben werden!


    Das wurden sie auch nicht. Aber einer der Parameter im Array hatte leider ein "&" und der anschließende Aufruf der Shell (mit execv) führte genau zu dem Problem, mit dem ich so nicht gerechnet hatte. Seltsamerweise kann ich das nicht mehr nachstellen. cmd_params ist eben ein std::vector mit allen Parametern und vielleicht liegt genau da das übel. Ich wollte da sowieso noch mal ran, weil mir die aktuelle Lösung nicht gefällt.



  • Ich habe gerade die Version 0.0.3 getagged. Im ppa wird auch gerade gebaut.



    Gerade den letzten Punkt (Javascript) hätte ich viel, viel, noch viel früher einbauen sollen. Das hätte mir eine Menge Ärger erspart. Ich fummle jetzt am HTML-Quellcode rum, bevor dieser dem Browser vorgeworfen wird. Das Problem mit einigen Senden (n-tv, RTL,...) bestand darin, die die Sender-Javascripte auf Objekte aus der hbbtv.js zugreifen, die aber erst später zur Verfügung stehen. Jetzt funktioniert sehr viel mehr und auch besser. Wenn man z.B. den ARD Red Button nutzt, sieht man den Unterschied sofort.

  • Bei der ARD erhalte ich unter dem Punkt 'Anfang verpasst' die Meldung "dieses plugin wird nicht unterstützt" am Bildschirm.

    Wie finde ich raus, welches Plugin da gemeint ist und wo muß das im Zweifelsfall dann hin?


    Im Unterpunkt 'Tatort' der ARD (900 U: http://hbbtv-tatort.daserste.de/) zeigt er den Wunsch-Tatort als 'Ihr Wunsch-"Tatort"' an. Ist das ein Konfigurationsproblem an meiner Seite oder sieht das bei Euch auch so aus?


    Christian

  • Die Parameter sollten niemals als zusammenhängender String übergeben werden!

    Sorry. Ich war auf dem Holzweg. Du hattest recht. Ich habe mich so auf den 2. Aufruf von fmpeg konzentriert und dabei vergessen, daß der Aufruf von ffprobe nebenbei gefixed wurde, aber genau der bietet einen Angriffsvektor. Dazu muss eine manipulierte Video-URL geliefert werden. Es dürfte zwar sehr unwahrscheinlich sein, das jemand explizit VDR im Visier hat (bzw. den Browser), aber falls es andere lohnende Ziele mit demselben Problem gibt, könnte es passieren. Ich muss wohl den Aufruf mittels popen entfernen und durch etwas anderes ersetzen.


    Bei der ARD erhalte ich unter dem Punkt 'Anfang verpasst' die Meldung "dieses plugin wird nicht unterstützt" am Bildschirm.

    Das Problem ist bekannt. Es funktioniert wahrscheinlich nur, wenn die Sendung in der Mediathek verfügbar ist und deshalb ein mp4 und kein MPEG-DASH geliefert wird. An dem MPEG-DASH Problem muss ich noch arbeiten. Das ist etwas schwieriger, weil ich z.B. seek-Kommandos bekomme, die auf bytes anstatt Zeit verweisen und ffmpeg kann nur mit der Zeit umgehen. Die Länge des Videos und die Codecs müssen aus dem XML extrahiert werden und so weiter. Es ist also schon etwas anders, als normale mp4 Videos.

    Im Unterpunkt 'Tatort' der ARD (900 U: http://hbbtv-tatort.daserste.de/) zeigt er den Wunsch-Tatort als 'Ihr Wunsch-&WCF_AMPERSAND"Tatort&WCF_AMPERSAND"' an. Ist das ein Konfigurationsproblem an meiner Seite oder sieht das bei Euch auch so au


    Das ist mir noch nicht aufgefallen. Allerdings wird auch der eigentliche Inhalt der Seite nicht verändert.

  • Unter yavdr auf Bionic habe ich ein ppa gefunden mit ffmpeg 4.3.2, habe alles neu gebaut aber stand Sonntag war das nix mehr geht. Kein Zucken und kein log...

    Kann es aus Zeitmangel nicht weiter testen. Vielleicht versucht sich mal jemand mit mehr „Können“ aus der yavdr-Ecke...

    Bin dann mal weg ✌️

  • Unter yavdr auf Bionic habe ich ein ppa gefunden mit ffmpeg 4.3.2, habe alles neu gebaut aber stand Sonntag war das nix mehr geht. Kein Zucken und kein log...

    Äh was? Startet der Browser nicht? Funktioniert das Plugin nicht? Kann man Seiten sehen oder nicht? ffmpeg kommt erst zum Einsatz, wenn man Videos betrachten will und da wird auch nur die Kommandozeilenversion verwendet und nicht direkt die Libs.


    Hat noch jemand yavdr/bionic am Laufen und kann evt. Informationen liefern, ob es generell funktioniert oder nicht und falls nicht, mit welchen Meldungen? Zur Not kann man den Browser auch so starten und schauen, welche Meldungen ausgegeben werden. Dazu muss im Plugin nur "-c" auskommentiert/entfernt werden, damit nicht 2 Browser parallel gestartet werden.



    ffmpeg 4.3 muss ich mir auch noch kompilieren für das mpeg-dash Video Problem.

  • Kurzzusammenfassung:

    - Tatort Videos sollten jetzt vernünftig abgespielt werden (inkl OSD). Dazu muss ich zur Laufzeit ein wenig an den Styles der Seite spielen.

    Mal schauen, ob ich die anderen Video-Probleme auch so gelöst bekomme.

    - Bugfix beim Laden der Configs

    - Bugfix beim Abspielen mehrerer Videos hintereinander. Der Browser hat die Länge des ersten Videos für alle anderen übernommen.

    Den Cache konnte ich nicht austricksen, also wird mit den Filenamen gespielt.


    Das Ganze habe ich mit ffmpeg 4.3 getestet und soweit keine Probleme.

  • Hi,

    great improvement, but still some issues is regards to navigation

    - Tatort no navigation back to the mediathek (yellow) or to the startleiste (0)

    - Tagesschau no navigation when going back to mediathek (yellow) possible


    looks like there is still a general issue how the keys get handled or mapped


    CU and respect!

    9000h

    Es ist eagl in wlehcer Reiehnfogle die Bchustebaen in Woeretrn vokrmomen. Huapstache der estre und leztte Bchustbae sitmmen.

  • I found the root cause of the problems of Tatort Navigation. And it has nothing to do with key mapping but it's because of one of my patches for HybridTvViewer. And my comment points to some possible problems and ...

    Now the situation arrises, where further investigation is needed. (Possibly for other channels also).



  • I've done some further investigations:

    The button '0' tries to load the URL dvb://current.ait/13.1?autoshow=1. The .1 seems the be the application id (see Hbbtv URL list) which probably could be resolved to 'http://itv.ard.de/ardstart/index.html?autoshow=1' after changing the plugin and browser.
    But the yellow button loads the URL 'http://hbbtv-tatort.daserste.de/getapp.php?sid=11100&colid=2&query=appid' which seems to want return a Json object (Content-Type: application/json;charset=UTF-8). But unfortunatly the result body is empty and therefore no navigation is possible.

    The sid 11100 is (in my environment) the sid of ARD. And i cannot find any other parameter or any other hint, whats going wrong.


    And now i'm not sure how to handle this. Button '0' is probably possible and this could also affect other pages. But the yellow button?


    It would be really nice if somebody could catch the URL from a real HbbTV device to hopefully see a difference. But this is a difficult task.


    Another finding in the source code:

    While Tatort page is open, press 4 times the button '7' and the page will change the location. The variable is called 'geheimCounter'. It's really strange but somehow funny.

  • Hi,

    hmm, unfortunately all this html, javascript, json stuff is not my thing and the hbbtv is a closed club.

    I also hope someone in the portal can assist.

    CU

    9000h

    Es ist eagl in wlehcer Reiehnfogle die Bchustebaen in Woeretrn vokrmomen. Huapstache der estre und leztte Bchustbae sitmmen.

  • Finally found the issue by accident :)


    The URL 'http://hbbtv-tatort.daserste.de/getapp.php?sid=11100&colid=2&query=appid' is right, but the sid isn't. I've been using the SID in decimal format, but after changing it to hex (2B5C) i get an answer from the server like '13.14'. And this points to the Mediathek (with app id 20, or hex 14 in the URL list).


    Ok. I have to send all application ids and URLs to the browser, change the sid in the channel configuration to hex value and interrupt dvb://current.ait requests and change the URL.

    Sounds feasible....