SDR & HDR 1080p/4k capable setup with Hyperion-NG for Media Center
- Awawa
- Erledigt
-
-
hmm...:(
-
Frankly I didn't test it with Rpi 2 myself...only 1 and 3,4 in separate packages. Maybe one compiler optimization too far for that plaform.
Try to write SD image for Rpi 1 as it should be safe option. Next if you interested I can tweak build to make it works for Rpi2. -
I can use the Rpi1 image with my pi2?
-
Base Raspbian Linux system is common for all Rpi. The only difference in the images are preinstalled HyperHDR version.
You can also try to remove that packages of HyperHDR manually and install HyperHDR for Rpi1: https://github.com/awawa-dev/H…1.2.0.8A-Linux-armv6l.deb
...or write again whole image if you'd like: https://github.com/awawa-dev/H…card-image-rpi1-armv6.zip -
It seems to work.
-
I've noticed that my LEDS sometimes turn off for a second or 2 and then turn on again. Turned on Debug logging and it gave me the following:
Code
Alles anzeigen2020-11-04T18:47:14.062Z [hyperiond V4L2:/DEV/VIDEO0] (DEBUG) (V4L2Grabber.cpp:1027:process_image()) Video FPS: 60.02, av. delay: 7ms, good: 3599, bad: 2 (60.00,15) 2020-11-04T18:47:18.056Z [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:238:setInputImage()) Priority 200 is now inactive 2020-11-04T18:47:18.056Z [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:333:setCurrentTime()) Set visible priority to 255 2020-11-04T18:47:18.056Z [hyperiond HYPERION] (DEBUG) (Hyperion.cpp:550:handlPriorityChangedLedDevice()) priority[255], previousPriority[200] 2020-11-04T18:47:18.056Z [hyperiond HYPERION] (DEBUG) (Hyperion.cpp:553:handlPriorityChangedLedDevice()) No source left -> switch LED-Device off 2020-11-04T18:47:18.056Z [hyperiond LEDDEVICE] (DEBUG) (LedDeviceWled.cpp:150:powerOff()) 2020-11-04T18:47:18.057Z [hyperiond LEDDEVICE] (DEBUG) (ProviderRestApi.cpp:153:put()) PUT: [http://192.168.0.40/json/state] [{"on":false}] 2020-11-04T18:47:18.058Z [hyperiond BLACKBORDER] (DEBUG) (ImageProcessor.cpp:156:setHardLedMappingType()) set hard led mapping to multicolor_mean 2020-11-04T18:47:18.182Z [hyperiond LEDDEVICE] (DEBUG) (ProviderRestApi.cpp:182:getResponse()) Reply.httpStatusCode [200] 2020-11-04T18:47:19.122Z [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:238:setInputImage()) Priority 200 is now active 2020-11-04T18:47:19.123Z [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:333:setCurrentTime()) Set visible priority to 200 2020-11-04T18:47:19.126Z [hyperiond HYPERION] (DEBUG) (Hyperion.cpp:550:handlPriorityChangedLedDevice()) priority[200], previousPriority[255] 2020-11-04T18:47:19.127Z [hyperiond HYPERION] (DEBUG) (Hyperion.cpp:560:handlPriorityChangedLedDevice()) new source available -> switch LED-Device on 2020-11-04T18:47:19.128Z [hyperiond BLACKBORDER] (DEBUG) (ImageProcessor.cpp:156:setHardLedMappingType()) set hard led mapping to multicolor_mean 2020-11-04T18:47:19.128Z [hyperiond LEDDEVICE] (DEBUG) (LedDeviceWled.cpp:132:powerOn()) 2020-11-04T18:47:19.129Z [hyperiond LEDDEVICE] (DEBUG) (ProviderRestApi.cpp:153:put()) PUT: [http://192.168.0.40/json/state] [{"on":true}]
Not sure if this is core Hyperion related or HyperHDR but thought I ask here. I do not have CEC or Signal Detection turned on. Is my grabber/usb connection unstable or something else? It there a way to just ignore this and don't turn off the leds?
Edit: I have now set a neutral color as 'Background Effect/Color" which will make sure LEDs are not turned off, but still now idea why the grabber signal is lost for tiny second.
-
You are not the only person affected by these symptom. Hyperion.ng is also affected. I disabled CEC and all system grabbers in latest build anyway.
1) eliminate hardware problem checking for errors in dmesg (not the boot stuff but after hyperhdr is started)
2) it's seems that it lost signal for about 1 second, it's too bad that you cut off that log... -
I didn't cut anything in the logs, this was everything in there from losing signal till getting one again I'll check dmesg output, but hard to time it with the logs of Hyperion.
-
I mean that I dont see what was after that (next video stats for frames to compare statement from PriorityMuxer that cut off leds vs provided frames)
-
Ah I'm sorry, I misunderstood. Here's a bit more after:
Code
Alles anzeigen2020-11-04T18:47:14.062Z [hyperiond V4L2:/DEV/VIDEO0] (DEBUG) (V4L2Grabber.cpp:1027:process_image()) Video FPS: 60.02, av. delay: 7ms, good: 3599, bad: 2 (60.00,15) 2020-11-04T18:47:18.056Z [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:238:setInputImage()) Priority 200 is now inactive 2020-11-04T18:47:18.056Z [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:333:setCurrentTime()) Set visible priority to 255 2020-11-04T18:47:18.056Z [hyperiond HYPERION] (DEBUG) (Hyperion.cpp:550:handlPriorityChangedLedDevice()) priority[255], previousPriority[200] 2020-11-04T18:47:18.056Z [hyperiond HYPERION] (DEBUG) (Hyperion.cpp:553:handlPriorityChangedLedDevice()) No source left -> switch LED-Device off 2020-11-04T18:47:18.056Z [hyperiond LEDDEVICE] (DEBUG) (LedDeviceWled.cpp:150:powerOff()) 2020-11-04T18:47:18.057Z [hyperiond LEDDEVICE] (DEBUG) (ProviderRestApi.cpp:153:put()) PUT: [http://192.168.0.40/json/state] [{"on":false}] 2020-11-04T18:47:18.058Z [hyperiond BLACKBORDER] (DEBUG) (ImageProcessor.cpp:156:setHardLedMappingType()) set hard led mapping to multicolor_mean 2020-11-04T18:47:18.182Z [hyperiond LEDDEVICE] (DEBUG) (ProviderRestApi.cpp:182:getResponse()) Reply.httpStatusCode [200] 2020-11-04T18:47:19.122Z [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:238:setInputImage()) Priority 200 is now active 2020-11-04T18:47:19.123Z [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:333:setCurrentTime()) Set visible priority to 200 2020-11-04T18:47:19.126Z [hyperiond HYPERION] (DEBUG) (Hyperion.cpp:550:handlPriorityChangedLedDevice()) priority[200], previousPriority[255] 2020-11-04T18:47:19.127Z [hyperiond HYPERION] (DEBUG) (Hyperion.cpp:560:handlPriorityChangedLedDevice()) new source available -> switch LED-Device on 2020-11-04T18:47:19.128Z [hyperiond BLACKBORDER] (DEBUG) (ImageProcessor.cpp:156:setHardLedMappingType()) set hard led mapping to multicolor_mean 2020-11-04T18:47:19.128Z [hyperiond LEDDEVICE] (DEBUG) (LedDeviceWled.cpp:132:powerOn()) 2020-11-04T18:47:19.129Z [hyperiond LEDDEVICE] (DEBUG) (ProviderRestApi.cpp:153:put()) PUT: [http://192.168.0.40/json/state] [{"on":true}] 2020-11-04T18:47:19.210Z [hyperiond LEDDEVICE] (DEBUG) (ProviderRestApi.cpp:182:getResponse()) Reply.httpStatusCode [200] 2020-11-04T18:47:24.924Z [hyperiond HTTPJSONRPC] (DEBUG) (JsonAPI.cpp:85:handleInstanceSwitch()) Previous line repeats 18 times 2020-11-04T18:47:24.925Z [hyperiond WEBSOCKET] (DEBUG) (WebSocketClient.cpp:30:WebSocketClient()) New connection from ::ffff:192.168.0.100 2020-11-04T18:47:24.926Z [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:85:handleInstanceSwitch()) Client '::ffff:192.168.0.100' switch to Hyperion instance 0 2020-11-04T18:47:27.022Z [hyperiond HTTPJSONRPC] (DEBUG) (JsonAPI.cpp:85:handleInstanceSwitch()) Client '::ffff:127.0.0.1' switch to Hyperion instance 0 2020-11-04T18:47:28.148Z [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:1069:handleLoggingCommand()) log streaming activated for client ::ffff:192.168.0.100 2020-11-04T18:47:28.195Z [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:1078:handleLoggingCommand()) log streaming deactivated for client ::ffff:192.168.0.100 2020-11-04T18:47:57.031Z [hyperiond HTTPJSONRPC] (DEBUG) (JsonAPI.cpp:85:handleInstanceSwitch()) Client '::ffff:127.0.0.1' switch to Hyperion instance 0 2020-11-04T18:48:14.063Z [hyperiond V4L2:/DEV/VIDEO0] (DEBUG) (V4L2Grabber.cpp:1027:process_image()) Video FPS: 57.93, av. delay: 7ms, good: 3476, bad: 0 (60.00,15) 2020-11-04T18:49:14.067Z [hyperiond V4L2:/DEV/VIDEO0] (DEBUG) (V4L2Grabber.cpp:1027:process_image()) Video FPS: 59.95, av. delay: 7ms, good: 3595, bad: 2 (60.00,15) 2020-11-04T18:50:14.067Z [hyperiond V4L2:/DEV/VIDEO0] (DEBUG) (V4L2Grabber.cpp:1027:process_image()) Video FPS: 59.98, av. delay: 7ms, good: 3599, bad: 0 (60.00,15) 2020-11-04T18:51:14.071Z [hyperiond V4L2:/DEV/VIDEO0] (DEBUG) (V4L2Grabber.cpp:1027:process_image()) Video FPS: 59.97, av. delay: 7ms, good: 3598, bad: 0 (60.00,15) 2020-11-04T18:52:14.072Z [hyperiond V4L2:/DEV/VIDEO0] (DEBUG) (V4L2Grabber.cpp:1027:process_image()) Video FPS: 59.98, av. delay: 7ms, good: 3598, bad: 1 (60.00,15) 2020-11-04T18:53:14.076Z [hyperiond V4L2:/DEV/VIDEO0] (DEBUG) (V4L2Grabber.cpp:1027:process_image()) Video FPS: 60.02, av. delay: 7ms, good: 3599, bad: 2 (60.00,15) 2020-11-04T18:54:14.076Z [hyperiond V4L2:/DEV/VIDEO0] (DEBUG) (V4L2Grabber.cpp:1027:process_image()) Video FPS: 59.98, av. delay: 6ms, good: 3599, bad: 0 (60.00,15) 2020-11-04T18:55:14.080Z [hyperiond V4L2:/DEV/VIDEO0] (DEBUG) (V4L2Grabber.cpp:1027:process_image()) Video FPS: 60.02, av. delay: 7ms, good: 3599, bad: 2 (60.00,15) 2020-11-04T18:56:14.081Z [hyperiond V4L2:/DEV/VIDEO0] (DEBUG) (V4L2Grabber.cpp:1027:process_image()) Video FPS: 59.98, av. delay: 6ms, good: 3599, bad: 0 (60.00,15) 2020-11-04T18:57:14.085Z [hyperiond V4L2:/DEV/VIDEO0] (DEBUG) (V4L2Grabber.cpp:1027:process_image()) Video FPS: 60.00, av. delay: 7ms, good: 3600, bad: 0 (60.00,15) 2020-11-04T18:58:32.930Z [hyperiond HTTPJSONRPC] (DEBUG) (JsonAPI.cpp:85:handleInstanceSwitch()) Previous line repeats 21 times 2020-11-04T18:58:32.931Z [hyperiond WEBSOCKET] (DEBUG) (WebSocketClient.cpp:204:sendClose()) send close: 1000 2020-11-04T18:58:33.184Z [hyperiond WEBSOCKET] (DEBUG) (WebSocketClient.cpp:30:WebSocketClient()) New connection from ::ffff:192.168.0.100 2020-11-04T18:58:33.185Z [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:85:handleInstanceSwitch()) Client '::ffff:192.168.0.100' switch to Hyperion instance 0 2020-11-04T18:59:02.728Z [hyperiond HTTPJSONRPC] (DEBUG) (JsonAPI.cpp:85:handleInstanceSwitch()) Client '::ffff:127.0.0.1' switch to Hyperion instance 0 2020-11-04T18:59:14.089Z [hyperiond V4L2:/DEV/VIDEO0] (DEBUG) (V4L2Grabber.cpp:1027:process_image()) Previous line repeats 1 times 2020-11-04T18:59:14.089Z [hyperiond V4L2:/DEV/VIDEO0] (DEBUG) (V4L2Grabber.cpp:1027:process_image()) Video FPS: 59.98, av. delay: 7ms, good: 3599, bad: 0 (60.00,15) 2020-11-04T19:02:14.093Z [hyperiond V4L2:/DEV/VIDEO0] (DEBUG) (V4L2Grabber.cpp:1027:process_image()) Previous line repeats 2 times 2020-11-04T19:02:14.094Z [hyperiond V4L2:/DEV/VIDEO0] (DEBUG) (V4L2Grabber.cpp:1027:process_image()) Video FPS: 60.00, av. delay: 7ms, good: 3598, bad: 2 (60.00,15) 2020-11-04T19:03:14.093Z [hyperiond V4L2:/DEV/VIDEO0] (DEBUG) (V4L2Grabber.cpp:1027:process_image()) Video FPS: 60.00, av. delay: 7ms, good: 3600, bad: 0 (60.00,15) 2020-11-04T19:03:26.337Z [hyperiond DAEMON] (ERROR) The QTC grabber can not be instantiated, because it has been left out from the build 2020-11-04T19:03:26.339Z [hyperiond V4L2:/DEV/VIDEO0] (INFO) CEC detection is now enabled 2020-11-04T19:03:26.339Z [hyperiond V4L2:/DEV/VIDEO0] (DEBUG) (V4L2Grabber.cpp:188:setHdrToneMappingEnabled()) setHdrToneMappingMode to: Disabled 2020-11-04T19:03:26.340Z [hyperiond V4L2:/DEV/VIDEO0] (DEBUG) (V4L2Grabber.cpp:194:setHdrToneMappingEnabled()) setHdrToneMappingMode replacing LUT 2020-11-04T19:03:26.340Z [hyperiond V4L2:/DEV/VIDEO0] (DEBUG) (V4L2Grabber.cpp:99:GetSharedLut()) LUT folder location: '/usr/share/hyperion/lut' 2020-11-04T19:03:26.341Z [hyperiond V4L2:/DEV/VIDEO0] (DEBUG) (V4L2Grabber.cpp:181:setFpsSoftwareDecimation()) setFpsSoftwareDecimation to: 1 2020-11-04T19:03:26.341Z [hyperiond V4L2:/DEV/VIDEO0] (INFO) Signal detection is now enabled 2020-11-04T19:03:26.342Z [hyperiond V4L2:/DEV/VIDEO0] (INFO) Signal detection area set to: 0.250000,0.250000 x 0.750000,0.750000 2020-11-04T19:03:26.342Z [hyperiond V4L2:/DEV/VIDEO0] (INFO) Signal threshold set to: {12, 12, 12} 2020-11-04T19:03:26.343Z [hyperiond V4L2:/DEV/VIDEO0] (DEBUG) (V4L2Grabber.cpp:1400:setEncoding()) Force encoding (setEncoding): mjpeg (6) 2020-11-04T19:03:26.343Z [hyperiond V4L2:/DEV/VIDEO0] (DEBUG) (V4L2Grabber.cpp:1405:setEncoding()) Restarting v4l2 grabber 2020-11-04T19:03:26.343Z [hyperiond V4L2:/DEV/VIDEO0] (DEBUG) (V4L2Grabber.cpp:218:uninit()) uninit grabber: /dev/video0 2020-11-04T19:03:26.346Z [hyperiond V4L2:/DEV/VIDEO0] (INFO) Stopped 2020-11-04T19:03:26.348Z [hyperiond V4L2:/DEV/VIDEO0] (INFO) configured v4l device: /dev/video0 2020-11-04T19:03:26.349Z [hyperiond V4L2:/DEV/VIDEO0] (DEBUG) (V4L2Grabber.cpp:670:init_device()) Set device input to: Camera 1 2020-11-04T19:03:26.351Z [hyperiond V4L2:/DEV/VIDEO0] (DEBUG) (V4L2Grabber.cpp:784:init_device()) Set resolution to width=640 height=360 2020-11-04T19:03:26.353Z [hyperiond V4L2:/DEV/VIDEO0] (DEBUG) (V4L2Grabber.cpp:801:init_device()) Set framerate to 60 fps 2020-11-04T19:03:26.353Z [hyperiond V4L2:/DEV/VIDEO0] (DEBUG) (V4L2Grabber.cpp:99:GetSharedLut()) LUT folder location: '/usr/share/hyperion/lut' 2020-11-04T19:03:26.353Z [hyperiond V4L2:/DEV/VIDEO0] (DEBUG) (V4L2Grabber.cpp:843:init_device()) Pixel format=MJPEG 2020-11-04T19:03:26.355Z [hyperiond V4L2:/DEV/VIDEO0] (INFO) Multithreading for V4L2 is enabled. Available thread's count 4 2020-11-04T19:03:26.360Z [hyperiond V4L2:/DEV/VIDEO0] (INFO) Started 2020-11-04T19:04:26.365Z [hyperiond V4L2:/DEV/VIDEO0] (DEBUG) (V4L2Grabber.cpp:1027:process_image()) Video FPS: 59.95, av. delay: 7ms, good: 3596, bad: 1 (60.01,15) 2020-11-04T19:05:26.365Z [hyperiond V4L2:/DEV/VIDEO0] (DEBUG) (V4L2Grabber.cpp:1027:process_image()) Video FPS: 60.00, av. delay: 7ms, good: 3599, bad: 1 (60.00,15) 2020-11-04T19:06:26.369Z [hyperiond V4L2:/DEV/VIDEO0] (DEBUG) (V4L2Grabber.cpp:1027:process_image()) Video FPS: 60.00, av. delay: 7ms, good: 3598, bad: 2 (60.00,15) 2020-11-04T19:07:26.370Z [hyperiond V4L2:/DEV/VIDEO0] (DEBUG) (V4L2Grabber.cpp:1027:process_image()) Video FPS: 60.00, av. delay: 7ms, good: 3600, bad: 0 (60.00,15)
I did change some settings after so there's unrelated stuff happening.
-
Thanks, thats better
Code2020-11-04T18:47:14.062Z [hyperiond V4L2:/DEV/VIDEO0] (DEBUG) (V4L2Grabber.cpp:1027:process_image()) Video FPS: 60.02, av. delay: 7ms, good: 3599, bad: 2 (60.00,15) 2020-11-04T18:47:18.056Z [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:238:setInputImage()) Priority 200 is now inactive 2020-11-04T18:47:19.122Z [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:238:setInputImage()) Priority 200 is now active 2020-11-04T18:48:14.063Z [hyperiond V4L2:/DEV/VIDEO0] (DEBUG) (V4L2Grabber.cpp:1027:process_image()) Video FPS: 57.93, av. delay: 7ms, good: 3476, bad: 0 (60.00,15)
OK, there was drop for about 120 frames, if they were arrange in sequence it's about 2 seconds.
If there is no errors in dmesg (voltage dropping, usb device connecting/disconnecting) then it's only guessing because Hyperion didnt receive any errors from v4l2 driver or even corrupted MJPEG frames.
Maybe it's something with Rpi USB or video buffer in the kernel.
Try to reduce the framerate to see if something would change. -
I just checked logs using "dmesg -T" for today and nothing mentioning the USB Grabber at all (nor any errors/warnings whatsover). I'll try lowering the framerate and see if it happens again. Thanks for the advice!
-
I hope it will help. Maybe there is other program on linux to record camera/grabber and test FPS for that situation and exclude/confirm that's a hardware or linux case?
BTW I dont know what's your display but for capturing 640x480 is not optimal for TV and ambilight. 1280x720 has much better aspect both for 1080p and 4k TV. -
I set it to the lowest resolution in correct aspect ratio: 640x360 (so it's not set to 640x480) since I figured a higher resolution wouldn't really give me be better results due to amount of LEDs being (way) less.
-
My bad, I misread your log. Lower resolution has very bad effect for the MJPEG at least that's my experience with Ezcap. That's doesn't apply for YUYV encoding.
-
I see no artefacts whatsoever in the preview, and don't notice anything weird on LEDs either so far. Not sure what to look out for though. Unfortunately this grabber doesn't support YUYV. I'll see if raising it causes any performances issues. Seems my Pi 4 can handle it all pretty well performance wise anyway.
-
Maybe it's a hardware related. For Ezcap 269 mjpeg artifacts were very noticeable for me and caused strange effects on some scenes. High resolutions helped but not for 100%.
-
-
ERROR_INSUFFICIENT_BUFFER first time I meet this. This is first step of device initialization before all the configuration stuff.
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!