[RPi4][LibreELEC] Autostart mit ext. Grabber

  • Hallo zusammen,


    erst einmal möchte ich mich für und an das Forum hier bedanken; Durch die Suchfunktion konnte ich die meisten Anliegen bereits finden und Probleme somit selbst lösen.


    Momentan gibt es allerdings Baustellen an deren Probleme ich nicht weiter weiß.


    Da der interne Grabber tadellos lief, aber Kodi jedes mal abstütze, sobald das GUI während eines Video playbacks geöffnet wurde (AV Signal verloren, Hyperion / Ambilight lief im Hintergrund weiter), wollte ich einen externen Grabber nutzen.


    Nach etlichen LED flimmereien später, welches sich einfach nur als Wackelkontakte an verschiedensten Stellen entpuppt haben (LED-Eckverbinder, Chinch-Adapter, USB-Grabber selbst,...), konnte ich den externen Grabber erfolgreich in Betrieb nehmen. Zwar hat dieser zwischendurch ein Delay / eine Latenz, aber das sollte ein anderes Thema sein (wenn man durch externe Geräte den Delay überhaupt reduzieren kann).Das einzige Manko an der Geschichte: Ich muss über HyperCon den Dienst manuell starten.


    Ich habe Threads gefunden mit dem keyword 'autostart', aber habe vermutlich die Lösung übersehen. Irgendwann bin ich dann bei hyperion.ng hängen geblieben, weil ich dachte, dass wäre die Lösung. Nachdem ich hyperion.ng installiert habe startet / leuchtet mein Ambilight nun gar nicht mehr. Der Dienst wird laut HyperCon und der Web-Oberfläche aber als aktiv angezeigt.


    Per SSH habe ich auch versucht irgendwelche config oder autostart Dateien zu suchen und zu öffnen, leider blieb das finden der Dateien aus.


    Bevor ich jetzt den falschen Weg gehe oder ich einfach alles komplett neu installiere, würde ich aus der Geschichte doch lieber schlauer als vorher rausgehen. Daher meine folgenden Kernfragen:


    • Wie bekomme ich Hyperion dazu mit einem externen Grabber und einem ausgeschalteten Gerät (TV, Konsole) dazu sich automatisch zu starten?
    • HyperCon vs. Hyperion.ng: Welche der Konfigurationsmöglichkeiten ist hierbei zu bevorzugen, bzw. bringen Vor- oder Nachteile mit sich?


    Ich hoffe Ihr könnt mir bei den Fragen weiterhelfen. Danke!

    • Offizieller Beitrag

    würde ich aus der Geschichte doch lieber schlauer als vorher rausgehen


    Immer mit der Ruhe. Alles wird gut. ;)
    Vorweg: HyperCon in Verbindung mit Hyperion (Classic) sind nicht mit Hyperion.NG kompatibel (beide Versionen gleichzeitig funktionieren definitiv nicht).
    .NG bringt sein eigenes WebUI mit, somit entfällt ein externes Bedienungs- bzw. Konfigurationstool.
    Solltest du schon beides mal probiert haben (oder noch beides installiert haben), empfehle ich dir entweder Hyperion (Classic) über Hypercon zu deinstallieren und NG zu benutzen oder NG zu entfernen und Hyperion (Classic) über Hypercon zu benutzen/steuern.


    Im Fall das nichts mehr von den beiden Vorschlägen funktioniert, fang am besten mit einem frischen System an.


    Kommen wir zu deinen Fragen.
    1. Das sollte über die V4L2 Threshold Schwelle geregelt werden. (Hyperion Classic-> In der config Datei anpassbar / Hyperion.NG -> über das WebUI )
    2. Was soll ich dir als Dev sagen? Natürlich Hyperion.NG :cool:

    Vorteile
    :

    • Änderungen können in Echtzeit übernommen werden.
    • Mehrsprachiges WebUI
    • Effekte können individuell angepasst werden
    • Es wird aktiv gepflegt/aktualisiert


    Nachteil: Zur Zeit noch in der Alpha Phase


    Sollten noch Fragen bestehen, immer her damit. :D


    edit: Ich glaube ich habe deine erste Frage falsch verstanden. Also starten sollte Hyperion(.NG) über Systemd/Initd
    edit2: Je öfter ich deine erste Frage lesen, um so mehr stellt sich mir die Frage, was hat das mit deinem externen Grabber und einem ausgeschalteten TV/Konsole zu tun?

  • Danke für die Antwort!


    Ok, jetzt bin ich schon mal etwas schlauer was HyperCon+Hyperion und Hyperion.NG angeht. Ich werde dann Hyperion.NG mal ausprobieren, mir gefällt das WebUI soweit ;) (Webentwickler hier:roflmao:)


    Ich versuche mein Anliegen für Frage 1 noch mal zu erläutern:


    Um das starten mittels fehlenden HDMI-Stecker zu ermöglichen, habe ich den Paramter hdmi_force_hotplug=1 in der config.txt hinzugefügt. Somit ließ sich Kodi mit Hyperion ohne aktives HDMI Signal starten.
    Seit dem ich allerdings über HyperCon nun einen externen anstelle des internen Grabber gewählt habe funktionierte der Autostart von Hyperion nicht mehr. Eigentlich sollte hier die Regenbogen-Animation starten, diese blieb jedoch aus. Wenn ich über HyperCon dann Hyperion starte läuft es erst.


    Ich glaube um das verständlicher darzustellen ist deine Anmerkung schon richtig: Ignorieren wir den ausgeschalteten Verbraucher :whistle: Ich glaube dass war noch das ursprüngliche Problem als ich den Parameter nicht gesetzt hatte :facepalm:


    Sollten noch Fragen bestehen, immer her damit. :D


    Wenn das so ist... :D
    Die einzige Sache, die mir gerade so wichtig wäre, ist der Delay / die Latenz die vom externen Grabber kommt. in HyperCon habe ich die Bildverkleinerung auf 0 gestellt. Ein niedriger Wert, also keine bis niedrige Komprimierung, lief meistens schneller als wenn das Bild erst vorher kleiner berechnet werden muss. Trotzdem gibt es zwischendurch Delays, die sich beim Bildwechsel bemerkbar machen. Kommt da zufällig die von dir benannte V4L2 Threshold Schwelle ins Spiel?

    • Offizieller Beitrag

    Webentwickler hier:roflmao:)


    Genau so welche Leute wie du suchen wir. Ehrlich. :thumbup:
    Hätten da noch ein paar Baustellen im WebUI. ;)


    Um das starten mittels fehlenden HDMI-Stecker zu .......


    Versuch es noch mal mit Hyperion.NG. Da gibt es nicht so viele Probleme mit V4L2 Geräten.


    in HyperCon habe ich die Bildverkleinerung auf 0 gestellt.


    Die Bildverkleinerung solltest du nicht zu niedrig stellen. Dadurch hat dein RPi nur mehr Arbeit und es kommt zu einen größeren Delay. Im Endeffekt braucht Hyperion auch nicht die volle Auflösung um die Farbwerte am Rad des Bildschirms/TV zu ermitteln.


    Kommt da zufällig die von dir benannte V4L2 Threshold Schwelle ins Spiel?


    Der V4L2 Threshold ist dafür da um zu erkennen wenn an deinem V4L2 Gerät kein Signal mehr anliegt.

  • Genau so welche Leute wie du suchen wir. Ehrlich. :thumbup:
    Hätten da noch ein paar Baustellen im WebUI. ;)


    Vielleicht kann ich helfen ;) Kannst mir ja mal eine PN schreiben :D


    Habe es soweit installiert, für Kodi läuft es soweit super. Finde ich echt klasse das man nach dem speichern die Änderungen sofort sieht, super gemacht! :thumbup:


    Nur beim externen USB Grabber flackert das Vorschaubild und die LEDs die ganze Zeit schwarz/weiß. Ich habe die Kontakte noch mal alle geprüft, auch wenn ich diese nicht geändert habe. Wenn ich bei der PS4 auf einen bestimmten Listeneintrag in ca. Bildmitte wechsel werden die unteren LED's auch heller, also scheint er ein Signal irgendwie zu bekommen.


    Hast du hier zufällig einen Tipp für mich?


    Im Anhang hab ich einmal einen Screenshot davon und meine .json Datei.

  • Einmal ein kleines aber feines Update meinerseits:


    Das Problem mit dem Schwarz-Weiß Bild konnte ich beheben. Nach ewiger Recherche in den Threads bin ich gefühlt nicht weiter gekommen, also habe ich mir einfach noch mal ein paar Details angesehen:


    2 Problemzonen konnte ich beseitigen:


    [H]Problem 1[/H]


    Ich hatte (vermutlich selber) einen Fehler eingebaut, in dem ich bei

    • Konfiguration > Aufnahme Hardware > USB Aufnahme


    Unter Höhe und Breite jeweils 1 drin stehen hatte, was natürlich absurd ist. Das dabei eben ein 1x1 Pixel-matsch bei rum kommt habe ich zu guter Schluss dann auch begriffen. o_O


    Desweiteren konnte ich ich mit lsusb herausfinden, das auf jeden Fall mein USB Grabber erkannt wird:

    Code
    LibreELEC:~ # lsusb
    Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 001 Device 003: ID 05e1:0408 Syntek Semiconductor Co., Ltd STK1160 Video Capture Device
    Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub


    v4l2-ctl --all zeigte mir dann ebenfalls um welches Gerät es sich handelt:



    Interessant dass sich diese Werte wohl ändern, davor hatte ich ich unter Format Video Capture noch andere Werte:


    Code
    LibreELEC:~ # v4l2-ctl --allDriver Info (not using libv4l2):        Driver name   : stk1160        Card type     : stk1160        Bus info      : usb-0000:01:00.0-1.4        Driver version: 4.19.83        Capabilities  : 0x85200001                Video Capture                Read/Write                Streaming                Extended Pix Format                Device Capabilities        Device Caps   : 0x05200001                Video Capture                Read/Write                Streaming                Extended Pix FormatPriority: 2Video input : 0 (Composite0: ok)Video Standard = 0x00001000        NTSC-MFormat Video Capture:        Width/Height      : 720/480        Pixel Format      : 'UYVY'        Field             : Interlaced        Bytes per Line    : 1440        Size Image        : 691200        Colorspace        : SMPTE 170M        Transfer Function : Default (maps to Rec. 709)        YCbCr/HSV Encoding: Default (maps to ITU-R 601)        Quantization      : Default (maps to Limited Range)        Flags             :Streaming Parameters Video Capture:        Frames per second: 29.970 (30000/1001)        Read buffers     : 2User Controls                     brightness 0x00980900 (int)    : min=0 max=255 step=1 default=128 value=128 flags=slider                       contrast 0x00980901 (int)    : min=0 max=127 step=1 default=64 value=64 flags=slider                     saturation 0x00980902 (int)    : min=0 max=127 step=1 default=64 value=64 flags=slider                            hue 0x00980903 (int)    : min=-128 max=127 step=1 default=0 value=0 flags=slider                     chroma_agc 0x0098091d (bool)   : default=1 value=1 flags=update                    chroma_gain 0x00980924 (int)    : min=0 max=127 step=1 default=40 value=15 flags=inactive, slider, volatile



    EDIT // Die unterschiedlichen Auflösungen kommen durch die Änderung der Auflösung bei der USB Aufnahme

    Egal, das Bild war schon mal erkannbar, nur halt in Schwarz weiß.



    [H]Problem 2[/H]


    Mein HDMI to AV Converter hat einen PAL <-> NTSC Switch... Auf NTSC kriege ich dann auch die Farbe rein :eek:


    Falls also jemand die gleichen Schwierigkeiten hatte; Ich hoffe ich konnte damit helfen :roflmao:

  • Ich melde mich erneut, da ich leider wieder ein par Probleme mit dem Autostart habe :sickxx:


    Beim einschalten der Stromzufuhr für RasPi und das Ambilight bootet normalerweise Hyperion.ng ganz normal. Zwischendurch habe ich aber das Problem, dass er während der Regenbogen-Animation nicht weiter läuft und stehen bleibt. In die Weboberfläche gelange ich noch und konnte feststellen, dass der externe Grabber scheinbar nicht mehr erkannt wird. Ausprobiert habe ich das starten während eine HDMI Quelle ein- oder ausgeschaltet war.


    Anbei einmal das logging, welches ich über die Weboberfläche kopiert habe.


    Anmerkung:
    Die Zeile "[hyperiond V4L2:auto] (ERROR) Previous line repeats 200 times" taucht mehrfach auf und habe diese daher mit "..." abgekürzt.


    Code
    [hyperiond V4L2:auto] (ERROR) Previous line repeats 200 times
    ...
    [hyperiond V4L2:auto] (ERROR) Throws error nr: VIDIOC_DQBUF error code 22, Invalid argument
    [hyperiond V4L2:auto] (ERROR) Previous line repeats 21 times
    [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:995:handleLoggingCommand()) log streaming activated for client ::ffff:192.168.178.89
    [hyperiond V4L2:auto] (ERROR) Previous line repeats 200 times
    ...


    Erneuter Versuch nach einem Neustart:


    Und erneut:


    Dann habe ich gerade eben mein MacBook ausgeschaltet und es erneut versucht (dachte vlt. einen IP Konflikt) und habe dann schlussendlich folgendes bekommen, wo er die Regenbogen-Animation gefühlt übersprungen hat (Habs aus dem Augenwinkel nicht ganz gesehen :whistle:):



    Kann mir jemand sagen was er für ein Problem hat? Gestern Abend hatte es noch funktioniert :crying:



    EDIT // Es scheint so als würde dies nur passieren wenn die USB Aufnahme beim start aktiviert ist. Schalte ich diese aus und starte neu, aktiviere diese nachträglich, kriege ich wieder mein Externes Bild in der Live Vorschau und es funktioniert, bis das Gerät wieder neu startet.


    Gruß,
    RaTToX

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!