Best video player for HDR playback on desktop Linux?

Hi all,

In my effort to fully move to Linux, I need to download a video player for my entertainment needs that can play HDR content in HDR. Please share which apps you think work best.

I am using Fedora Workstation (and sometimes Silverblue).

Thank you.

2 Likes

[see below edit]
[im stupid of course wayland has HDR support]

edit: vlc does but it seems suboptimal, it seems the best way is the cli tool mpv, perhaps with an open source community made gui on top if needed
alternative is kodi but if you need dynamic HDR like HDR10+, mpv seems to be your best bet

2 Likes

Second this, if you plan on having a TV box, Kodi rocks.
Otherwise, MPV is indeed the MVP. :smiling_face_with_sunglasses:

You can install it from Flathub easily when it comes down to Fedora.

Not fully sure when it comes down to HDR specifically because it depends on the hardware you’re running the videos on, quite a dense topic that I am not super familiar with. :sweat_smile:

1 Like

Yeah, that’s what I have been seeing as the best option too but wasn’t sure.

But MPV is suboptimal too it seems, no? It surely is on macOS which is why I am using the Infuse app for now.

Are you also sure MPV works fully and properly playing HDR content well? And how does the hardware apart from having an HDR compatible monitor matter? Is there to it than I need to know?

I am not sure if there are a lot of FOSS players that are better quality than MPV.
Infuse works well and is cool[1] but it’s a product and it’s probably just a few plugins/codecs away from being perfect.


Haven’t gotten through all the steps myself, so no: not sure about how it works but here are the things I narrowed down in general.
You need 3 things to have a proper working HDR experience:

  1. your source movie needs to be “HDR-enabled” (or be trans/encoded into it before the delivery)
  2. have the player that supports it well enough
    • apparently, Jellyfin or other Nvidia tricks can also emulate/make it work, there is quite some extensive documentation in their docs
    • there is an entire topic on what’s the source and if you also want to map it to SDR or have dynamic HDR on the fly, etc…looks quite complex and depends on your use-case
  3. your output device needs to be HDR compatible too: this can vary a lot based on the OS, the proprietary codec and other specifications. There are “a lot of HDRs” because it is not a standard yet (companies chime in quite heavily), hence it all depends on which specific one you’re targeting
    • on my side, I do have those HDR-enabled devices that are doing great: ASUS XG27UCDMG + LG C3 (or maybe C2, can’t remember) and it works on both of those[2], YMMV and your tolerance/preference towards static vs dynamic HDR might also be a consideration
    • nvm, I do also have a Gigabyte M28U but yeah, I never use HDR on it because it is very not good on it[3]

Back to the topic of MPV, it looks like you might need to set a few settings into mpv.conf like

profile=gpu-hq
vo=gpu-next
hwdec=auto-copy
video-sync=display-resample
interpolation=yes
target-colorspace-hint=yes
gpu-api=vulkan

For the HDR detection, tone mapping, some more are needed apparently.
You could probably find your way out with some LLM/search on Reddit and cross-reference it with the official docs here, given how extensive they are I think that it’s definitely an achievable thing if tinkered enough with! :face_savoring_food:

TLDR: with MPV or Kodi, there is definitely a way to achieve what you’re looking for as a lot of enthusiasts on YouTube went over that process already. It is just not plug&play haha. :sweat_smile:


  1. I agree, that’s also what I do currently use on AppleTV ↩︎

  2. I am not sure which spec I do use on both but I guess that since I do have HDR10 & HDR10+ & Dolby Vision & HLG & VESA DisplayHDR™ 400, I kinda brute force my way in and have it working with some of those :joy: ↩︎

  3. didn’t bought it for HDR if we’re honest, not the intent with that monitor hence it’s always SDR because the panel is IPS and not OLED :grin: ↩︎

2 Likes

Thank you for the helpful answer.

1 Like