What are Plex Optimized Versions?
Making use of the Plex optimized versions functionality within Plex Media Server has the benefit of allowing any Plex client direct play a movie. Having a movie direct play, instead of transcoding, reduces the usage of the Plex server's CPU.
Another benefit of providing optimized versions is to avoid less powerful servers that can't transcode movies and display a message indicating the server is not powerful enough to convert video on the client.
By using the "Optimise" feature in Plex, you can easily provide different quality versions of your movie files to your clients even on low-powered devices. This post provides details on why you may want to use this feature, information about the feature, as well as some testing streaming a video with multiple quality versions created using the optimise feature in Plex.
What are Plex optimized versions?
The Plex Media Server provides the functionality to create multiple versions of the same movie and store those versions within the same folder as the original movie. This makes it easy for the Plex owner to create reduced bitrate files without the need to use external applications such as Handbrake.
The main benefit of creating optimized versions of a movie is to provide lower bitrate movie files than can be streamed to clients that can't handle large bitrate movies.
For example, if a client is streaming from the Internet on a slow Internet connection, streaming a 4K movie could cause a lot of buffering because of the high bitrate.
In the above example, if the client's quality settings were set to the default remote streaming quality of 2 Mbps, 720p, the Plex server would need to transcode the original 4K movie file to 720p when the file is streamed. This could cause the Plex server CPU to reach 100% usage while the transcode is happening, and cause the server to become slow.
This is where the optimized versions come in.
The Plex owner can have Plex create smaller bitrate versions of the same movie. The owner may decide to create a 1080p, 720p and maybe a 480p version of the 4K movie.
When that same client with the 2 Mbps, 720p requests to stream that movie, Plex would stream the 720p or 480p version of the movie to the client. This would then allow the client to direct play the movie, reducing the CPU usage on the server.
Optimize version quality
There are different ways you can specify the quality of the optimizations. There are three preset quality options, and one custom option. The custom option allows you to define a more specific quality to use.
Preset qualities
The three standard preset qualities available in Plex are:
Video | Audio | Subtitles | |
---|---|---|---|
Optimized for Mobile - 4 Mbps 720p | 4 Mbps, 720p | Preserved or AAC 2.0 | SRT as sidecar file, or other formats burned into video |
Optimized for TV - 8 Mbps 1080p | 8 Mbps, 1080p | Preserved, or AAC or AC3 | SRT as sidecar file, or other formats burned into video |
Original Quality | Same as original, if compatible with MP4 | Same as original, if compatible with MP4 | Same as original |
For the original quality, will create an MP4 file using the original video and audio streams. If both the video and audio streams are compatible with the MP4 container, then those streams will be copied as-is. If they are not compatible, then they will be transcoded to make those streams compatible.
The default remote streaming quality for a Plex client is 2 Mbps, 720p. This bitrate is lower than the "Optimized for Mobile" preset. Creating an optimized version using that preset would still require transcoding to remote streaming clients that haven't changed the default remote streaming quality.
To create optimized versions that match the default remote streaming quality, you will need to use the custom preset option.
Custom presets
If you would like a bit more control over the quality of the optimized versions of your movie, you can use one of the custom presets instead of one of the three standard presets.
By selecting Custom from the Optimization Quality dropdown, you can then select the Plex app client to target, as well as the quality.
Each of the client targets would have their own target video and audio codecs. It is safe, though, to assume most clients would default to the MP4 container, the h.264 codec for video and AAC for the audio stream.
The list of potential client options include the following:
Custom Preset Name |
---|
Android |
iOS |
Universal Mobile |
Universal TV |
Windows Phone |
Windows |
XBox One |
In addition, you can also select the quality of the conversion. The quality options include the following:
Custom Quality Setting |
---|
20 Mbps, 1080p |
12 Mbps, 1080p |
10 Mbps, 1080p |
8 Mbps, 1080p |
4 Mbps, 720p |
3 Mbps, 720p |
2 Mbps, 720p |
1.5 Mbps, 480p |
0.7 Mbps |
0.3 Mbps |
0.2Mbps |
The presets listed above are guides only. Depending on the movie, you may find that the bitrate that is produced is lower than the bitrate for the custom preset quality.
How to create optimized versions
To create an optimized version of your movie in Plex, use the following steps:
- Open Plex from your Web browser, and ensure the user you select has access to administer the Plex instance.
- Select the library on the left that contains the movies that you wish to optimize. If all your movies aren't displayed, click the Library link at the top.
- Hover your mouse over the movie you wish to optimize, then click the three dots in the bottom left corner of the movie poster.
- Click the Optimise... option from the menu that appears. The Optimise dialog (shown below) is displayed on the screen.
- Select one of the options in the dropdown list if you wish to use one of the standard presets. They are good for quick optimizations that should work for the selected device.
- Once you are satisfied with the quality options of the optimized file, you can then specify the location of the new file. I usually keep the new file in the same folder as the original, to avoid having too many files and folders everywhere on my hard drive.
- Once everything looks good, click the Optimise button at the bottom of the dialog, and Plex will begin to create the new file. Depending on the optimization settings, it could take some time to create and new file.
Pros of optimized versions
The major benefit of using optimized versions were discussed above. Here are all the benefits:
- Reduce the need to transcode. This allows Plex Media Server to run on a low-powered devices with a weaker CPU.
- Less worry about a client's quality setting, as the Plex server would have lower bitrate versions to stream.
- Easy to use - no external application is required.
- Can create the optimized versions of movies off-hours so it won't impact streaming.
Cons of optimized versions
There are several cons to think about when use Plex optimized versions of you movies. These include the following:
- More hard drive space is required as each optimized movie file would need to be stored.
- Would need to determine what settings to use for providing optimized movie versions, as well as how many versions to create.
- Much like transcoding, creating an optimized movie version could use 100% of the CPU of your server.
- The optimized version of a movie may not look or sound right depending on how Plex transcodes the movie.
- Cannot specify specific quality bitrates - can only select specific bitrates.
Testing the optimized versions
Having Plex create optimized versions of a movie so it can be streamed to clients to reduce transcoding is great, but how well does it work.
Below are the results of a 4K home video I converted using various quality settings. I then attempted to play the same video on a Windows 10 desktop to see which quality would be sent to the Windows Plex app.
The available versions of the video available on Plex for the video are as follows:
25 Mbps, 4K (h.264), AAC 2.0 |
9 Mbps, 1080p (h.264), AAC 2.0 |
4 Mbps, 720p (h.264), AAC 2.0 |
2.1 Mbps, 720p (h.264), AAC 2.0 |
1.5 Mbps, 480p (h.264), AAC 2.0 |
Before each test, I manually went into the Windows Plex client and changed the "Home Streaming" quality using the provided dropdown.
Below are the results of the quality setting in the Plex app, the file that was streamed from Plex and whether the video was direct played or transcoded.
Client Quality | Streamed Video Quality | Play Type |
---|---|---|
Maximum | 25 Mbps, 4K (Original) | Direct Play |
20 Mbps, 1080p | 9 Mbps, 1080p | Direct Play |
8 Mbps, 1080p | 4 Mbps, 720p | Direct Play |
3 Mbps, 720p | 2.1 Mbps, 720p | Direct Play |
2 Mbps, 720p | 1.5, 480p | Direct Play |
A few notes regarding the test results:
- For the selected 8 Mbps, 1080p quality, Plex couldn't find a 1080p version that was less than or equal to that quality, so it selected the next best version, which is the 4 Mbps, 720p version.
- The 2 Mbps, 720 is the default for remote streaming for Plex apps. When that quality was specified, the 1.5 Mbps, 480p version was streamed instead of the 2.1 Mbps, 720p. This is because the 720p version has a bitrate just above the 2 Mbps selected quality, so Plex streamed the next best quality.
As the few tests above show, Plex Media Server will select the best quality video that best meets the selected streaming quality for the client.
By making use of the Optimise feature in Plex, you can create several optimized versions of the same movie file, so that Plex can stream the file that best meets the quality specified by the client.
By doing so, Plex can then direct play most movies, reducing CPU usage that will allow Plex to run on low power devices, such as NAS boxes or a Raspberry PI.
The trade-off will be more hard drive space and time to first transcode the original movie files.
It will be up to the owners of the Plex server to determine if utilizing the optimise feature in Plex is worth the effort.