Can Plex use Auto-Quality to select from multiple pre-encoded files?

Server Version#: Version 1.18.3.2156 (Edit: fixed version number)

I was looking at turning on auto-quality to help streaming to some of my devices around my house. Based on some of the docs, it appears that the feature assumes you only have one original video file and the server will transcode on-demand: Automatically Adjust Quality when streaming | Plex Support

I was wonder if its possible to configure the server to use auto-quality without transcoding, instead relying on multiple source files at different bitrates. Storage is not a problem in my NAS for the size of my library, I’m more concerned about optimizing the streaming experience for the movies i do have. Pre-encoded VBR ladders is a much more traditional streaming architecture to optimize performance at time of streaming, and I’d like to use that if possible :slight_smile:

Note this is similar to a question asked 22 months ago without any replies: Client auto selection of Multi-version/optimized versions vs auto-quality?

Thanks!

1 Like

If the client specifies a bitrate that’s at or above the bitrate of one of the versions you have and the client can directly play that version, the client will end up playing that version and will perform no transcoding. This has been present in the clients and media server for many years and is likely what you want. Note: The client will not change versions dynamically based on network conditions; it will only play the version it starts with and continue playing it.

1 Like

With regards to your note –

What you described there is more along the lines of DASH, right? Like what is used by the new Plex AVOD service?

Would be cool if this could be used for standard PMS playback, as well, but I understand that most users would probably not use this as it would require a lot of file prep work on the back-end initially.

Also, since DASH / VBR ladders don’t seem to be something supported by PMS for users, is there any work being done to improve the “auto-quality” brain? Most of my users don’t use it because they find that it is generally quite slow and not always very smart.

No, it’s not DASH.

This is just having multiple versions of the same movie encoded at different bitrates (which is what the OP described) and the client/server can negotiate which to play given bitrate limits set in each.

1 Like

Thanks for the replies!

@gbooker02 so I can simply drop multiple versions of the video into the library and the client-server negotiation at playback start will select the optimal one that the client asks for automatically? That is what I was asking for, I assumed there was some settings to control it. I’ll give it a shot!

Regarding what @marcjt was saying, yes what I’m looking for ideally is VBR playback like DASH. DASH is just a streaming spec, but others like HLS/Smooth follow the same concept: players ask for content and they receive a manifest that contains instructions for how to play all available bitrates. The client self-manages and plays the most optimal, switching bitrates/tracks throughout as your environment/ network conditions change. As I mentioned, this is how traditional on-demand works, and you can see it in action any time you stream from a Netflix/etc service and have the quality/resolution change mid-stream.

For me, I have a bunch of movies that have very high quality encodes. I’d prefer to not use auto-quality since the results are unpredictable, but without it i can’t stream at all if my network is congested. Basically, VBR allows you to use pre-encoded bitrates simultaneously to provide the same experience as auto-quality but with predictable bitrate ladders encoded at the highest quality for your chosen bitrates.

2 Likes

Yep. Say you have a 40Mbps, 10Mbps, 5Mbps, and 2Mbps versions. If the client settings specify that it should use up to 4Mbps, then it’ll play the 2Mbps version. If it were set to 10, then it’ll play the 10Mbps version.

Hopefully you’ll find this useful: https://support.plex.tv/articles/200381043-multi-version-movies/

1 Like

Im not finding this to work with my current setup. I have an anime show with subtitles (requiring transcoding) that when playing on plex web and setting a quality limit, it seems to only transcode from the 1080p version, as opposed to the 720p version Ive optimized. Is there a way to specifically force it to choose optimized versions without having to pick the version manually each episode? Or is this intentional to choose to transcode from the highest quality version? Im trying to optimize this show to negate the random skipping that occurs on plex web when transcoding said anime (separate issue).

Wouldn’t an “auto quality select” for the video quality option be better? A decision based on the client’s bandwidth? Obviously not selecting a value that would saturate their internet connection, but something that will more “intelligently” decide the limit set for the device? Because it’s a pain to tell every one to select something higher from the default (most of them don’t get what’s Mbps in the first place). There’s a big part of my media in 1080p and uses more than 3~4 Mbps which I think is the default? So its start to transcode and my pc is nothing near a beast to handle that kind of load and is also old so hw aceleration at low bit rates looks awful.
Or even letting us set a minimun bit rate to transcode, so if client Mbps is set too low it simply won’t transcode, hw acceleration doesn’t work very well at low Mbps

The output quality of video may be lower, appearing slightly more blurry or blocky. This is especially true and more noticeable when streaming at resolutions below 720p or when using lower bit rate source material. (Hardware-accelerated video encoders are faster, but lower-quality than software encoders.)

So mixing both ideas, a situation where the client’s internet is good, the client would automatically set its video quality at a good level, as plex prefers direct play over transcoding, the idea of having optimized version its more understandable because it will select the adequate video for the bandwidth. In contrast, if its internet is low and I have the theoretical “minimum bit rate” enable, it won’t play the video (like with Disable video stream transcoding enabled). In that situation I could have optimized versions of the video file with low bit rate beforehand and it would direct stream to him, making the load to the server a lot lower.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.