Replies: 0 comments 28 replies
-
Yeah, this is on my list. It will require changes on the Moonlight side too, so it's more work than just support it in Sunshine. I may try to do it together with AV1 support when I work on that. |
Beta Was this translation helpful? Give feedback.
-
Hi, any news on this? 🙂 |
Beta Was this translation helpful? Give feedback.
-
Still waiting! People are hyped about this feature coming into play! |
Beta Was this translation helpful? Give feedback.
-
Bump, there is NO free streaming solution right now that supports 4:4:4. I would even pay money for this - just not willing to give into a subscription (Parsec). |
Beta Was this translation helpful? Give feedback.
-
I agree we need to support this. It's a must in graphic designing, Parsec is simply expensive and is also using NVENC for 4:4:4. I'd honestly say that it can be more useful than 10bit because using 4:4:4 in design like illustrator is useful. |
Beta Was this translation helpful? Give feedback.
-
Yeah I do hope so! And I'd rather pay a reasonable price for this! |
Beta Was this translation helpful? Give feedback.
-
I did look into this and there are a few issues with the current hardware and software ecosystems that make this challenging to support well, which is why I didn't end up doing this work together with AV1 enablement. First, the hardware decoding side is a complete mess. The standard Microsoft DXVA/D3D11VA API for video decoding does not define decoding profiles for HEVC Main 4:4:4, so some vendors (Intel) have made up their own (which is actually the best case) and others (Nvidia) require use of their own vendor-specific APIs to decode 4:4:4 content. AMD seems to lack 4:4:4 decoding support entirely. FFmpeg, which we use for encoding and decoding, doesn't support these custom 4:4:4 DXVA vendor extensions either, so we'd also need to write a FFmpeg patches to enable them. On non-PC platforms, the situation is even worse regarding hardware support (and non-PC clients don't support software fallback either). The best hope for a reasonable cross-vendor (and cross-platform!) API for decoding HEVC 4:4:4 is probably Vulkan Video, which Moonlight now supports via libplacebo in the latest pre-release code. However, I haven't tested to see if HEVC 4:4:4 decoding is supported in the current release of Intel and AMD drivers. On the software decoding side, SDL doesn't support consuming YUV 4:4:4 texture formats at all, so we don't really have any way to support software decoding using any of the existing code. Fortunately, the libplacebo renderer may come to the rescue again here, since it seems to support importing software decoding frames for rendering. And on top of all this, AV1 support for 4:4:4 encoding in current generation hardware is a total no-show. Even on hardware that supports both HEVC Main 4:4:4 and AV1, none of it supports AV1 4:4:4. There are probably more issues I'm forgetting or haven't run into yet. None of these issues are complete showstoppers, but all this is why it wasn't just as simple as plumbing a few new codec options like AV1 was. |
Beta Was this translation helpful? Give feedback.
-
I know Cross-platform compatibility is important, although it make sense to implement such feature as "for advanced users" or "for enthusiasts" i.e. make available only if HW supports it, maybe even put some "validation responsibility" onto users e.g. to check that HW actually support feature. I see no reason to skip/delay feature for Desktop users with high-end PCs just because there are exists some percent of "smartphone enjoyers". |
Beta Was this translation helpful? Give feedback.
-
FYI all LizardByte/Sunshine#2533 and moonlight-stream/moonlight-qt#1282 |
Beta Was this translation helpful? Give feedback.
-
FWIW, I did some testing on a Pascal Quadro, and...
... I attached the test file (mp4, below 1MB): |
Beta Was this translation helpful? Give feedback.
-
Windows encoding of native 4:4:4 is ready for testing LizardByte/Sunshine#2533 Vulkan decoding of native 4:4:4 in moonlight-qt is ready for testing moonlight-stream/moonlight-qt#1282 Emulated 4:4:4 through recombining doublesized 4:2:0 should be ready soon™ (I've encountered an inconsistency in vulkan/libplacebo that mess things up a bit in some specific cases) Native and recombined 4:4:4 encoding should be possible on Linux and MacOS, but I probably won't work on it myself. Recombined 4:4:4 decoding won't be coming to moonlight-android any time soon, too many things need to be implemented there first. |
Beta Was this translation helpful? Give feedback.
-
Hello.
I do not wknow where to check it, but to my eyes (I might be wrong) it looks like for now Sunshine is doing 4:2:0 chroma subsampling encoding. Modern GPUs have no issue encoding and decoding 4:4:4 video stream - it would greatly improve visual clarity of text, small elements and saturation.
I would like to request this feature to be a optional toggle to enable if our hardware supports it.
For example, I have RTX 3090 in source PC
and Rocket Lake i5 with UHD 730 in client PC that supports HEVC 4:4:4 decoding. I guess many people would benefit greatly from this feature. Thanks for considering implementing it.
Beta Was this translation helpful? Give feedback.
All reactions