1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

[Gelöst]Probleme mit "forwarding" bei FullHD HDMI Grabber

Discussion in 'German Talk' started by McDougal, 27 January 2020.

  1. McDougal

    McDougal New Member

    Messages:
    3
    Hallo zusammen,

    Ich habe ein Verständnisproblem bzgl. der „forwarding“ Funktionalität von hyperion.ng

    Ich habe jetzt mehrere Tage und Nächte damit verbracht es selbst zu versuchen, und ich glaube es gibt hier einen Bug, anders ist es nicht zu erklären.

    Mein Setup:

    Diverse Zuspieler (z.B. Kodi & Amazon Cube)-> Onkyo Receiver -> HDFury Vertex2 ->

    1. 4K TV
    2. Cloner Alliance Flint 4KP (V4L2 HDMI FullHD USB 3.0 Grabber) -> Odroid XU4 -> Raspberry 2 -> WS2810 LEDs

    Warum so kompliziert?

    a) Den Pi brauche ich, da dessen 4.x Kernel mit dem Grabber nicht richtig arbeitet. Ein Kernel 5.0.3 auf der XU4 löst das Problem (ging mit 4.x auch nicht, und den 5.x gibt es nicht für den Pi afaik).
    b) Der XU4 kann aber wiederum kein SPI ;)


    Der Cloner Alliance Flint 4KP funktioniert auf dem XU4, das "Live video" ist korrekt.

    Auf dem Pi werden die LEDs auch korrekt angesprochen.

    Hyperion.ng ist auf beiden Systemen der gleiche Build vom aktuellen Git.


    Pi: 192.168.100.250
    XU4: 192.168.100.252

    Aktuelle Einstellungen:
    XU4:
    JSON server:
    port 19444

    Flatbuffer server:
    aktiv
    port: 19400
    timeout: 5

    Protocol Buffers Server
    aktiv
    port: 19445

    "forwarder" aktiv

    json clients:
    json target 1: 192.168.100.250:19444

    flatbuffer clients:

    flatbuffer target 1: 192.168.100.250:19445

    Diese Portangaben habe ich https://hyperion-project.org/wiki/Controlling-Multiple-Devices entnommen. Wobei dort nicht flatbuffer steht sondern proto, aber im Browser sehe ich nix für Proto also ist irgendwo entweder ein Schreibfehler oder der Proto Eintrag fehlt im Browser?

    Ein Ändern an einer config Datei ist ebenfalls nicht möglich, da ich die gesamte Konfiguration über den Browser vorgenommen habe und da ist dann alles in der hyperion.db.

    Ich habe die Datei also exportiert, lokal den "flat" auf "proto" geändert, gesichert und importiert über Browser.

    Das hier steht in der config Datei drin die ich importiere:

    "forwarder": {
    "enable": true,
    "proto": [
    "192.168.100.250:19445"
    ],
    "json": [
    "192.168.100.250:19444"
    ]
    }

    Sollte so richtig sein denk ich?

    Aber was sehe ich dann in der hyperion.db die beim Import geschrieben wird?

    forwarder{"enable":true,"flat":["127.0.0.1:19401"],"json":["192.168.100.250:19444"]}

    Da fehlt der "proto" Eintrag oder?!

    Also test trage ich im Browser für flatserver 127.0.0.1:666 zum Spaß ein, sichere und finde den Eintrag so in der hyperion.db:

    forwarder{"enable":true,"flat":["127.0.0.1:666"],"json":["192.168.100.250:19444"]}

    Wird also korrekt gesichert im Browser, paßt. Aber leider keine proto Daten ;)


    Es ist mir auch nicht möglich, eine json Datei einzulesen als Input Parameter:

    ./hyperiond ~/hyperion.json

    Sollte gehen denn das ist die importierte Datei, macht aber nichts:

    [hyperiond EFFECTFILES] <INFO> 37 effects loaded from directory :/effects/
    [hyperiond EFFECTFILES] <INFO> 20 effect schemas loaded from directory :/effects/schema/
    [hyperiond EFFECTFILES] <INFO> 0 effects loaded from directory /root/.hyperion/custom-effects
    [hyperiond SettingsManager] <DEBUG> <SettingsManager.cpp:101:SettingsManager()> Settings database initialized
    [hyperiond BLACKBORDER] <DEBUG> <BlackBorderProcessor.cpp:65:handleSettingsUpdate()> Set mode to: default
    [hyperiond ComponentRegister] <DEBUG> <ComponentRegister.cpp:67:componentStateChanged()> Blackborder detector: enabled
    [hyperiond DAEMON] <WARNING> No platform capture can be instantiated, because all grabbers have been left out from the build
    [hyperiond DAEMON] <INFO> set screen capture device to 'qt'
    [hyperiond QTGRABBER] <DEBUG> <Grabber.cpp:33:setVideoMode()> Set videomode to 0
    [hyperiond QTGRABBER] <ERROR> No displays found to capture from!
    [hyperiond DAEMON] <INFO> Qt grabber created
    [hyperiond V4L2:/dev/video2] <DEBUG> <Grabber.cpp:33:setVideoMode()> Set videomode to 0
    [hyperiond V4L2:/dev/video2] <INFO> Signal threshold set to: {12, 12, 12}
    [hyperiond V4L2:/dev/video2] <INFO> Signal detection is now disabled
    [hyperiond V4L2:/dev/video2] <INFO> Signal detection area set to: 0.250000,0.250000 x 0.750000,0.750000
    [hyperiond DAEMON] <DEBUG> <hyperiond.cpp:434:handleSettingsUpdate()> V4L2 grabber created
    [hyperiond JSONSERVER] <DEBUG> <JsonServer.cpp:25:JsonServer()> Created instance
    [hyperiond JSONSERVER] <INFO> Started on port 19444
    [hyperiond FLATBUFSERVER] <INFO> Started on port 19400
    [hyperiond ComponentRegister] <DEBUG> <ComponentRegister.cpp:67:componentStateChanged()> LED device: enabled
    [hyperiond PROTOSERVER] <INFO> Started on port 19445
    [hyperiond LEDDEVICE] <INFO> LedDevice 'file' configured.
    [hyperiond ComponentRegister] <DEBUG> <ComponentRegister.cpp:67:componentStateChanged()> Smoothing: enabled
    [hyperiond FLATBUFCONNECTION] <INFO> Connecting to Hyperion: 127.0.0.1:666
    [hyperiond NETFORWARDER] <INFO> Forward now to json targets '192.168.100.250:19444'
    [hyperiond NETFORWARDER] <INFO> Forward now to flatbuffer targets '127.0.0.1:666'

    OT: Warum wird da "V4L2:/dev/video2" aufgerufen obwohl ich es im Browser deaktiert habe? Komisch aber egal...

    Ich kann ihm auch das hier vorwerfen, er nimmt es an aber beschwert sich auch nicht das es die Datei nicht gibt:

    ./hyperiond ~/hyperion.json222222222

    Verschiebe ich die hyperion.db Datei kommt das hier:

    [hyperiond DAEMON] <WARNING> No platform capture can be instantiated, because all grabbers have been left out from the build
    [hyperiond QTGRABBER] <ERROR> No displays found to capture from!

    Starte ich den Hyperion Server und danach "hyperion-v4l2 -d /dev/video2 (sic!)" sehe ich folgendes:

    [hyperiond FLATBUFSERVER] <DEBUG> <FlatBufferServer.cpp:68:newConnection()> New connection from ::ffff:192.168.100.252
    [hyperiond HYPERION] <DEBUG> <PriorityMuxer.cpp:153:registerInput()> Register new input 'V4L2 [email protected]::ffff:192.168.100.252/FLATBUFSERVER' with priority 150 as inactive
    [hyperiond HYPERION] <DEBUG> <PriorityMuxer.cpp:233:setInputImage()> Priority 150 is now active
    [hyperiond HYPERION] <DEBUG> <PriorityMuxer.cpp:333:setCurrentTime()> Set visible priority to 150

    Von forwarding ist nichts zu sehen obwohl das Flag im Browser sitzt...

    hyperion-v4l2 zeigt mir wiederum das hier an - obwohl Live video im Browser geht, also keine Ahnung warum der gleiche Build dann so einen Fehler ausspukt:

    [hyperion-v4l2 FLATBUFCONNECTION] <ERROR> Unable to parse reply
    [hyperion-v4l2 FLATBUFCONNECTION] <ERROR> Previous line repeats 200 times
    [hyperion-v4l2 FLATBUFCONNECTION] <ERROR> Previous line repeats 200 times
    [hyperion-v4l2 FLATBUFCONNECTION] <ERROR> Previous line repeats 200 times
    [hyperion-v4l2 FLATBUFCONNECTION] <ERROR> Previous line repeats 200 times

    OT: Schön wäre bei Logeinträgen ein Zeitstempel - so weiß man nie wann das passiert ist. Ist es aktuell? War das vor zwei Stunden?


    Pi:

    Hier tut sich gar nichts: Netstat -ntpa zeigt keine Verbindung vom XU4 an... Ich hätte erwartet, daß es eine Meldung gibt da ja "Forward now to json targets '192.168.100.250:19444'" aktiv ist, aber es gibt weder eine Verbindung noch wird irgendwas in dem debug output angezeigt.

    Hat jemand eine Idee?

    Danke!
     
  2. Paulchen-Panther

    Paulchen-Panther Moderator Staff Member Developer

    Messages:
    861
    Hardware:
    RPi1/Zero, RPi3, 32/64bit, +Arduino, +nodeMCU/ESP8266
    Warum versuchtst du krampfhaft eine Weiterleitung via proto hin zu bekommen, wenn in der Ausgabe von hyperion-v4l2 eine flat verbindung versucht wird auf zu bauen?
     
  3. McDougal

    McDougal New Member

    Messages:
    3
    Vermutlich weil mir nicht klar ist was ich einstellen soll für mein Szenario, also "Odroid XU4 -> Raspberry 2 -> WS2810 LEDs"?

    Ich gehe mal davon aus, daß das geht - ich weiß aber nicht "wie". Die Beantwortung dieser Frage wäre toll, und vielleicht ist es ja auch ganz einfach :)
     
  4. McDougal

    McDougal New Member

    Messages:
    3
    Ich hab das Problem und eine eigene Lösung gefunden. Steht als neues Issue auf Github.