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
Hallo, kein Problem. Werde derweil mal etwas damit rumspielen, wusste garnicht, dass man das Ganze auch darüber beeinflussen kannn. Spoiler: nach Start NG [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]:~$ Spoiler: nach classic [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
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
Achte aber bitte auf den Branch. Am besten du verwendest beim clonen die Parameter "--single-branch --branch v4l2"
Code: git clone --recursive --single-branch --branch v4l2 https://github.com/Paulchen-Panther/hyperion.ng.git
Hallo, sieht gut aus, ist nun wieder alles schön bunt. Spoiler: log [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 Spoiler: v4l2-ctl [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
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
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
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.
Hallo, sieht für mich auch danach aus, dass das Docker Image auf Git etwas stiefmütterlich behandelt wird. ;( Außer Paulchen macht da anscheinend auch keiner was dran. https://github.com/hyperion-project/hyperion.docker-ci/commits/master Grüße Micha
@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.
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
@nicedevil007 Ja Es wäre schön, wenn du uns mehr über dein Setup und deine Vorgehensweise informieren würdest.
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