Dieter Das ist eine tolle Idee. Leider wohne ich 200km nördlich von Frankfurt. Stuttgart ist mir daher leider ein wenig weit....
Posts by beta
-
-
Bei mir funktioniert es auch super mit shady_kiss auf einem Radxa Zero. Vielen Dank für Deine tolle Arbeit kamel5 .
-
jojo61 Danke, das hat auch mein Problem gelöst.
-
Läuft bei Dir alles auf derselben Maschine?
-
Welches Problem gibt es denn da ?
Die laufen bei mir nicht. Der Parameter -t gefolgt von dem codecs.ini-File sollte laut Zabrimus helfen, macht er aber bei mir nicht.
Was mir darüber hinaus auch noch aufgefallen ist: Ich muss remotrans am Anfang einmal resetten (pkill und Neustart), damit es nach einem neuen Boot läuft. Beispiel ist der Film "Meeresleuchten" aus der oberen Leiste.
EDIT: Und wenn ich danach dann wieder einen anderen Film schaue, habe ich Schnipsel von beiden Filmen in einer Dia-Show. Danach muss ich dann cefbrowser und remotrans neu starten, damit es wieder läuft. Komischerweise läuft dann auch der Film "Meeresleuchten". Sehr merkwürdig das Ganze. Vielleicht doch das von Dir beschriebene Puffer-Problem?
-
jojo61 ja, das ist richtig. Ab und an habe ich auch das Problem, dass remotrans sagt, es wird dekodiert, aber es kommt kein Bild an. Und es bleibt das Problem mit den 48 KHz Audio-Filmen, die auch der Parameter -t codecs.ini nicht löst.
-
Ja, mache ich. Wenn ich die Skripte mit screen starte, funktioniert es. Allerdings auch nicht immer. Oft muss ich remotrans killen und neu starten, danach funktioniert es wieder auf anhieb, bis wieder ein Film nicht funktioniert. Dann hilft wieder der Neustart von remotrans.
-
Nein, ich bin root, ich darf das
-
Wenn ich remotrans von einer Shell aus Starte (z.B. shh), dann läuft es. Es läuft aber nicht, wenn ich das Ganze in ein Skript packe, das von VDR gestartet wird. Hat hier jemand eine Idee?
Kann das es dann ein Problem mit den Sockets sein, wenn cefbrowser und remotrans nicht in einem Terminal laufen?
-
jojo61 Hier ist das log:
Code
Display More[0810/185328.890254:INFO:CONSOLE(397)] "Found TV on node: [object HTMLObjectElement]", source: http://192.168.178.134:50001/js/_dynamic_body.js (397) [0810/185343.415360:INFO:CONSOLE(438)] "Node BroadcastVideo release() ...", source: http://192.168.178.134:50001/js/_dynamic_body.js (438) [0810/185343.529115:INFO:CONSOLE(406)] "Found Video on node: [object HTMLObjectElement] -> http://pdvideosdaserste-a.akamaihd.net/de/2023/07/31/DEGSM836463/DEGSM836463_2705512_sendeton_960x540-50p-1600kbit.mp4", source: http://192.168.178.134:50001/js/_dynamic_body.js (406) [0810/185343.611023:WARNING:browser_info.cc(309)] Returning a speculative frame for 38654705669 [9,5] [0810/185343.869670:WARNING:browser_info.cc(309)] Returning a speculative frame for 38654705669 [9,5] [0810/185343.875997:WARNING:browser_info.cc(309)] Returning a speculative frame for 38654705669 [9,5] [0810/185343.877374:WARNING:browser_info.cc(309)] Returning a speculative frame for 38654705669 [9,5] [0810/185343.878876:WARNING:browser_info.cc(309)] Returning a speculative frame for 38654705669 [9,5] [2023-08-10 18:53:48.505] [cefbrowser] [error] [transcoderremoteclient.cpp:26] Http error: Failed to read connection [2023-08-10 18:53:48.506] [cefbrowser] [error] [v8handler.cpp:88] Unable to send request to transcoder [0810/185348.861194:INFO:CONSOLE(170)] "Node Play Speed 1", source: http://192.168.178.134:50001/js/_dynamic_body.js (170) [0810/185349.311656:INFO:CONSOLE(292)] "Video event error", source: http://192.168.178.134:50001/js/_dynamic_body.js (292) [0810/185349.312620:INFO:CONSOLE(190)] "Failed to load because no supported source was found.", source: http://192.168.178.134:50001/js/_dynamic_body.js (190) [0810/185349.313299:INFO:CONSOLE(263)] "Video event pause", source: http://192.168.178.134:50001/js/_dynamic_body.js (263)
Ist das ein Problem mit remotrans?
-
Mache ich heute Abend. Welches log meinst Du? softhdodroid oder cefbrowser oder remotrans?
Hast Du Dein Plugin gepatched (und den VDR) oder nicht? Ich nutze den Github-Stand ohne Patch.
Und ich nutze die master-branches von vdr-plugin-web, remotrans und cefbrowser.
-
jojo61 Mit dem softhdodroid-Plugin spielen bei mir keine 480p-Filme. Könntest Du mal schauen, ob man da an Deinem Plugin was machen kann? Bei ZDF kann ich alles insgesamt auf Full-HD umstellen und das läuft ohne Probleme. Bei ARD starten aber viele Filme in 480-Auflösung, was nicht funktioniert. Manche kann ich umstellen auf Full-HD, bei anderen wirft mich das Web-Plugin dann raus und ich lande wieder im VDR.
-
Wie versprochen, hier ein kleines HOWTO, um alles native in einer chroot-Umgebung auf Amlogic-Boxen zu installieren (getestet auf meinem Radxa Zero).
1. Mögliche fehlende Pakete installieren
Codeapt install -y zlib1g-dev libssl-dev libcrypt-dev libglib2.0-dev libnss3-dev \ libatk1.0-dev libatk-bridge2.0-dev libcups2-dev libxcomposite-dev libxdamage-dev \ libxrandr-dev libgbm-dev libxkbcommon-dev libpango1.0-dev libasound2-dev
Meson aus apt ist zu alt. Daher meson über python3 mit pip3 installieren:
Meson liegt danach unter /usr/local/bin/meson
2. Web plugin
Makefile-Zeile ändern (-lrt und -lswscale dazufügen):
Die Datei sockets.ini an eine Stelle der Wahl kopieren
und überall die IP-Adresse des eigenen Rechners eintragen. Bei mir sieht das so aus:
Code
Display More[vdr] http_ip = 192.168.178.134 http_port = 50000 [browser] http_ip = 192.168.178.134 http_port = 50001 [transcoder] http_ip = 192.168.178.134 http_port = 50002
3. Remoteranscode
Codecd /home/rudi git clone https://github.com/Zabrimus/remotetranscode --recursive cd remotetranscode /usr/local/bin/meson setup build cd build /usr/local/bin/meson compile -j1 /usr/local/bin/meson install
Das -j1 ist wichtig, da das kompilieren sonst mit einem fatal error abbricht (zu wenig Speicher).
Ich kopiere remotrans und den movie-Ordner nach root (/), es kann aber auch da liegen bleiben, wo es jetzt ist
Das erspart mir später im Skript, das Verzeichnis zu wechseln und die Root-Umgebung ist automatisch gesetzt.
4. cefbrowser (quick and dirty!)
Codecd /home/rudi git clone https://github.com/Zabrimus/cefbrowser --recursive cd cefbrowser ./setup.sh arm64
Vor dem Kompilieren müssen noch 2 Dateien geändert werden:
In cefbrowser/subprojects/cef muss die Datei CMakeLists.txt so geändert werden (sonst ist das cmake zu alt)
Dann
aufrufen.
In cefbrowser/build muss die Datei build.ninja geändert werden (-lrt muss dazu, sonst gibt es undefined symbols beim Linken):
Code< command = c++ $ARGS -o $out $in $LINK_ARGS --- > command = c++ $ARGS -o $out $in $LINK_ARGS -lrt
bricht mit einem Fehler ab, da die (Cross)-Architektur nicht stimmt. Daher müssen in der Datei build.ninja weitere Änderungen durchgeführt werden. Jedes Vorkommen von -m64 -march=x86-64 muss gelöscht werden. Das kann man mit einem Editor seiner Wahl machen (Search and replace all). Ich weiß, dass das quick&dirty ist. Besser wäre es, das Build-Skript anzupassen.
Kompilieren erneut starten:
Wichtig:
Das web-Plugin muss laufen, bevor cefbrowser und remotrans gestartet werden. Zum Testen empfiehlt es sich, beide Programme in einer separaten Shell zu starten, damit man die Log-Ausgaben sieht.
Falls alles läuft, kann man das in ein Skript packen. Ich starte in meiner runvdr ein Skript namens hbbtv.sh so
Das Skript hbbtv.sh sieht so aus:
Bash#!/bin/bash timeout 30 sh -c 'until nc -z $0 $1; do sleep 1; done' localhost 6419 # Start cef browser and remotrans here at -f /home/rudi/starte_cef.sh now at -f /home/rudi/starte_remotrans.sh now
Wichtig ist, dass der atd-Daemon läuft (mit atd starten in der runvdr).
Die beiden weiteren Skripte sehen so aus:
starte_cef.sh:
Bash#!/bin/bash killall cefbrowser cd /home/rudi/cefbrowser/build/Release/ LD_LIBRARY_PATH=/home/rudi/cefbrowser/build/Release ./cefbrowser --config /home/rudi/sockets.ini --ozone-platform=headless -f -z 1920
Und starte_remotrans.sh so:
Das killall habe ich dazugesagt, da ich dann bequem von der VDR commands.conf aus den Browser oder remotrans neu starten kann.
Die Einträge in der commands.conf sehen bei mir so aus:
CodeStarte CEF-Browser : at -f /home/rudi/starte_cef.sh now Starte remotrans : at -f /home/rudi/starte_remotrans.sh now
Danke nochmal an Zabrimus für dieses tolle Projekt.
-
Zabrimus: Danke. Soll ich ein kurzes native-howto hier veröffentlichen oder ist es Dir lieber, es in einen eigenen Thread zu packen? Eigentlich passt es ja hier zum Thema, oder?
-
Im Prinzip funktioniert es. Ich habe allerdings häufig folgendes Problem, Zabrimus:
Manche Filme starten nicht immer. Wenn ich dann das Web-Plugin verlasse und versuche, einen anderen Film zu starten, habe ich Bruchstücke des ersten Films in der Ausgabe. Wenn es funktioniert, wird der Film aber richtig abgespielt. Daher denke ich nicht, dass es am Ausgabeplugin oder am ffmpeg liegt ( jojo61 softhdodroid). Wenn da logs helfen, liefere ich die gerne nach. Der Browser muss dann neu gestartet werden, damit es eine Chance auf Funktionieren gibt. Es funktioniert ca. jeder 6.-7. Versuch. Tagesschau funktioniert übrigens immer.
jojo61 Ich habe wahrscheinlich wenig Zeit für das Skript in den kommenden Tagen. Ich kann aber ein kleines howtio schreiben, so dass Du Dir das auch einmal native unter der chroot-Umgebung anschauen kannst.
-
Mit diesem Aufruf
CodeLD_LIBRARY_PATH="/home/rudi/cefbrowser/build/Release/" ./cefbrowser --config /home/rudi/sockets.ini --ozone-platform=headless -q -z 1920
funktioniert es ganz gut und ich kann weiter testen.
Zabrimus und jojo61: Mir ist es nicht gelungen, den Start des cef-Browsers und des Transcoders in meine runvdr zu implementieren. Wenn ich die Skripte von einer Shell aus Aufrufe, läuft alles. Wenn ich aber die runvdr vom System des rootfs aus aufrufe (in meiner chroot), laufen weder der cefbrowser (obwohl der Prozess da ist) noch der remotrans (hier ist der Prozess nicht da). Kann das etwas mit den Sockets zu tun haben und wie kann man das Problem lösen? Hat jemand eine Idee?
Ansonsten läuft das superflüssig unter CoreElec in meiner chroot.
EDIT: Es sieht so aus, als müsste der VDR zuerst laufen und dann erst der cefbrowser und remotrans. Wenn ich das in meine commands.conf packe, dann funktioniert es, also muss es auch anders gehen.
-
jojo61 Ich weiß es nicht mehr genau. Es war eine Naturdoku (5.-6. Eintrag nach Start, da der erste Film). Ich gebe Bescheid, wenn die Skripte fertig sind.
-
-
Der VDR lief dabei weiter. Das Video wurde nur nicht abgespielt. Statt dessen wurde wieder das normale TV-Bild angezeigt.
Ich werde heute Abend weiter testen und dann berichten. Danke, Zabrimus.
-
Deine Arbeit hat sich gelohnt, Zabrimus, vielen Dank nochmal. Ich habe allerdings das Problem, dass das Ganze nur einmal funktioniert (z.B. Tagesschau-Video). Nach Rückkehr zum VDR und nach einem 2. Web-Aufruf ist es rein Glückssache und das Browser-Log ist voll mit:
Code[2023-08-01 23:46:13.071] [cefbrowser] [error] [vdrremoteclient.cpp:43] HTTP error (ProcessOsdUpdate): Could not establish connection
Fehlen mir da noch irgendwelche Patches (zugegeben, ich muss den Thread noch einmal komplett lesen...).
EDIT: Oder war es der letzte Commit des web-Plugins (- device->Detach(aitFilter);)? Den hatte ich gestern noch nicht drin. Im Moment kann ich nur leider nicht testen.