June 21, 20242 yr Hello: I am tyring to build the latest version of moonlight-qt (6.0.0). Up until now, I succeded by removing the disable-libdrm and disable-wayland to enable hardware acceleration and use H264, H265 and AV1 all of them through hardware acceleration. However, I get huge decoding times and they are even variable, ranging from 40ms to 300ms depending on what is going on in the streaming. The 4.3.1 version provided by @amazingfate works very good at 4ms decoding time but I would like to test the new AV1 encoder and features from the latest version. What steps should I follow to get it working correctly? Thank you in advance
June 23, 20242 yr Author Hello again @amazingfate: I did some more tests to check what you said. First, there are no frame drops, video is smooth using any decoder. Regarding decoding time, the behaviour is a little bit strange: the higher the framerate that moonlight renders, the lower the decoding time. When I am running 120fps, the decoding time is 35 ms which is as low as I managed to get it to. In your 4.3.1 moonlight that you have in your ppa at launchpad I get 4ms decoding time. Sorry for the dumb question, I am just trying to understand: did you apply any patch or did anything in the source code to make the decoding time lower? Thanks in advance
June 23, 20242 yr Solution 4.3.1 moonlight is linked to ffmpeg 4.4, while new moonlight is linked to ffmpeg 6 because libavcode-dev in my ppa is updated to 6.0. Decoding time caculation is ffmpeg releated. I think moonlight can't distinguish decoding time and rendering time with new ffmpeg.
June 23, 20242 yr Author Thanks for answering so quickly. I didnt know that the decoding time measurement was performed this way. So, there shouldnt be any difference between both versions performance then. I didnt try to play much and latency didnt seem as noticeable. Thanks for sharing your knowledge again! PS: I put another post about linux kernel 6.1 not booting after updating some libraries from your ppa, could you take a look or tell me how can I debug it?
June 24, 20242 yr @zetalex Were you able to use 4k120? If so, how did you enable 4k120 in Linux? I am not able to set the display (my TV) to 4k120, only 4k60... My TV's HDMI port is definitely a 4k120 port (verified with my PC and Nvidia GPU). Have you seen this tutorial? I lists all required steps if you want to use hardware acceleration on RK3588 with 6.1 kernel. https://jellyfin.org/docs/general/administration/hardware-acceleration/rockchip
June 30, 20242 yr @amazingfate @zetalex I tried to compile version 6.0 of Moonlight with libavcodec-dev 6.0.1 from amazingfate's ppa. However, I got significant decoding times too and noticeable lag when moving the mouse. After reading amazingfate's post, I recompiled it using libavcodec-dev 4.4.2. Now, the decoding time is below 10 ms and noticeable lag is gone.
June 30, 20242 yr @zhonghuihong could you please list all required steps? I build moonlight-qt following their instructions, but I get a segmentation fault when I run the app.
July 1, 20242 yr @q-bert It seems like you might have missed some dependencies while building, such as egl. Without the start log, it's difficult to point out why. I've uploaded a compiled moonlight-qt 6.0 binary file. Just make it executable with chmod +x then enjoy it. https://drive.google.com/drive/folders/17hK8OjAUbbXZNHlfMHf7VH-iqcUmBz7Q?usp=drive_link Edited July 1, 20242 yr by zhonghuihong typo
July 1, 20242 yr @zhonghuihong I get this error: ./moonlight6: error while loading shared libraries: libavcodec.so.58: cannot open shared object file: No such file or directory How did you configure your build and where do you have ffmpeg? Here is how I build it (I did not change any directories): https://github.com/nyanmisaka/ffmpeg-rockchip/wiki/Compilation
September 11, 20242 yr Hi @q-bert , would you like to guide my how to fix missing libavcodec.so.58 and libavutil.so56 issue ? I tried to make symplink from libavcodec.so.60 and libavutil.so58 , but it showed missing version 'LIBAVCODEC_58' not found
September 12, 20242 yr Hi @amazingfate , would you mind help us upload your moonlight 6 package to your ppa ?
October 4, 20242 yr @luizkun Sorry for my late reply, I totally missed your message. As far as I remember I updated packages (apt update etc.) and followed the steps on moonlight's GitHub page: https://github.com/moonlight-stream/moonlight-qt
August 16, 20251 yr Sorry to bump an old thread. Quote Hi @q-bert , would you like to guide my how to fix missing libavcodec.so.58 and libavutil.so56 issue ? I tried to make symplink from libavcodec.so.60 and libavutil.so58 , but it showed missing version 'LIBAVCODEC_58' not found I am having the exact same issue here with that predefined build. I tried building moonlight-qt from source after installing ffmpeg-rockchip, I still cant get hardware decoding working... I am on a pure Wayland setup. Anyone have any tips to get this to work? What needs to be changed in the qt.pro files? Edited August 16, 20251 yr by StonedEdgeMods
October 5, 20251 yr Coming from the future, I created a fork with a patched version of moonlight-qt that works with Armbian 25.8.1 using vendor kernel 6.1.115 and Gnome as well as the mali blob g610-g24p0-wayland-gbm and of course, rkmpp. The performance is great. In a nutshell, what I actually patched were the direct OpenGL calls since these were not directly exposed in OpenGL ES that the mali blob uses. Edited October 5, 20251 yr by m33ts4k0z
July 20Jul 20 hate to bump this thread, but anyone have any luck with hardware decoding in latest Armbian? Tried with 26.5.1 vendor kernel with both gnome and kde. None of the guides seem to work with hardware decoding. Tried the above posted fork as well, but seems 26.6.1 doesn't ship with g610-g24p0-wayland-gbm. Installing it from here just gave me a black screen at boot. Not sure what else to try, I had moonlight working with hardware decoding in 24.8.1 a couple years ago here.
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.