How does the Plex Web Client determine which version to play when multiple versions exist of the same item with regards to screen resolution?
I have two nearly identical brand-new Dell laptops running a Chromium-based Browser (Edge, but same behavior in Chrome) and one of them chooses to transcode the 2160p HDR version while the other chooses to Direct Play the 1080p SDR version. The only difference between the two laptops is that one has a 2560x1600p SDR display and the other has a 1920x1200p SDR display.
I created many different versions to test version selection behavior to avoid transcoding. Below is what I saw when manually selecting each version on both laptops:
- 19Mbps 2160p HDR version (Convert Container, Transcode Video/Audio)
- 14Mbps 2160p SDR version (Convert Container, Direct Stream Video, Transcode Audio)
- 9Mbps 1080p SDR version (Convert Container, Direct Stream Video, Transcode Audio)
- 8Mbps 1080p SDR version (Direct Play)
- 4Mbps 720p SDR version (Direct Play)
- 2Mbps 720p SDR version (Direct Play)
Like I said above, the 1600p laptop chose to Direct Stream the 19Mbps HDR version, and the 1200p laptop chose to Direct Stream the 9Mbps 1080p SDR version.
Of note, in Firefox both laptops choose to Direct Play the 8Mbps 1080p SDR version.
I assume Chromium must be passing along some kind of information about the primary display capabilities. This seems suboptimal since the 1600p laptop looks significantly worse playing the HDR tone mapped transcoded version than the SDR native Direct Stream/Play version. I’d even prefer if it chose to transcode the 4K native-SDR version so at least I wouldn’t be seeing the effects of both unnecessary additional compression and tone mapping.
In summary, it seems like a bug that Plex would choose to transcode at all in Chromium when a Direct Play version is available. Plex should use the same/similar logic on all platforms to choose which version to play. I’d expect that logic to be the following (in order):
- Direct Play the best available version, if available and if a client bandwidth restriction is set, ensuring it matches the Dynamic Range and Color Space of the active display.
- Direct Stream the best available version, if available, ensuring it matches the Dynamic Range and Color Space of the active display.
- Transcode the best available version that matches Dynamic Range and Color Space of the active display.
- Transcode & Tone Map an HDR version to SDR if a Dynamic Range and Color Space match isn’t possible.
Here’s what it does on in Edge on the 1600p laptop:

Here’s what it does on in Edge on the 1200p laptop:

Here’s what it does in Firefox on both laptops:

Looking forward to any/all help. Thank you!
Server Version#: 1.31.1.6733
Player Version#: 4.101.1
(I saved logs and am willing to DM to any Plex Employees willing to look)