Hyperion Raspberry PI 4 4K h265 HDMI Signal drop

  • Hello,


    System:
    Raspberry Pi 4
    Libreelec 9.1.001 With Kodi 18.3 (Kernel 4.19.50)
    Hyperion 1.03.4


    I recently got my Raspberry Pi 4 and after getting it to work with my current ambilight, I now have the issue that I can't play 4K h265 content with hyperion running. When I do the HDMI Signal drops out and the TV gets no signal. I testet 1080p-h264, 1080p-h265 and 4K-h265 and the problem only appears with 4K encoded with h265. Strangly when the HDMI Signal is lost the Ambilight seems to work fine. When I disable hyperion the HDMI signal returns immediately.


    I think there is a problem with Hyperion destroying the signal when its 4K. Can someone please look into this? I would be happy to provide further information when needed.


    I made a short Video portraying the bug:


    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    Greetings Gary

    • Offizieller Beitrag

    Wenn ich das im Log richtig lese wird der DispmanX Grabber verwendet. Wie stellt man den Grabber ein?


    Sorry mein Fehler. Bin einfach schon zu lange im NG Bereich von Hyperion, um da noch in der Classic Version den Überblick zu behalten.


    Probier doch bitte mal folgendes.
    Ändere den Grabbertyp in deiner config von "framegrabber" zu "framebuffergrabber".
    Die Parameter sind die gleichen. Nur in dem Fall, du benutzt mehrere Displays, sollte dieser angegeben werden
    Hier der Link zur Quellcodestelle.


    Die sektion sollte also so aussehen bei dir:


    Code
    "framebuffergrabber" :
    {
        "width" : 128,
        "height" : 128,
        "frequency_Hz" : 30.0,
        "priority" : 900
    },
  • Wo siehst du das ich 2 Displays verwende? Ich habe nur ein Display angeschlossen. (Der Raspberry PI 4 hat 2 HDMI ausgänge wovon allerdings mit Libreelec so viel ich weiß nur eins gleichzeitig verwendet werden kann und ich auch nur 1 angeschlossen habe.)


    ich habe probiert was du geschrieben hast leider kommt dabei die Fehlermeldung:
    ERROR: The framebuffer grabber can not be instantiated, because it has been left out from the build


    Hier noch das restliche Log:
    ssh in: Hyperion Ambilight Deamon (752)
    ssh in: Version : V1.03.4 (brindosch-c750c41/dc6a602-1522918225
    ssh in: Build Time: Apr 5 2018 01:57:25
    ssh in: INFO: Selected configuration file: /storage/.config/hyperion.config.json
    ssh in: HYPERION INFO: ColorTransform 'default' => [0; 129]
    ssh in: HYPERION INFO: ColorCorrection 'default' => [0; 129]
    ssh in: HYPERION INFO: ColorAdjustment 'default' => [0; 129]
    ssh in: LEDDEVICE INFO: configuration:
    ssh in: {
    ssh in: "colorOrder" : "bgr",
    ssh in: "name" : "MyHyperionConfig",
    ssh in: "output" : "/dev/spidev0.0",
    ssh in: "rate" : 1000000,
    ssh in: "type" : "apa102"
    ssh in: }
    ssh in: INFO: Creating linear smoothing
    ssh in: HYPERION (CS) INFO: Created linear-smoothing(interval_ms=33;settlingTime_ms=200;updateDelay=2
    ssh in: EFFECTENGINE INFO: 27 effects loaded from directory /storage/hyperion/effects
    ssh in: EFFECTENGINE INFO: Initializing Python interpreter
    ssh in: INFO: Hyperion started and initialised
    ssh in: INFO: Boot sequence 'Rainbow swirl fast' EFFECTENGINE INFO: run effect Rainbow swirl fast on channel 0
    ssh in: BLACKBORDER INFO: threshold set to 0.05 (13)
    ssh in: BLACKBORDER INFO: mode:default
    ssh in: started
    ssh in: INFO: Json server created and started on port 19444
    ssh in: INFO: Proto server created and started on port 19445
    ssh in: ERROR: The framebuffer grabber can not be instantiated, because it has been left out from the build
    ssh in: EFFECTENGINE INFO: effect finished

    • Offizieller Beitrag

    Wo siehst du das ich 2 Displays verwende? Ich habe nur ein Display angeschlossen.


    Wenn du meinen Post noch mal in Ruhe liest, wirst du feststellen das ich nicht behauptet habe das du 2 Displays angeschlossen hast. Mit meine Aussage wollte ich dir nur mitteilen, WENN du 2 Displays ansteuern möchtest, dies im "framebuffergrabber" Objekt mit anzugeben. Deshalb auch der Link zum Quellcode.


    ssh in: ERROR: The framebuffer grabber can not be instantiated, because it has been left out from the build


    Anscheinend wurde deiner Version von Hyperion ohne Framebuffer Support kompiliert. Da hilft nur selber kompilieren.

  • Ich hab jetzt mal versucht Hyperion.ng zu kompilieren was wohl auch funktioniert hat allerdings weiß ich jetzt nicht wie ich die dependencies bekomme die hyperion haben will. Laut dem Compile How To soll man auf dem System ein Apt-get ausführen um die dependencies zu installieren aber ich hab ja ein libreelec auf dem kein apt-get existiert. Gibt es dafür irgendwo einen Guide? ich finde dazu irgendwie keine anleitung die mir hier weiterhilft.


    Speziell bekomme ich diesen Fehler:
    ./hyperiond: error while loading shared libraries: libpython3.5m.so.1.0: cannot open shared object file: No such file or directory


    jetzt hab ich auch mal geschaut und die datei online gefunden die er haben will aber wenn ich die ins selbe verzeichnis wie hyperiond packe kommt trotzdem noch der fehler...

    • Offizieller Beitrag

    @Gary Hier hast du eine version mit framebuffer support. Feedback ist erwünscht.


    edit: Habe bemerkt das meine version mit framebuffer support unter buster python 3 voraus setzt. Werde gleich noch mal neu kompilieren (Stretch Python 2.7).


    edit2: Jetzt bin ich fertig. Hier die neue Version.

  • Sorry für die späte Antwort bei mir ist alles weng stressig in letzter Zeit.


    @rv112 ja das Problem habe ich zusätzlich allerdings wohl nicht bei allen materialien, das wird vermutlich der nächste Bugreport sobald ich mal überhaupt ein Bild bei 4K bekomme :D


    @Paulchen-Panther also ich hab jetzt mal dein hyperiond einfach in den Ordner /storage/hyperion/bin auf meinem PI4 gelegt und versucht ihn zu starten. Es kommt folgende Fehlermeldung:


    RPI4:~/hyperion/bin # ./hyperiond
    ./hyperiond: error while loading shared libraries: libQtGui.so.4: cannot open shared object file: No such file or directory


    das seltsame dabei ist ähnlich zu dem problem das ich mit Hyperion.ng habe, liegt diese datei auch im ordner /storage/hyperion/bin siehe hier:


  • RPI4:~/hyperion/bin # ldd hyperiond
    linux-vdso.so.1 (0xbea85000)
    /usr/lib/libarmmem-v7l.so (0xb6f74000)
    libz.so.1 => /usr/lib/libz.so.1 (0xb6f61000)
    libusb-1.0.so.0 => /usr/lib/libusb-1.0.so.0 (0xb6f44000)
    libpthread.so.0 => /usr/lib/libpthread.so.0 (0xb6f1b000)
    librt.so.1 => /usr/lib/librt.so.1 (0xb6f04000)
    libpython2.7.so.1.0 => /usr/lib/libpython2.7.so.1.0 (0xb6d7f000)
    libQtGui.so.4 => not found
    libQtNetwork.so.4 => not found
    libQtCore.so.4 => not found
    libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb6c3a000)
    libm.so.6 => /usr/lib/libm.so.6 (0xb6bd0000)
    libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0xb6ba3000)
    libc.so.6 => /usr/lib/libc.so.6 (0xb6a68000)
    libudev.so.1 => /usr/lib/libudev.so.1 (0xb6a3f000)
    /lib/ld-linux-armhf.so.3 => /usr/lib/ld-linux-armhf.so.3 (0xb6f89000)
    libdl.so.2 => /usr/lib/libdl.so.2 (0xb6a2c000)
    libutil.so.1 => /usr/lib/libutil.so.1 (0xb6a19000)




    EDIT:
    ich hab grad gemerkt das da in dem Ordner von Hyperion eine hyperiond.sh datei liegt in der wird der Lib Pfad angepasst. wenn ich hyperion darüber starte dann startet es. Allerdings mit der version von dir @Paulchen-Panther bekomm ich egal was auf dem Bildschirm ist und egal ob ich framebuffergrabber oder framegrabber einstelle immer nur die oberste Linke LED als weiß angezeigt und ansonsten alles schwarz.


    EDIT2:
    Effekte oder eine Farbe über die App einzustellen funktioniert bei deiner Version. Nur egal was KODI anzeigt werden nur oben links ein paar LEDs weiß angezeigt, auch wenn KODI in den Bildschirmschoner geht und nur ein schwarzes Bild anzeigt.


    Ausgaben von Hyperiond:



    RPI4:~/hyperion/bin # ./hyperiond.sh /storage/.config/hyperion.config.json
    Hyperion Ambilight Deamon (20509)
    Version : astina (GitHub-94404f6/8739c56-1565190225
    Build Time: Aug 7 2019 15:19:56
    INFO: Selected configuration file: /storage/.config/hyperion.config.json
    HYPERION INFO: ColorTransform 'default' => [0; 129]
    HYPERION INFO: ColorCorrection 'default' => [0; 129]
    HYPERION INFO: ColorAdjustment 'default' => [0; 129]
    LEDDEVICE INFO: configuration:
    {
    "colorOrder" : "bgr",
    "name" : "MyHyperionConfig",
    "output" : "/dev/spidev0.0",
    "rate" : 1000000,
    "type" : "apa102"
    }


    INFO: Creating linear smoothing
    HYPERION (CS) INFO: Created linear-smoothing(interval_ms=33;settlingTime_ms=200;updateDelay=2
    EFFECTENGINE INFO: 27 effects loaded from directory /storage/hyperion/effects
    EFFECTENGINE INFO: Initializing Python interpreter
    INFO: Hyperion started and initialised
    INFO: Boot sequence 'Rainbow swirl fast' EFFECTENGINE INFO: run effect Rainbow swirl fast on channel 0
    BLACKBORDER INFO: threshold set to 0.05 (13)
    BLACKBORDER INFO: mode:default
    started
    INFO: Json server created and started on port 19444
    INFO: Proto server created and started on port 19445
    FRAMEBUFFERGRABBER INFO: opened with resolution: 3840x2160@32bit
    BLACKBORDER INFO: threshold set to 0.05 (13)
    BLACKBORDER INFO: mode:default
    INFO: Framebuffer grabber created and started
    EFFECTENGINE INFO: effect finished
    JSONSERVER INFO: New connection
    BLACKBORDER INFO: threshold set to 0.05 (13)
    BLACKBORDER INFO: mode:default
    EFFECTENGINE INFO: run effect Knight rider on channel 50
    BLACKBORDER INFO: threshold set to 0.05 (13)
    BLACKBORDER INFO: mode:default
    EFFECTENGINE INFO: effect finished

  • Ich hab hyperion.ng selbst kompiliert aber keine Ahnung ob ich das alles richtig gemacht habe.
    Wenn ich versuche es auszuführen findet er auch gewisse libs nicht.


    siehe:


    RPI4:~/hyperion/bin # ldd hyperiond
    linux-vdso.so.1 (0xbed49000)
    /usr/lib/libarmmem-v7l.so (0xb6b62000)
    libpython3.5m.so.1.0 => not found
    libQt5Widgets.so.5 => not found
    libz.so.1 => /usr/lib/libz.so.1 (0xb6b4f000)
    libbcm_host.so => /usr/lib/libbcm_host.so (0xb6b26000)
    libjpeg.so.62 => not found
    libdns_sd.so.1 => not found
    libavahi-client.so.3 => /usr/lib/libavahi-client.so.3 (0xb6b17000)
    libavahi-common.so.3 => /usr/lib/libavahi-common.so.3 (0xb6fb2000)
    libavahi-core.so.7 => /usr/lib/libavahi-core.so.7 (0xb6ae9000)
    libdbus-1.so.3 => /usr/lib/libdbus-1.so.3 (0xb6aae000)
    libQt5SerialPort.so.5 => not found
    libpthread.so.0 => /usr/lib/libpthread.so.0 (0xb6a85000)
    libusb-1.0.so.0 => /usr/lib/libusb-1.0.so.0 (0xb6a68000)
    libQt5Network.so.5 => not found
    libQt5Gui.so.5 => not found
    libQt5Core.so.5 => not found
    libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb6923000)
    libm.so.6 => /usr/lib/libm.so.6 (0xb68b7000)
    libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0xb688a000)
    libc.so.6 => /usr/lib/libc.so.6 (0xb674f000)
    libvchiq_arm.so => /usr/lib/libvchiq_arm.so (0xb6739000)
    libvcos.so => /usr/lib/libvcos.so (0xb6720000)
    libdl.so.2 => /usr/lib/libdl.so.2 (0xb670d000)
    librt.so.1 => /usr/lib/librt.so.1 (0xb66f6000)
    libsystemd.so.0 => /usr/lib/libsystemd.so.0 (0xb665d000)
    /lib/ld-linux-armhf.so.3 => /usr/lib/ld-linux-armhf.so.3 (0xb6f92000)
    libudev.so.1 => /usr/lib/libudev.so.1 (0xb6634000)


    auch wenn ichs mit dem Skript ausführe fehlen mir diese libs:
    libpython3.5m.so.1.0
    libQt5Widgets.so.5
    libjpeg.so.62
    libdns_sd.so.1
    libQt5SerialPort.so.5
    libQt5Network.so.5
    libQt5Gui.so.5
    libQt5Core.so.5



    wo bekomm ich die libs her?

    • Offizieller Beitrag

    Hast du die Ubuntu VM noch? Wenn ja, kann ich dir das Script anpassen, damit die Dependencies aus der Dockerumgebung mit im deploy Ordner landen.
    Wird aber noch ein wenig dauern. Muss erst mal einkaufen gehen. Sonst verhungern noch meine Kinder. ;)

Jetzt mitmachen!

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