[Announce] HbbTV plugin / offscreen browser v0.0.9

  • 0:0 habe ich schon versucht.

    Auch ":0.0"? Läuft denn wirklich ein X-Server? Hast Du es mal mit einem anderen User versucht (nicht root)?


    Ich habe unter bionic (mein noch-Hauptsystem) mal folgendes probiert:

    Code
    1. ps -u $(id -u) -o pid= \
    2. | xargs -I PID -r cat /proc/PID/environ 2> /dev/null \
    3. | tr '\0' '\n' \
    4. | grep ^DISPLAY=: \
    5. | sort -u

    Und dabei erhalte ich tatsächlich

    Code
    1. DISPLAY=:0.0
  • Ich habe den Browser und das Plugin neu installiert. Und danach hat es einmal funktioniert.

    Nach einem weiteren Start geht leider wieder nichts mehr.

    Erneut: [hbbtv] Unable to send command.

    Der vdr bleibt hängen beim Start und beim Umschalten.


    Ich bleibe dran.

    Intel NUC 10 NUC10i3FNH, Digital Devices Octopus NET V2 Max M4, 1000 GB Samsung 970 Evo M.2 2280 PCIe 3.0 x4 NVMe

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

  • Hallo zusammen!

    Bei mir startet leider kein Video unter YaVDR Ansible (Focal) - in der Browser.log steht recht wenig

    Code
    1. [2020-07-26 15:20:06.581] [browser] [error] Video playing throws an error
    2. [2020-07-26 15:20:06.585] [browser] [error] JS ERROR: Source client://js/hbbtv_polyfill.js:243, Message: Failed to load because no supported source was found.


    Im Syslog finde ich mehr Informationen:



    Jemand eine Idee was da schief läuft?

    Cine S2 V6.5 + DuoFlex V4 Apollo-Lake Celeron (Asrock J3355M), ATRIC Einschalter, MLD 5.4 testing

  • Bei mir startet leider kein Video unter YaVDR Ansible (Focal) - in der Browser.log steht recht wenig

    Wie 9000H schon erwähnt hat, scheint es ein Rechteproblem zu sein. Das movie-Verzeichnis muss da sein und der Browser muss schreiben dürfen.


    Jul 26 15:20:06 vdr vdr[2739]: [0726/152006.576655:ERROR:batching_media_log.cc(38)] MediaEvent: {"error":"FFmpegDemuxer: open context failed"}
    Jul 26 15:20:06 vdr vdr[2739]: [0726/152006.577190:ERROR:batching_media_log.cc(35)] MediaEvent: {"pipeline_error":12}

    Da bin ich gerade dran. In der Original-Chrome Extension wurde statt dem Live-TV ein Video (und mir ging der Sound irgendwann so extrem auf die Nerven) abgespielt.

    Das habe ich rausgenommen, mit der Konsequenz, das dieser Fehler jetzt kommt.


    Ich versuche gerade dafür eine Lösung zu finden.


    Jul 26 15:20:07 vdr vdr[2504]: [0726/152007.174536:ERROR:browser_info_manager.cc(560)] Timeout of new browser info response for frame process id 6 and routing id 7


    Diese Meldungen bekomme ich auch manchmal, aber ich bin noch nicht dahinter gekommen, was die Ursache ist und welche Konsequenzen das hat und wie ich das weg bekomme.

  • Ich hatte aus dem ppa mal den vdr-osr-browser installiert und den Pfad in der hbbtv.conf entsprechend angepaßt und auch den Eigentümer des /opt/vdr-osr-browser rekursiv auf vdr:vdr gesetzt, klappte auch nicht, der Browser startet nicht.

    Jetzt mach ich es wie bisher, also die Teile aus dem git laden, das plugin normal kompilieren und mit checkinstall installieren (ja, ich weiß, ist aber einfacher ...) und den vdr-osr-browser in das ~vdr-Profil verschieben und den Owner setzen, dann - als "vdr" - make prepare_release und make release durchführen. Alle Unterverzeichnisse, auch das movie-Verzeichnis, werden damit erstellt. In der .bashrc von User vdr steht auch noch der Pfad zum vdrosrbrowser.


    Danke an Zabrimus für die Entwicklungsarbeit :)

    --
    vdr User #2022 - hdvdr2: Lenovo SFF M83, Intel(R) Core(TM) i5-4670S, 12 GB Ram, zram-swap/tmp, ubuntu-focal, softhddevice-vdpau
    ddbridge-6.5 mit 2xDVB-S2 und (Flex) 2xDVB-C/T Tunern, nvidia-GF720 SFF passiv (nvidia-455, --no-unified-memory), System SSD btrfs,

    snapper, 8TB HDD XFS/cow /srv/vdr, yavdr-ansible-2.4.5-patches, vdr-epg-daemon mit Frodo-plugins, Kernel 5.9.11-xfsscrub

    vdradmin-am, live+webstreaming, vdrmanager (Smartphones als FB), ffmpeg-4.3.1-libfdk_aac, vdr-plugin-hbbtv. Folding@home läuft auf CPU.

  • Ich habe Änderungen für den Browser und das Plugin committed. Aber das ist noch nicht Release-reif.


    Das Plugin:

    Der Startmechanismus, die Prüfung, das Killen, Restart und alles was damit zusammenhängt wurde geändert. Der Browserstart bzw. die Erkennung sollte stabiler sein. Desweiteren wurde zumindest ein Segfault beim Beenden des Browsers hoffentlich beseitigt. Die Skalierung der Ausgabe ist nicht mehr auf Videos beschränkt, sondern sollte auch mit Live-TV funktionieren - wenn der Browser endlich soweit ist.


    Der Browser:

    Die Video/Live-TV Größe wird anders bestimmt. Videos in n-tv sind nun sichtbar. Aber...

    1. Warnung! Videos bei n-tv abspielen ist noch extrem schlecht. Ich weiß schon wieder nicht, was an den Videos so besonders ist. Außer, daß ein dritter Stream vorhanden ist, mit dem ffmpeg nicht zurecht kommt:

    2. Warnung! Schaltet den Ton beim Abspielen der Videos auf n-tv leiser oder besser aus. Irgendwas muss ich mit den Videos noch machen, die Geräusche, die entstehen, sind z.T. hochfrequent und richtig unangenehm.


    Also noch nicht Release-reif. Aber zumindest das Plugin kann man schon gefahrlos aktualisieren.

    Ich versuche mich zur Ablenkung an Pro7/RTL und dergleichen. Das Plugin-Not-Found Fenster stört etwas.

  • Quote

    Stream #0:2(eng): Data: none (tmcd / 0x64636D74)

    Metadata:

    handler_name : TimeCodeHandler

    timecode : 00:00:00:00

    Unsupported codec with id 0 for input stream 2

    Ich würde den Stream per -map ausblenden


    vdr-User-# 755 to_h264 chk_r vdr-transcoding

  • Ich habe mal per mittels "-dn" alle Datenstream ignorieren lassen. Allerdings wieder ohne Erfolg.

    Dann habe ich den Player in VDR mal per svdrpsend attached und ein rohes ffmpeg (ohne den Browser) das Video abspielen lassen. Das Ergebnis war wieder ernüchternd.

    Und dann kam ich drauf. Mit Dash-Videos hatte ich auch schon Probleme mit dem Muxen von Audio/Video und siehe da. Transcodiere ich den Audiostream von aac nach aac, spielt alles wunderbar ab.
    Wobei ich mir die Frage stelle, ob das ein Problem von ffmpeg ist oder ob der Demuxer im VDR damit nicht klar kommt? :/Ich kenne mich da zuwenig aus, um die Qualität des Streams beurteilen zu können.


    Und jetzt stehe ich vor einem Problem. Ich kann entweder Listen führen, welche Sender den Audio-Transcode brauchen oder ich mache es generell immer. Immer fände ich blöd, aber Listen führen ebenso. Aber vielleicht eine Config-Datei, in der jeder selbst entscheiden kann, ob der Transcode durchgeführt werden soll, oder nicht. So könnte man - bei mir unbekannten Sender - schnell mal etwas versuchen. Ein URL-Pattern wäre vielleicht eine mögliche Konfiguration, aber wenn die Sender was ändern.... z.B. hbbtv-s3.n-tv.de

    Ach ja. Die Videoauflösung ist etwas bescheiden bei n-tv: 688x384. Aber es sind ja nur Nachrichten und ähnliches.

  • Du könntest ein paar Minuten der Streams auf Platte schreiben und mit mediainfo analysieren, besser wärs, wenn Du mit ffmpeg nen Unterschied im Audio Channel erkennen könntest.


    vdr-User-# 755 to_h264 chk_r vdr-transcoding

  • Lieber Zabrimus,


    eine Kleinigkeit fällt mir beim Installieren des hbbtv-Plugins immer auf:

    Code
    1. vdr-plugin-hbbtv (0.0.7+git20200727-6-9eeb35f-0yavdr0~focal) wird eingerichtet ...
    2. ln: Die symbolische Verknüpfung '/etc/vdr/conf.d/50-hbbtv.conf' konnte nicht angelegt werden: Die Datei existiert bereits

    Ich muß jedesmal die besagte Datei vorher um- und dann zurückbenennen.

    Was klappt da nicht?


    Aber jedenfalls danke für die Entwicklung! Funktioniert bei vielen Sendern schon toll :)

    --
    vdr User #2022 - hdvdr2: Lenovo SFF M83, Intel(R) Core(TM) i5-4670S, 12 GB Ram, zram-swap/tmp, ubuntu-focal, softhddevice-vdpau
    ddbridge-6.5 mit 2xDVB-S2 und (Flex) 2xDVB-C/T Tunern, nvidia-GF720 SFF passiv (nvidia-455, --no-unified-memory), System SSD btrfs,

    snapper, 8TB HDD XFS/cow /srv/vdr, yavdr-ansible-2.4.5-patches, vdr-epg-daemon mit Frodo-plugins, Kernel 5.9.11-xfsscrub

    vdradmin-am, live+webstreaming, vdrmanager (Smartphones als FB), ffmpeg-4.3.1-libfdk_aac, vdr-plugin-hbbtv. Folding@home läuft auf CPU.

  • Ich muß jedesmal die besagte Datei vorher um- und dann zurückbenennen.

    Was klappt da nicht?

    /etc/vdr/conf.d/50-hbbtv.conf sollte selbst keine Datei sein, sondern ein Symlink auf die Datei /etc/vdr/conf.avail/hbbtv.conf

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • /etc/vdr/conf.d/50-hbbtv.conf sollte selbst keine Datei sein, sondern ein Symlink auf die Datei /etc/vdr/conf.avail/hbbtv.conf

    Ah ja, hab ich nicht erwähnt - ist es auch:

    /etc/vdr/conf.d# ls -l *hbbtv*

    lrwxrwxrwx 1 root root 24 Jul 28 00:10 50-hbbtv.conf -> ../conf.avail/hbbtv.conf


    Habe übrigens das hbbtv-plugin und den vdr-osr-browser wieder auf die Version v. 25.7. zurücksetzen müssen, da mit der heutigen (aus dem git) der vdr hängt, sobald vdr-live oder vdradmin-am aufgerufen wird, ab dann nur mehr svdrp-timeouts, und auch die Fernbedienung reagierte nicht.

    Leider absolut keine Meldungen im syslog dazu.

    --
    vdr User #2022 - hdvdr2: Lenovo SFF M83, Intel(R) Core(TM) i5-4670S, 12 GB Ram, zram-swap/tmp, ubuntu-focal, softhddevice-vdpau
    ddbridge-6.5 mit 2xDVB-S2 und (Flex) 2xDVB-C/T Tunern, nvidia-GF720 SFF passiv (nvidia-455, --no-unified-memory), System SSD btrfs,

    snapper, 8TB HDD XFS/cow /srv/vdr, yavdr-ansible-2.4.5-patches, vdr-epg-daemon mit Frodo-plugins, Kernel 5.9.11-xfsscrub

    vdradmin-am, live+webstreaming, vdrmanager (Smartphones als FB), ffmpeg-4.3.1-libfdk_aac, vdr-plugin-hbbtv. Folding@home läuft auf CPU.

  • Du könntest ein paar Minuten der Streams auf Platte schreiben und mit mediainfo analysieren, besser wärs, wenn Du mit ffmpeg nen Unterschied im Audio Channel erkennen könntes

    Da genau liegt ja mein Problem. ffmpeg meldet irgendein Problem oder einen Hinweis, daß etwas nicht stimmen könnte oder das es Probleme geben könnte. Selbst in den Debug.Ausgaben von ffmpeg habe ich nichts finden können. ffplay und vlc spielen auch alles ohne Hinweis ab.

    mediainfo kannte ich noch nicht. Ich muß mal schauen, ob ich damit mehr Informationen bekomme.


    Habe übrigens das hbbtv-plugin und den vdr-osr-browser wieder auf die Version v. 25.7. zurücksetzen müssen, da mit der heutigen (aus dem git) der vdr hängt, sobald vdr-live oder vdradmin-am aufgerufen wird, ab dann nur mehr svdrp-timeouts, und auch die Fernbedienung reagierte nicht.

    Leider absolut keine Meldungen im syslog dazu.

    Hmm?? Ich sehe gerade so überhaupt keinen Zusammenhang zwischen vdr-live, vdradmin-am und meinem Plugin. Ich fürchte, live habe ich gar nicht und vdradmin-am müsste schon überall deinstalliert sein. Steht im Log etwas davon, daß der Browser neu gestartet wird? Und mit der Vorversion des Browsers/Plugins gibt es keine Probleme? Sehr seltsam. Ich muß zumindest ein Plugin mal wieder installieren.


  • Habe übrigens das hbbtv-plugin und den vdr-osr-browser wieder auf die Version v. 25.7. zurücksetzen müssen, da mit der heutigen (aus dem git) der vdr hängt, sobald vdr-live oder vdradmin-am aufgerufen wird, ab dann nur mehr svdrp-timeouts, und auch die Fernbedienung reagierte nicht.

    Leider absolut keine Meldungen im syslog dazu

    Ich denke, ich habe den Fehler im Plugin gefunden und den Fix committed. Wenn ein Test möglich ist, wäre das Klasse. Falls der Fehler noch vorhanden ist, muss ich weiter suchen.



    Ich wollte eigentlich eine kurze Anleitung schreiben, um zeigen zu können, wie man Videos direkt (ohne Durchgang durch den Browser) abspielen kann. U.a. um auch, die Probleme mit den Videos darstellen zu können. Aber entweder habe ich Halluzinationen, jemand will mich ärgern oder irgendwas ging gestern gehörig schief. Ich kann den Fehler nicht mehr nachstellen.


    Aber trotzdem mal die Anleitung:


    - VDR starten

    - ffmpeg starten

    Version 1 mit -codec copy:

    Code
    1.   ffmpeg -re -dn -i http://hbbtv-s3.n-tv.de/CPStuermer_200725172709.mp4 -codec copy -write_tmcd 0 -y -f mpegts   "tcp://127.0.0.1:5562?listen&send_buffer_size=64860"

    Version 2 mit audio transcode:

    Code
    1.  ffmpeg -re -dn -i http://hbbtv-s3.n-tv.de/CPStuermer_200725172709.mp4 -c:v copy -c:a aac -b:a 192k  -write_tmcd 0 -y -f mpegts "tcp://127.0.0.1:5562?listen&send_buffer_size=64860"

    3. Den Player im Plugin attachen:


    Code
    1. svdrpsend plug hbbtv attach


    Und das Video sollte im VDR abgespielt werden.


    Mit dem Kommando

    Code
    1. svdrpsend plug hbbtv detach

    stoppt man den Player wieder und man kommt wieder ins TV-Programm.


    Theoretisch sollte man jedes Video so darstellen können, sofern die Codecs passen, ansonsten müsste man noch Video/Audio Transcode Parameter hinzufügen.

  • Lieber Zabrimus, ich habe vorhin - wieder aus dem Git - Plugin und vdr-osr-browser bauen lassen (vdr-osr-browser als vdr-user im /var/lib/vdr-Ordner) und wollte testen, mit dem Erfolg, daß ein einfaches "svdrpsend stat" nur "timeout" lieferte (und live bzw. vdradmin-am hingen).

    Habe ganz schnell aus dem Snapshot vom 25.7. den Ordner vdr-osr-browser drüberkopiert, und der vdr-Prozeß kam wieder zum Leben.

    Es ist also nicht das vdr-plugin-hbbtv, sondern irgendwas im Browser-Ordner.

    Was kann ich weiter testen und wie komme ich an Logs? Das debug.log ist nämlich leer, obwohl

    Code
    1. # ps -ef|grep vdrosr
    2. vdr 814820 813603 0 10:03 ? 00:00:00 /var/lib/vdr/vdr-osr-browser/Release/vdrosrbrowser --logfile=/var/log/vdr/vdr-plugin-hbbtv.log --video=TCP
    3. vdr 814867 814820 0 10:03 ? 00:00:00 /var/lib/vdr/vdr-osr-browser/Release/vdrosrbrowser --type=zygote --no-sandbox --locales-dir-path=/var/lib/vdr/vdr-osr-browser/Release/locales --log-file=/var/lib/vdr/vdr-osr-browser/Release/debug.log --resources-dir-path=/var/lib/vdr/vdr-osr-browser/Release --user-agent=HbbTV/1.4.1 (+DRM;Samsung;SmartTV2015;T-HKM6DEUC-1490.3;;) OsrTvViewer --lang=en-US
    4. vdr 814889 814820 0 10:03 ? 00:00:00 /var/lib/vdr/vdr-osr-browser/Release/vdrosrbrowser --type=gpu-process --field-trial-handle=3316574556730398154,13629765350907799420,131072 --enable-features=CastMediaRouteProvider --disable-features=OutOfBlinkCors --no-sandbox --locales-dir-path=/var/lib/vdr/vdr-osr-browser/Release/locales --log-file=/var/lib/vdr/vdr-osr-browser/Release/debug.log --resources-dir-path=/var/lib/vdr/vdr-osr-browser/Release --user-agent=HbbTV/1.4.1 (+DRM;Samsung;SmartTV2015;T-HKM6DEUC-1490.3;;) OsrTvViewer --lang=en-US --gpu-preferences=MAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAQAAAAAAAAAAAAAAAAAAAACAAAAAAAAAA= --log-file=/var/lib/vdr/vdr-osr-browser/Release/debug.log --shared-files
    5. vdr 814892 814820 0 10:03 ? 00:00:00 /var/lib/vdr/vdr-osr-browser/Release/vdrosrbrowser --type=utility --field-trial-handle=3316574556730398154,13629765350907799420,131072 --enable-features=CastMediaRouteProvider --disable-features=OutOfBlinkCors --lang=de --service-sandbox-type=network --no-sandbox --locales-dir-path=/var/lib/vdr/vdr-osr-browser/Release/locales --log-file=/var/lib/vdr/vdr-osr-browser/Release/debug.log --resources-dir-path=/var/lib/vdr/vdr-osr-browser/Release --user-agent=HbbTV/1.4.1 (+DRM;Samsung;SmartTV2015;T-HKM6DEUC-1490.3;;) OsrTvViewer --lang=en-US --log-file=/var/lib/vdr/vdr-osr-browser/Release/debug.log --shared-files=v8_snapshot_data:100

    die laufenden Prozesse das Logfile eingetragen haben.

    --
    vdr User #2022 - hdvdr2: Lenovo SFF M83, Intel(R) Core(TM) i5-4670S, 12 GB Ram, zram-swap/tmp, ubuntu-focal, softhddevice-vdpau
    ddbridge-6.5 mit 2xDVB-S2 und (Flex) 2xDVB-C/T Tunern, nvidia-GF720 SFF passiv (nvidia-455, --no-unified-memory), System SSD btrfs,

    snapper, 8TB HDD XFS/cow /srv/vdr, yavdr-ansible-2.4.5-patches, vdr-epg-daemon mit Frodo-plugins, Kernel 5.9.11-xfsscrub

    vdradmin-am, live+webstreaming, vdrmanager (Smartphones als FB), ffmpeg-4.3.1-libfdk_aac, vdr-plugin-hbbtv. Folding@home läuft auf CPU.

  • Es ist also nicht das vdr-plugin-hbbtv, sondern irgendwas im Browser-Ordner.

    Der Browser blockiert die Plugins?? Das ist ja richtig seltsam.


    Das "debug.log" wird von CEF geschrieben, allerdings habe ich noch nicht herausgefunden, wie ich das eingeschaltet haben könnte oder ich übersehe da etwas. Falls es in der Plugin-Konfiguration gesetzt wurde, dann sollte das geändert werden.


    Ich würde auch eher vermuten, daß eigentliche Logfile befindet sich in "--logfile=/var/log/vdr/vdr-plugin-hbbtv.log".

    Du kannst den Browser geschwätziger machen mit dem zusätzlichem Browserparameter "--debug". "--trace" geht zur Not auch, wenn man viele Informationen will.


    Ist denn in dem syslog oder dem /var/log/vdr/vdr-plugin-hbbtv.log irgendwas auffälliges zu sehen? Wobei ich wahrscheinlich eher von anderen Meldungen getriggert werden, als du. Hmm... Kannst du mal ein grep "hbbtv" auf das /var/log/syslog machen und mal pasten, was nach einem Neustart des VDRs so ausgegeben wird?



  • Der letze Commit des Browsers fixt einen segfault bei RTL2 und soll das TV-Bild im OSD skalieren. So ein paar Sender bieten das an.

    Es könnte aber ein Timing-Problem geben, weil die Seite nach der HbbTV-Analyse unterm Hintern weggezogen wird um sie mit Javascript/XMLHTTPRequest wieder neu aufzubauen. Ich habe versucht, das richtige Timing zu finden um die Analyse neu zu starten.

    Aber ich weiß nicht. ob das bei jedem richtig funktioniert. Ansonsten müsste ich den Timeout höher setzen.

  • Lieber Zabrimus, ich bin immer noch auf dem git vom 25.7. - mit dem Plugin von heute morgens lief zwar der vdr, auch gab es keine svdrp-timeouts, doch nach wenigen Sekunden wird sowohl Fernbedienung (vdrmanager/Android) als auch nur Kanalwahl über vdradmin-am unbrauchbar: bei der Kanalumschaltung blieb das TV-Bild stehen, erst ein "restart vdr" nach Überspielen des alten Snapshots brachte wieder "laufende Bilder".

    Ich bin soweit mit der Version vom 25.7. zufrieden, werde aber versuchen, --debug zu aktivieren. Leider sind die Logfiles bislang leer.

    --
    vdr User #2022 - hdvdr2: Lenovo SFF M83, Intel(R) Core(TM) i5-4670S, 12 GB Ram, zram-swap/tmp, ubuntu-focal, softhddevice-vdpau
    ddbridge-6.5 mit 2xDVB-S2 und (Flex) 2xDVB-C/T Tunern, nvidia-GF720 SFF passiv (nvidia-455, --no-unified-memory), System SSD btrfs,

    snapper, 8TB HDD XFS/cow /srv/vdr, yavdr-ansible-2.4.5-patches, vdr-epg-daemon mit Frodo-plugins, Kernel 5.9.11-xfsscrub

    vdradmin-am, live+webstreaming, vdrmanager (Smartphones als FB), ffmpeg-4.3.1-libfdk_aac, vdr-plugin-hbbtv. Folding@home läuft auf CPU.