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

hyperion.ng auf Raspberry 4, Raspbian Buster, USB Grabber

Discussion in 'German Talk' started by jochenf, 11 August 2019.

  1. jochenf

    jochenf Member

    Messages:
    42
    Hallo,

    bevor ich in meinen ersten Beitrag um Hilfe bitte, erst mal ein großes Lob für das Projekt und vor allem die Weiterentwicklung zu hyperion.ng.

    Nun zu meinem Problem:

    Neben der originalen Hyperion Version, habe ich auf meinem Raspi 4 auch das aktuelle Hyperion.ng vom github installiert.

    Ich greife bei beiden Versionen auf den verbreiteten USB Grabber Fushicai UTV007 zu. Während das "allte" Hyperion das Bild korrekt abgreift und meine LED's bunt leuchten lässt, habe ich mit hyperion.ng nur ein s/w Bild. Die LED's leuchten demzufolge nur in weiß. Auch Screenshots die ich über hyperion-v4l2 anfertige, sind nur in s/w. Unabhängig davon, was in der Konfiguration für Format bzw. Farbraum angebe oder als Option für den screenshot mittels hyperion-v4l2 mitgebe.
    Da hyperion-v4l2 die eigentliche Hyperion Konfiguration nach meinen Verstehen ja ignoriert, schließe ich einen Fehler in der .json aus.

    Wenn ich jedoch vor dem Start von hyperion.ng das originale hyperion kurz starte und danach wieder beende, liefert auch hyperion.ng und das integrierte hyperion-v4l2 bunte Bilder!

    Auch wenn ich nach nem Neustart Hyperion garnicht starte und nur mit dem Screenshottool probiere, selbiges Fehlerbild.

    Grüße

    Micha
     
    Last edited: 11 August 2019
  2. Paulchen-Panther

    Paulchen-Panther Active Member Developer

    Messages:
    307
    Hardware:
    RPi1/Zero, RPi3, 32/64bit, +Arduino
    Gib uns doch bitte mal die Ausgabe von 'v4l2-ctl --all'
    Danke
     
  3. jochenf

    jochenf Member

    Messages:
    42
    Hallo,

    kein Problem. Werde derweil mal etwas damit rumspielen, wusste garnicht, dass man das Ganze auch darüber beeinflussen kannn.

    [email protected]:~$ v4l2-ctl --all
    Driver Info:
    Driver name : usbtv
    Card type : usbtv
    Bus info : usb-0000:01:00.0-1.2
    Driver version : 4.19.57
    Capabilities : 0x85200001
    Video Capture
    Read/Write
    Streaming
    Extended Pix Format
    Device Capabilities
    Device Caps : 0x05200001
    Video Capture
    Read/Write
    Streaming
    Extended Pix Format
    Priority: 2
    Video input : 0 (Composite: ok)
    Video Standard = 0x0000f900
    PAL-M/60
    NTSC-M/M-JP/443/M-KR
    Format Video Capture:
    Width/Height : 720/480
    Pixel Format : 'YUYV' (YUYV 4:2:2)
    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 : 2

    User Controls

    brightness 0x00980900 (int) : min=0 max=1023 step=1 default=448 value=448 flags=slider
    contrast 0x00980901 (int) : min=0 max=1023 step=1 default=464 value=464 flags=slider
    saturation 0x00980902 (int) : min=0 max=1023 step=1 default=512 value=512 flags=slider
    hue 0x00980903 (int) : min=-3583 max=3583 step=1 default=0 value=0 flags=slider
    sharpness 0x0098091b (int) : min=0 max=255 step=1 default=96 value=96 flags=slider
    [email protected]:~$

    [email protected]:~$ v4l2-ctl --all
    Driver Info:
    Driver name : usbtv
    Card type : usbtv
    Bus info : usb-0000:01:00.0-1.2
    Driver version : 4.19.57
    Capabilities : 0x85200001
    Video Capture
    Read/Write
    Streaming
    Extended Pix Format
    Device Capabilities
    Device Caps : 0x05200001
    Video Capture
    Read/Write
    Streaming
    Extended Pix Format
    Priority: 2
    Video input : 0 (Composite: ok)
    Video Standard = 0x000000ff
    PAL-B/B1/G/H/I/D/D1/K
    Format Video Capture:
    Width/Height : 720/576
    Pixel Format : 'YUYV' (YUYV 4:2:2)
    Field : Interlaced
    Bytes per Line : 1440
    Size Image : 829440
    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: 25.000 (25/1)
    Read buffers : 2

    User Controls

    brightness 0x00980900 (int) : min=0 max=1023 step=1 default=448 value=448 flags=slider
    contrast 0x00980901 (int) : min=0 max=1023 step=1 default=464 value=464 flags=slider
    saturation 0x00980902 (int) : min=0 max=1023 step=1 default=512 value=512 flags=slider
    hue 0x00980903 (int) : min=-3583 max=3583 step=1 default=0 value=0 flags=slider
    sharpness 0x0098091b (int) : min=0 max=255 step=1 default=96 value=96 flags=slider
    [email protected]:~$

    Was mir gerade selbst daran auffällt, dass bei Format NTSC gesetzt ist, obwohl in meiner Konfig PAL steht.

    Stelle ich vor dem Start einmalig per :~$ v4l2-ctl --set-standard 0x000000ff manuell auf PAL, funktioniert NG einwandfrei, egal wie offt ich danach das Programm starte oder stoppe.


    Danke und Grüße

    micha
     
    Last edited: 12 August 2019
    • Like Like x 1
  4. Paulchen-Panther

    Paulchen-Panther Active Member Developer

    Messages:
    307
    Hardware:
    RPi1/Zero, RPi3, 32/64bit, +Arduino
    • Like Like x 1
  5. Paulchen-Panther

    Paulchen-Panther Active Member Developer

    Messages:
    307
    Hardware:
    RPi1/Zero, RPi3, 32/64bit, +Arduino
    @jochenf Könntest du bitte die Änderung testen?
     
  6. jochenf

    jochenf Member

    Messages:
    42
    Hallo,

    ja, mach ich. Dachte nur, wenn der PR noch auf Review ist, dass dein neuer Code noch nicht mit angezogen wird, wenn ich kompiliere.
    Und bei den Commmits hatte ich deine Änderung nicht mit gesehen.

    Grüße

    Micha
     
  7. Paulchen-Panther

    Paulchen-Panther Active Member Developer

    Messages:
    307
    Hardware:
    RPi1/Zero, RPi3, 32/64bit, +Arduino
    Der PR ist auch noch nicht im master. Müsstest meinen Branch kompilieren.
     
  8. jochenf

    jochenf Member

    Messages:
    42
    Mit dem Master habe ich gerade erfolglos getestet. ;( Werde gleich mal den deinigen versuchen.
     
  9. Paulchen-Panther

    Paulchen-Panther Active Member Developer

    Messages:
    307
    Hardware:
    RPi1/Zero, RPi3, 32/64bit, +Arduino
    Achte aber bitte auf den Branch. Am besten du verwendest beim clonen die Parameter "--single-branch --branch v4l2"
     
  10. Paulchen-Panther

    Paulchen-Panther Active Member Developer

    Messages:
    307
    Hardware:
    RPi1/Zero, RPi3, 32/64bit, +Arduino
    Code:
    git clone --recursive --single-branch --branch v4l2 https://github.com/Paulchen-Panther/hyperion.ng.git
     
  11. jochenf

    jochenf Member

    Messages:
    42
    geht klar
     
  12. jochenf

    jochenf Member

    Messages:
    42
    Hallo,

    sieht gut aus, ist nun wieder alles schön bunt. :)

    [email protected]:~ $ /usr/local/share/hyperion/bin/hyperiond
    [hyperiond EFFECTFILES] <INFO> 36 effects loaded from directory :/effects/
    [hyperiond EFFECTFILES] <INFO> 19 effect schemas loaded from directory :/effects/schema/
    [hyperiond EFFECTFILES] <INFO> 1 effects loaded from directory /storage/.kodi/addons/service.hyperion.ng/effects/
    [hyperiond EFFECTFILES] <INFO> 0 effects loaded from directory /storage/.kodi/userdata/addon_data/service.hyperion.ng/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] <INFO> set screen capture device to 'dispmanx'
    [hyperiond DISPMANXGRABBER] <DEBUG> <Grabber.cpp:33:setVideoMode()> Set videomode to 0
    [hyperiond ComponentRegister] <DEBUG> <ComponentRegister.cpp:67:componentStateChanged()> LED device: enabled
    [hyperiond LEDDEVICE] <DEBUG> <LedDeviceAdalight.cpp:53:init()> Adalight header for 254 leds: Ada 0x00 0xfd 0xa8
    [hyperiond LEDDEVICE] <INFO> LedDevice 'adalight' configured.
    [hyperiond LEDDEVICE] <INFO> Opening UART: /dev/ttyUSB0
    [hyperiond ComponentRegister] <DEBUG> <ComponentRegister.cpp:67:componentStateChanged()> Smoothing: enabled
    [hyperiond DISPMANXGRABBER] <INFO> Display opened with resolution: 1920x1080
    [hyperiond DISPMANXGRABBER] <DEBUG> <Grabber.cpp:82:setWidthHeight()> Set new width: 80, height: 45 for capture
    [hyperiond FLATBUFCONNECTION] <INFO> Connecting to Hyperion: 127.0.0.1:19447
    [hyperiond DISPMANXGRABBER] <INFO> Cropping image: width=80 height=45; crop: left=0 right=0 top=0 bottom=4
    [hyperiond DAEMON] <INFO> DISPMANX frame grabber created
    [hyperiond EFFECTENGINE] <INFO> run effect Rainbow swirl fast on channel 0
    [hyperiond V4L2:auto] <DEBUG> <Grabber.cpp:33:setVideoMode()> Set videomode to 0
    [hyperiond HYPERION] <DEBUG> <PriorityMuxer.cpp:153:registerInput()> Register new input 'System/EFFECT' with priority 0 as inactive
    [hyperiond HYPERION] <INFO> Initial foreground effect 'Rainbow swirl fast' started
    [hyperiond EFFECTENGINE] <INFO> run effect Waves with Color on channel 254
    [hyperiond HYPERION] <DEBUG> <PriorityMuxer.cpp:153:registerInput()> Register new input 'System/EFFECT' with priority 254 as inactive
    [hyperiond HYPERION] <INFO> Inital background effect 'Waves with Color' started
    [hyperiond HYPERION] <DEBUG> <PriorityMuxer.cpp:153:registerInput()> Register new input 'System/V4L' with priority 240 as inactive
    [hyperiond ComponentRegister] <DEBUG> <ComponentRegister.cpp:67:componentStateChanged()> V4L capture device: enabled
    [hyperiond BOBLIGHT] <DEBUG> <BoblightServer.cpp:28:BoblightServer()> Instance created
    [hyperiond V4L2:auto] <INFO> Signal threshold set to: {12, 12, 12}
    [hyperiond V4L2:auto] <INFO> Signal detection area set to: 0.250000,0.250000 x 0.750000,0.750000
    [hyperiond DAEMON] <DEBUG> <hyperiond.cpp:420:handleSettingsUpdate()> V4L2 grabber created
    [hyperiond JSONSERVER] <DEBUG> <JsonServer.cpp:25:JsonServer()> Created instance
    [hyperiond JSONSERVER] <INFO> Started on port 19444
    [hyperiond LEDDEVICE] <DEBUG> <ProviderRs232.cpp:182:tryOpen()> Setting baud rate to 115200
    [hyperiond LEDDEVICE] <DEBUG> <ProviderRs232.cpp:198:tryOpen()> Device blocked for 1500 ms
    [hyperiond LEDDEVICE] <DEBUG> <LedDeviceAdalight.cpp:80:receivedData()> >>received 36 bytes data
    [hyperiond FLATBUFSERVER] <INFO> Started on port 19400
    [hyperiond PROTOSERVER] <INFO> Started on port 19445
    [hyperiond V4L2:auto] <INFO> available V4L2 devices:
    /dev/video0 usbtv
    /dev/video10 bcm2835-codec
    /dev/video11 bcm2835-codec
    /dev/video12 bcm2835-codec

    [hyperiond V4L2:auto] <INFO> search for usable video devices
    [hyperiond V4L2:auto] <INFO> test v4l device: /dev/video0
    [hyperiond V4L2:auto] <DEBUG> <V4L2Grabber.cpp:634:init_device()> Set resolution to width=720 height=576
    [hyperiond V4L2:auto] <DEBUG> <V4L2Grabber.cpp:680:init_device()> Pixel format=YUYV
    [hyperiond V4L2:auto] <INFO> found usable v4l2 device: /dev/video0 (usbtv)
    [hyperiond WEBSERVER] <DEBUG> <WebServer.cpp:98:handleSettingsUpdate()> Set document root to: :/webconfig
    [hyperiond WEBSERVER] <INFO> Started on port 8090 name 'Hyperion Webserver'
    [hyperiond V4L2:auto] <INFO> Started
    [hyperiond HYPERION] <INFO> Hyperion instance 'First LED Hardware instance' has been started
    [hyperiond HYPERION] <DEBUG> <PriorityMuxer.cpp:231:setInputImage()> Priority 254 is now active
    [hyperiond HYPERION] <DEBUG> <PriorityMuxer.cpp:331:setCurrentTime()> Set visible priority to 0
    [hyperiond HYPERION] <DEBUG> <PriorityMuxer.cpp:231:setInputImage()> Priority 0 is now active
    [hyperiond HYPERION] <DEBUG> <PriorityMuxer.cpp:231:setInputImage()> Priority 240 is now active
    [hyperiond WEBSOCKET] <DEBUG> <JsonAPI.cpp:87:handleInstanceSwitch()> Client '::ffff:192.168.0.1' switch to Hyperion instance 0
    [hyperiond WEBSOCKET] <DEBUG> <WebSocketClient.cpp:29:WebSocketClient()> New connection from ::ffff:192.168.0.1
    [hyperiond WEBSOCKET] <DEBUG> <JsonAPI.cpp:1002:handleLoggingCommand()> log streaming activated for client ::ffff:192.168.0.1
    [hyperiond WEBSOCKET] <DEBUG> <JsonAPI.cpp:1011:handleLoggingCommand()> log streaming deactivated for client ::ffff:192.168.0.1
    [hyperiond LEDDEVICE] <DEBUG> <ProviderRs232.cpp:216:writeBytes()> 37 frames dropped
    [hyperiond LEDDEVICE] <DEBUG> <LedDeviceAdalight.cpp:80:receivedData()> >>received 4 bytes data
    [hyperiond HYPERION] <DEBUG> <PriorityMuxer.cpp:291:setCurrentTime()> Timeout clear for priority 0
    [hyperiond HYPERION] <DEBUG> <PriorityMuxer.cpp:331:setCurrentTime()> Set visible priority to 240

    [email protected]:~ $ v4l2-ctl --all
    Driver Info:
    Driver name : usbtv
    Card type : usbtv
    Bus info : usb-0000:01:00.0-1.2
    Driver version : 4.19.57
    Capabilities : 0x85200001
    Video Capture
    Read/Write
    Streaming
    Extended Pix Format
    Device Capabilities
    Device Caps : 0x05200001
    Video Capture
    Read/Write
    Streaming
    Extended Pix Format
    Priority: 2
    Video input : 0 (Composite: ok)
    Video Standard = 0x000000ff
    PAL-B/B1/G/H/I/D/D1/K
    Format Video Capture:
    Width/Height : 720/576
    Pixel Format : 'YUYV' (YUYV 4:2:2)
    Field : Interlaced
    Bytes per Line : 1440
    Size Image : 829440
    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: 25.000 (25/1)
    Read buffers : 2

    User Controls

    brightness 0x00980900 (int) : min=0 max=1023 step=1 default=448 value=448 flags=slider
    contrast 0x00980901 (int) : min=0 max=1023 step=1 default=464 value=464 flags=slider
    saturation 0x00980902 (int) : min=0 max=1023 step=1 default=512 value=512 flags=slider
    hue 0x00980903 (int) : min=-3583 max=3583 step=1 default=0 value=0 flags=slider
    sharpness 0x0098091b (int) : min=0 max=255 step=1 default=96 value=96 flags=slider
    [email protected]:~ $

    Grüße und vielen Dank für deine Mühe

    Micha
     
  13. URBANsUNITED

    URBANsUNITED New Member

    Messages:
    2
    Hardware:
    RPi2, RPi3
    Hi!

    Ist das Problem im normalen Hyperion NG Code bereits gefixt?
    Ich habe nämlich auch dieses Problem ich hatte heute meine Version per Docker gebaut:
    wget -qN https://raw.github.com/hyperion-project/hyperion.ng/master/bin/scripts/docker-compile.sh && chmod +x *.sh && ./docker-compile.sh -t armv7hf
    Und meine GrabberAusgabe ist Schwarz/Weiß

    Wenn noch nicht gefixt, wie kriege ich es gefixt?
    So?

    git clone --recursive --single-branch --branch v4l2 https://github.com/Paulchen-Panther/hyperion.ng.git
    cd hyperion
    mkdir build
    cd build
    cmake -DCMAKE_BUILD_TYPE=Release ..
    make -j $(nproc)
    if this get stucked and dmseg says out of memory try:
    make -j 2
    sudo make install/strip

    # ... or run it from compile directory
    bin/hyperiond
    # webui is located on localhost:8090 or 8091

    Danke

    URBANsUNITED


    EDIT
    Habs schon mal selber probiert:

    git clone --recursive --single-branch --branch v4l2 https://github.com/Paulchen-Panther/hyperion.ng.git
    Klone nach 'hyperion.ng' ...
    warning: Konnte zu klonenden Remote-Branch v4l2 nicht finden.
    fatal: Remote-Branch v4l2 nicht im Upstream-Repository origin gefunden

    Das klappt schon mal nicht
     
    Last edited: 24 September 2019
  14. jochenf

    jochenf Member

    Messages:
    42
    Hallo,

    nee, ist im Master Branch seit August mit drin. Paulchen hatte mir damals nur sein Repository zur Verfügung gestellt, solange es nicht im Master war.
    Schalte im Webinterface doch mal zwischen ntsc und pal hinundher.

    Ansnonsten hatte ich als Workaround damals "v4l2-ctl --set-standard 0x000000ff" vor dem Hyperion Start gestartet.

    Grüße

    Micha
     
  15. URBANsUNITED

    URBANsUNITED New Member

    Messages:
    2
    Hardware:
    RPi2, RPi3
    So,
    konnte etwas testen.

    Wenn ich per Docker eine Version erstelle, habe ich per externen Grabber Schwarz/Weiß
    wget -qN https://raw.github.com/hyperion-project/hyperion.ng/master/bin/scripts/docker-compile.sh && chmod +x *.sh && ./docker-compile.sh -t armv7hf

    Erstelle ich mir eine Version per
    wget -qO- https://raw.githubusercontent.com/hyperion-project/hyperion.ng/master/bin/compile.sh | sh
    liefert mein Grabber Farbe!

    Demnach erstellt die Docker Variante eine alte Version.

    Und NTSC und Pal hatte ich natürlich vorher schon ausprobiert. Ist ja ein bekanntest "Problem" bzw. Fix.
     
  16. jochenf

    jochenf Member

    Messages:
    42
  17. Paulchen-Panther

    Paulchen-Panther Active Member Developer

    Messages:
    307
    Hardware:
    RPi1/Zero, RPi3, 32/64bit, +Arduino
    @URBANsUNITED

    Die Vermutung, daß die Erstellung von Hyperion über docker andere binaries als die Erstellung über den direkten Weg erzeugt ist richtig. Die Source zur Erstellung ist aber die gleiche, nämlich das master repository.

    Jetzt fragt sich wie dein Werdegang war?
    Hast du ein frisches OS auf den RPI aufgezogen und danach versucht die docker binary auszuführen? Hast du direkt danach nachdem, du fest gestellt hast, das der Grabner nur S/W Bilder liefert, das Script zur direkten Kompilierung ausgeführt?

    Schildere uns doch bitte mal ganz genau deine Vorgehensweise. Bis ins kleinste Detail.

    Danke dir.
     
  18. nicedevil007

    nicedevil007 New Member

    Messages:
    8
    Hardware:
    RPi3, +nodeMCU/ESP8266
    Liege ich richtig, dass zwischenzeitlich dein Update in das Masterbranch gewandert ist, da es den v412er net mehr gibt?
    Hab gerade nämlich das Problem, dass ich dauernd:
    Code:
    # systemctl status hyperiond.service
    ● hyperiond.service - Hyperion Ambilight Service
       Loaded: loaded (/etc/systemd/system/hyperiond.service; enabled; vendor preset: enabled)
       Active: active (running) since Sat 2019-09-28 11:45:41 CEST; 3min 10s ago
    Main PID: 374 (hyperiond)
        Tasks: 20 (limit: 4915)
       Memory: 36.8M
       CGroup: /system.slice/hyperiond.service
               └─374 /usr/local/bin/hyperiond
    
    Sep 28 11:45:41 black-pearl systemd[1]: Started Hyperion Ambilight Service.
    Sep 28 11:46:22 black-pearl hyperiond[374]: [hyperiond DISPMANXGRABBER] <ERROR> Failed to open display! Probably no permissions to access the capture interface
    Sep 28 11:46:22 black-pearl hyperiond[374]: Failed to open display! Probably no permissions to access the capture interface
    
    bekommen :(
     
  19. Paulchen-Panther

    Paulchen-Panther Active Member Developer

    Messages:
    307
    Hardware:
    RPi1/Zero, RPi3, 32/64bit, +Arduino
    @nicedevil007
    Ja
    Es wäre schön, wenn du uns mehr über dein Setup und deine Vorgehensweise informieren würdest. ;)
     
  20. jochenf

    jochenf Member

    Messages:
    42
    Hallo,

    "DISPMANXGRABBER" klingt mir doch eher nach dem internen Scraper. Wenn du eine Distri ohne GUI nutzt, scheint mir diese Meldung normal. Unter Raspian habe ich die Plattformaufnahme jedenfalls deaktiviert. Wo soll die ohne Display Device auch ein Bild herbekommen.

    Grüße

    Micha