Hallo,
das HbbTV Plugin und der Browser haben einen Status erreicht, von dem ich denke, das er schon brauchbar ist. Es funktionieren noch nicht alle Sender und Seiten. Ich habe auch den Eindruck, daß mein Kabelprovider nicht alle HbbTV Seiten bzw. URLs im Strom liefert. Über Hinweise zu weitere Seiten, die noch nicht vorhanden sind, würde ich mich freuen. Mehr dazu weiter unten.
Die Abhängigkeiten des Browsers und des Plugin habe ich versucht soweit wie möglich zu reduzieren bzw. Teile mitzuliefern. Beides wird immer zusammen gebraucht.
Videos können abgespielt werden (inkl. des OSD des Senders). Dazu wird ffmpeg benötigt, das evt. das Video transkodiert oder im Optimalfall nur nach TS kopiert.
Github: vdr-plugin-hbbtv
Voraussetzungen:
libswscale aus dem FFmpeg Paket
Build:
Wie jedes andere Plugin auch:
make
make install
Voraussetzungen:
ffmpeg, ffprobe, libcurl
Auf Github habe ich auch eine kompilierte Version bereitgestellt, mit der ein schneller Test des Plugins/Browser möglich sein sollte.
Build:
Da gibt es mehrere Möglichkeiten, die auf der Github-Seite angesprochen werden. Meine Empfehlung ist die Installation des CEF (Chrome Embedded Framework) in das Verzeichnis thirdparty. Damit werden keine Dateien irgendwo ins System kopiert oder installiert und der entstehende Release-Ordner enthält alles, was zum Start und zur Laufzeit des Browsers notwendig ist. Wohin der Release-Ordner kopiert wird, bleibt dem Anwender überlassen. Das prepare_release lädt ein vorkompiliertes Binary von CEF des automatischen Build von Spotify in den thirdparty-Ordner und kompiliert die notwendige Library. prepare_release ist nur einmal notwendig.
make prepare_release
make release
Der Browser kann intern durch das Plugin gestartet werden, oder extern durch einen anderen Mechanismus. Ich empfehle die interne Konfiguration, da damit auch ein Restart des Browsers im Fehlerfall erfolgt. Per SVDRP kann der Browser dann auch gestoppt/gestartet werden.
Konfiguration des Plugins für eine interne Verwendung des Browsers:
Der Parameter -c ist optional und kann entfallen.
Konfigurationsdateien:
Das Plugin enthält nicht viele Dateien. Es sind z.B. hbbtv_urls.list, menu_10_Mediathek und menu_20_EPG.
Die hbbtv_urls.list enthällt alle URLs, die ich aus den Sendern, die empfange, extrahieren konnte. Damit sollten die Seiten im HbbTV-Menu schneller verfügbar sein. Z.B. habe ich bei ARD festgestellt, daß es z.T. etwas länger dauern kann, bis die URLs verfügbar sind. Das Problem ist damit gelöst.
Die beiden Dateien menu_10_Mediathek und menu_20_EPG sind nur Beispiele für Bookmarks von mir. Dazu wurde die komplette URL-Liste durchsucht und Einträge rauskopiert. Sie können auch gelöscht, bearbeitet werden. Oder es können neue Dateien mit eigenen Wünschen angelegt werden. Screenshots siehe weiter unten.
In der hbbtv_urls.list werden alle URLs gespeichert, so beim Kanalwechsel so aufgefunden werden. Diese Datei wird auch regelmäßig gespeichert. Und genau über Einträge, die ich nicht habe, würde ich mich freuen.
Der Browser kann ebenfalls in Grenzen konfiguriert werden.
vdr-osr-ffmpeg.config:
ffmpeg_executable = /usr/bin/ffmpeg
ffprobe_executable = /usr/bin/ffprobe
# Default FFmpeg parameters to transcode incoming video to h264/aac (can be changed here to e.g. use hardware encoding)
# Which command line will be used depends on the input video file
# copying streams is always the preferred selection
#
# the command line will be build using this pattern
# <ffmpeg_executable> -hide_banner -loglevel warning -re -ss <starttime> -i <input file/url> <encode_video> <encode_audio> -y ffmpeg_output.ts
#
# The default parameters are
# encode_video = -c:v libx264 -preset veryfast -x264-params keyint=60:min-keyint=60:scenecut=0:force-cfr=1:crf=28
# or in case of only copying
# encode_video = -c:v copy
#
# The default encode_audio is
# encode_audio = -c:a aac -b:a 192k
# or in case of only copying
# encode_audio = -c:a copy
# encode_video = -c:v libx264 -preset veryfast -x264-params keyint=60:min-keyint=60:scenecut=0:force-cfr=1:crf=28
# encode_audio = -c:a aac -b:a 192k
Display More
Hier sollte der Pfad zu ffmpeg/ffprobe auf jeden Fall stimmen und müsste ggfs. angepasst werden. Die Konfigurationen zum Transcoding können ebenfalls angepasst werden, falls gewünscht.
vdr-osr-browser.config:
Diese Konfiguration sollte passen, falls CEF wie oben beschrieben in das thirdparty-Verzeichnis installiert wurde. Eine Änderung hier ist nur sinnvoll, falls man CEF irgendwo anders installiert hat.
Red Button:
Der Eintrag schaltet den Browser in den HbbTV Mode und präsentiert die Anzeige des Red-Buttons.
Der Eintrag Mediathek entspricht der Liste aus der bereits erwähnten Datei menu_10_Mediathek.
Ein Beispiel für den Red-Button:
Nach drücken des Roten Knopfes der Fernbedienung sieht es dann so aus:
Die Mediathek funktioniert auch:
Oder auch das Abspielen von Videos:
Wie üblich ist das Plugin/der Browser nie richtig fertig und kann weiter verbessert werden. Über Kommentare/Fehler/Wünsche würde ich mich freuen.
Verschiedene Sender funktionieren nicht (z.B. DMAX), die aber auch in der Chrome HbbTV Extension schon nicht funktionieren. Mir ist es nicht gelungen, herauszufinden, woran die Darstellung scheitert, bzw. welche Objekte oder sonstiges im Javascript-Teil noch fehlen oder nicht implementiert sind. Es ist etwas mühselig Javascript-Fremdcode zu debuggen, zumal ich mit Javascript nicht unbedingt befreundet bin
Noch warte ich auf Kommentare meiner schärfsten Kritikerin (dem Hausvorstand *g*).
Zabrimus