Closed Krypt0nC0R3 closed 1 year ago
moonlight-qt only supports the pi4 for now so there is currently no possibility for the plugin to support the pi3. If https://github.com/moonlight-stream/moonlight-qt/ adds support for the pi3 I would expect it to work out of the box.
Edit: Tested moonlight-qt on raspbian today (pi3), that works so the plugin should also work. Need to dig in to that, I think it misses a library.
It looks like the rpi3 build from LibreELEC is currently not compatibel. Not sure if they applied some patches that breaks stuff. Might be worth trying again when they release a new build.
I was able to get moonlight-qt running on the pi3 using this guide for the pi4 on raspbian: https://github.com/moonlight-stream/moonlight-docs/wiki/Installing-Moonlight-Qt-on-Raspberry-Pi-4 Performance wasn't great though, 720p max.
Log from running on LibreELEC:
Platform 'rpi' running 'libreelec' detected...
Using Qt library from /storage/.kodi/userdata/addon_data/plugin.program.moonlight-qt/moonlight-qt/lib/qt5...
Running without window manager...
Detected resolution 1920,1200...
Using Qt scale factor 0.93...
Using Kodi hooks for libreelec...
--- Starting Moonlight ---
00:00:00 - Qt Info: Unable to detect Wayland or X11, so EGLFS will be used by default. Set QT_QPA_PLATFORM to override this.
00:00:00 - Qt Info: Setting display mode by default. Set QT_QPA_EGLFS_ALWAYS_SET_MODE=0 to override this.
00:00:00 - SDL Info (0): Compiled with SDL 2.0.21
00:00:00 - SDL Info (0): Running with SDL 2.0.21
00:00:00 - Qt Info: No translation available for "C"
00:00:00 - Qt Warning: qrc:/gui/main.qml:12:1: QML ApplicationWindow: ToolTip must be attached to an Item
00:00:00 - Qt Debug: "No carrier"
00:00:00 - Qt Info: Found "gamecontrollerdb.txt" at "/storage/.kodi/userdata/addon_data/plugin.program.moonlight-qt/moonlight-home/.cache/Moonlight Game Streaming Project/Moonlight/gamecontrollerdb.txt"
00:00:00 - SDL Info (0): Loaded 202 new gamepad mappings
00:00:00 - SDL Info (0): V-sync disabled
00:00:00 - SDL Info (0): Sharing DRM FD with SDL
00:00:00 - SDL Error (0): Failed to find suitable overlay plane!
00:00:00 - SDL Info (0): DRM backend supports exporting EGLImage
00:00:00 - SDL Error (0): EGLRenderer: SDL_CreateRenderer() failed: Could not create EGL context (call to eglCreateContext failed, reporting an error of EGL_BAD_CONFIG)
00:00:00 - SDL Info (0): Sharing DRM FD with SDL
00:00:00 - SDL Error (0): Failed to find suitable overlay plane!
00:00:00 - SDL Info (0): Sharing DRM FD with SDL
00:00:00 - SDL Error (0): Failed to find suitable overlay plane!
00:00:00 - SDL Info (0): DRM backend supports exporting EGLImage
00:00:00 - SDL Error (0): EGLRenderer: SDL_CreateRenderer() already failed on this window!
00:00:00 - SDL Info (0): Sharing DRM FD with SDL
00:00:00 - SDL Error (0): Failed to find suitable overlay plane!
00:00:00 - SDL Info (0): Sharing DRM FD with SDL
00:00:00 - SDL Error (0): Failed to find suitable overlay plane!
00:00:00 - SDL Info (0): DRM backend supports exporting EGLImage
00:00:00 - SDL Error (0): EGLRenderer: SDL_CreateRenderer() already failed on this window!
00:00:00 - SDL Info (0): Sharing DRM FD with SDL
00:00:00 - SDL Error (0): Failed to find suitable overlay plane!
00:00:00 - SDL Info (0): Sharing DRM FD with SDL
00:00:00 - SDL Error (0): Failed to find suitable overlay plane!
00:00:00 - SDL Info (0): DRM backend supports exporting EGLImage
00:00:00 - SDL Error (0): EGLRenderer: SDL_CreateRenderer() already failed on this window!
00:00:00 - SDL Info (0): Sharing DRM FD with SDL
00:00:00 - SDL Error (0): Failed to find suitable overlay plane!
00:00:00 - SDL Error (0): Unable to load FFmpeg decoder
00:00:00 - SDL Info (0): V-sync disabled
00:00:00 - SDL Info (0): Sharing DRM FD with SDL
00:00:01 - SDL Info (0): DRM backend supports exporting EGLImage
00:00:01 - SDL Error (0): EGLRenderer: SDL_CreateRenderer() failed: Could not create EGL context (call to eglCreateContext failed, reporting an error of EGL_BAD_CONFIG)
00:00:01 - SDL Info (0): Sharing DRM FD with SDL
00:00:01 - SDL Info (0): Using DRM renderer
00:00:01 - FFmpeg: [hevc @ 0x16b2290] nal_unit_type: 32(VPS), nuh_layer_id: 0, temporal_id: 0
00:00:01 - FFmpeg: [hevc @ 0x16b2290] nal_unit_type: 33(SPS), nuh_layer_id: 0, temporal_id: 0
00:00:01 - FFmpeg: [hevc @ 0x16b2290] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
00:00:01 - FFmpeg: [hevc @ 0x16b2290] nal_unit_type: 21(CRA_NUT), nuh_layer_id: 0, temporal_id: 0
00:00:01 - FFmpeg: [hevc @ 0x16b2290] Decoding VPS
00:00:01 - FFmpeg: [hevc @ 0x16b2290] Main profile bitstream
00:00:01 - FFmpeg: [hevc @ 0x16b2290] Decoding SPS
00:00:01 - FFmpeg: [hevc @ 0x16b2290] Main profile bitstream
00:00:01 - FFmpeg: [hevc @ 0x16b2290] Decoding VUI
00:00:01 - FFmpeg: [hevc @ 0x16b2290] Decoding PPS
00:00:01 - FFmpeg: [hevc @ 0x16b2290] Format drm_prime chosen by get_format().
00:00:01 - FFmpeg: [hevc @ 0x16b2290] Format drm_prime requires hwaccel initialisation.
00:00:01 - FFmpeg: [hevc @ 0x16b2290] <<< v4l2_request_hevc_init
00:00:01 - FFmpeg: [hevc @ 0x16b2290] probe_video_device: path=/dev/video10 capabilities=0x4204000
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video10: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video10: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video10: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video10: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] probe_video_device: path=/dev/video11 capabilities=0x4204000
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video11: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video11: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video11: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video11: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video11: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video11: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video11: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video11: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video11: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video11: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video11: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video11: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] probe_video_device: path=/dev/video12 capabilities=0x4204000
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video12: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] probe_video_device: path=/dev/video18 capabilities=0x4204000
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video18: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] /dev/video18: Buf caps 0x15 insufficient
00:00:01 - FFmpeg: [hevc @ 0x16b2290] probe_video_device: path=/dev/video13 capabilities=0x4200002
00:00:01 - FFmpeg: [hevc @ 0x16b2290] probe_video_device: missing required mem2mem capability
00:00:01 - FFmpeg: [hevc @ 0x16b2290] probe_video_device: path=/dev/video20 capabilities=0x4200002
00:00:01 - FFmpeg: [hevc @ 0x16b2290] probe_video_device: missing required mem2mem capability
00:00:01 - FFmpeg: [hevc @ 0x16b2290] Failed to find a V4L2 device for H265
00:00:01 - FFmpeg: [hevc @ 0x16b2290] Failed setup for format drm_prime: hwaccel initialisation returned error.
00:00:01 - FFmpeg: [hevc @ 0x16b2290] Format drm_prime not usable, retrying get_format() without it.
00:00:01 - FFmpeg: [hevc @ 0x16b2290] Error parsing NAL unit #3.
00:00:01 - SDL Warn (0): Test decode failed (avcodec_send_packet): Operation not permitted
00:00:01 - SDL Info (0): Sharing DRM FD with SDL
00:00:01 - SDL Info (0): DRM backend supports exporting EGLImage
00:00:01 - SDL Error (0): EGLRenderer: SDL_CreateRenderer() already failed on this window!
00:00:01 - SDL Info (0): Sharing DRM FD with SDL
00:00:01 - SDL Info (0): Using DRM renderer
00:00:01 - FFmpeg: [hevc_mp4toannexb @ 0x16b7240] The input looks like it is Annex B already
00:00:01 - FFmpeg: [hevc_v4l2m2m @ 0x16bae90] level=-99
00:00:01 - FFmpeg: [hevc_v4l2m2m @ 0x16bae90] Format drm_prime chosen by get_format().
00:00:01 - FFmpeg: [hevc_v4l2m2m @ 0x16bae90] avctx requested=181 (drm_prime); get_format requested=181 (drm_prime)
00:00:01 - FFmpeg: [hevc_v4l2m2m @ 0x16bae90] probing device /dev/video18
00:00:01 - FFmpeg: [hevc_v4l2m2m @ 0x16bae90] driver 'bcm2835-codec' on card 'bcm2835-codec-image_fx' in mplane mode
00:00:01 - FFmpeg: [hevc_v4l2m2m @ 0x16bae90] v4l2 output format not supported
00:00:01 - FFmpeg: [hevc_v4l2m2m @ 0x16bae90] probing device /dev/video12
00:00:01 - FFmpeg: [hevc_v4l2m2m @ 0x16bae90] driver 'bcm2835-codec' on card 'bcm2835-codec-isp' in mplane mode
00:00:01 - FFmpeg: [hevc_v4l2m2m @ 0x16bae90] v4l2 output format not supported
00:00:01 - FFmpeg: [hevc_v4l2m2m @ 0x16bae90] probing device /dev/video23
00:00:01 - FFmpeg: [hevc_v4l2m2m @ 0x16bae90] driver 'bcm2835-isp' on card 'bcm2835-isp' in unknown mode
00:00:01 - FFmpeg: [hevc_v4l2m2m @ 0x16bae90] probing device /dev/video22
00:00:01 - FFmpeg: [hevc_v4l2m2m @ 0x16bae90] driver 'bcm2835-isp' on card 'bcm2835-isp' in splane mode
00:00:01 - FFmpeg: [hevc_v4l2m2m @ 0x16bae90] v4l2 output format not supported
00:00:01 - FFmpeg: [hevc_v4l2m2m @ 0x16bae90] probing device /dev/video21
00:00:01 - FFmpeg: [hevc_v4l2m2m @ 0x16bae90] driver 'bcm2835-isp' on card 'bcm2835-isp' in splane mode
00:00:01 - FFmpeg: [hevc_v4l2m2m @ 0x16bae90] v4l2 output format not supported
00:00:01 - FFmpeg: [hevc_v4l2m2m @ 0x16bae90] probing device /dev/video11
00:00:01 - FFmpeg: [hevc_v4l2m2m @ 0x16bae90] driver 'bcm2835-codec' on card 'bcm2835-codec-encode' in mplane mode
00:00:01 - FFmpeg: [hevc_v4l2m2m @ 0x16bae90] v4l2 output format not supported
00:00:01 - FFmpeg: [hevc_v4l2m2m @ 0x16bae90] probing device /dev/video10
00:00:01 - FFmpeg: [hevc_v4l2m2m @ 0x16bae90] driver 'bcm2835-codec' on card 'bcm2835-codec-decode' in mplane mode
00:00:01 - FFmpeg: [hevc_v4l2m2m @ 0x16bae90] v4l2 output format not supported
00:00:01 - FFmpeg: [hevc_v4l2m2m @ 0x16bae90] probing device /dev/video20
00:00:01 - FFmpeg: [hevc_v4l2m2m @ 0x16bae90] driver 'bcm2835-isp' on card 'bcm2835-isp' in splane mode
00:00:01 - FFmpeg: [hevc_v4l2m2m @ 0x16bae90] v4l2 output format not supported
00:00:01 - FFmpeg: [hevc_v4l2m2m @ 0x16bae90] probing device /dev/video16
00:00:01 - FFmpeg: [hevc_v4l2m2m @ 0x16bae90] driver 'bcm2835-isp' on card 'bcm2835-isp' in unknown mode
00:00:01 - FFmpeg: [hevc_v4l2m2m @ 0x16bae90] probing device /dev/video15
00:00:01 - FFmpeg: [hevc_v4l2m2m @ 0x16bae90] driver 'bcm2835-isp' on card 'bcm2835-isp' in splane mode
00:00:01 - FFmpeg: [hevc_v4l2m2m @ 0x16bae90] v4l2 output format not supported
00:00:01 - FFmpeg: [hevc_v4l2m2m @ 0x16bae90] probing device /dev/video14
00:00:01 - FFmpeg: [hevc_v4l2m2m @ 0x16bae90] driver 'bcm2835-isp' on card 'bcm2835-isp' in splane mode
00:00:01 - FFmpeg: [hevc_v4l2m2m @ 0x16bae90] v4l2 output format not supported
00:00:01 - FFmpeg: [hevc_v4l2m2m @ 0x16bae90] probing device /dev/video13
00:00:01 - FFmpeg: [hevc_v4l2m2m @ 0x16bae90] driver 'bcm2835-isp' on card 'bcm2835-isp' in splane mode
00:00:01 - FFmpeg: [hevc_v4l2m2m @ 0x16bae90] v4l2 output format not supported
00:00:01 - FFmpeg: [hevc_v4l2m2m @ 0x16bae90] Could not find a valid device
00:00:01 - FFmpeg: [hevc_v4l2m2m @ 0x16bae90] can't configure decoder
00:00:01 - FFmpeg: [hevc_v4l2m2m @ 0x16bae90] V4L2 Codec end
00:00:01 - FFmpeg: V4L2 Context destroyed
00:00:01 - SDL Error (0): Unable to open decoder for format: 100
Segmentation fault
I tried enforcing some other decoders but it didn't work out very well.
I guess we can downgrade to LibreELEC 9.2 with kodi 18.9 to use this version :
https://github.com/clarkemw/script.moonlight-embedded-launcher
I'll try it as soon as i receive an other SD card (I don't want to erase or do the copy thing to work on with mine because i use my pi daily)
From my understanding if you want to downgrade you must use an older version of widevine for the media player to work. I found an older comment of mine were i wrote this code.
curl https://k.slyguy.xyz/.decryptmodules/widevine/4.10.2252.0-linux-armv7.so | tee ~/.kodi/cdm/libwidevinecdm.so >/dev/null
not quite sure of this command line as i found the original for osmc wich was
curl https://k.slyguy.xyz/.decryptmodules/widevine/4.10.2252.0-linux-armv7.so | sudo tee /home/osmc/.kodi/cdm/libwidevinecdm.so >/dev/null
I'm quit noobish on this things
From what I've read moonlight-qt is more focused on the Pi4 and moonlight-embedded more on the Pi3. Drop a line if the embedded version works better.
From what I've read moonlight-qt is more focused on the Pi4 and moonlight-embedded more on the Pi3.
Yep, that's correct
@blacklaboratory @Krypt0nC0R3 I added instructions in the README.md for the Pi 3, it should work using the latest release (v0.1.7 and up).
@veldenb sorry for the late response I switched to Kodi 18.9 and moonlight embedded works just fine but maybe I will have to try your fix for moonlight-qt as Kodi 18 is less and less supported
Running on raspberry 3b causes gui to crash and web remote control to stop.
Kodi.log -> https://pastebin.com/CgejGvQC
Should this program run at all on other raspberry versions? If not, can you add support? And then moonlight-embedded is not supported from version Kodi 10.0, and there are no other ways to stream to raspberry 3