Tip!: The Bandwidth and Transcoding Limit features require an active Plex Pass subscription for the Plex Media Server admin Plex account.
Your Plex Media Server is generally limited by three main things: processor power, network speed, and storage space. While we can't control how much storage space you have, we can certainly help you manage your processor and network usage.
- The majority of your processor (CPU) usage when using Plex will come from any transcodes for content that are needed. If you aren't running Plex Media Server on a dedicated computer, you may wish to limit how many things can be transcoded simultaneously.
- When watching content on your local network, the network speed usually isn't much of a factor. However, if you stream remotely or share a library with someone who lives somewhere else, your network speed/bandwidth can be a very important factor. Your internet connection will only be able to upload so fast, after all.
Beginning with Plex Media Server version 1.2.1, new controls have been added to help start to control these aspects of your server. This is only the beginning and we'll continue refining our server resource management capabilities.
Processor (CPU) Controls
Plex Media Server provides access to several settings that can affect your processor usage. The following are relevant server options, which are available under Settings > Server > Transcoder.
Related Page: Server Settings > Transcoder
This setting influences the quality used when transcoding media. We definitely recommend leaving this set to the default
Background transcoding x264 preset
You can control the preset used by the transcoder when processing content for background transcoding (Mobile Sync, Cloud Sync, or Media Optimizer).
Maximum simultaneous video transcode
Choose how many transcoding sessions you will allow simultaneously. Most users won't see a need to change this value.
Network Bandwidth Controls
Whenever you (or a shared user) streams from your Plex Media Server and you aren't at home, that content has to be uploaded from the server to "the internet" and then downloaded to the client Plex app. For the vast majority of people, their internet connection can download content much faster than it can upload, so the bottleneck is typically related to the upload speed available on your internet connection for your Plex Media Server.
For the best experience when content is streamed remotely, you'll want to ensure that you have your Plex Media Server preferences set appropriately. The following are relevant server options, the main two of which are available under Settings > Server > Remote Access.
Related Page: Server Settings > Remote Access
Internet upload speed
This should be set based on the upload speed available on your server's internet connection, specified in
Mbps (Megabits per second). Most people will determine this value based on testing their upload speed using a service such as speedtest.net. See information below for how to best determine the value to use.
Regardless of how many streams might be going or what individual, per stream upload limit you might have set (see below), the total used won't exceed the value set here.
Tip!: The Plex Media Server is smart enough to prevent saturating the bandwidth value specified here. It will only use 80% of this for streams both to ensure that normal network requests can be completed and because streams have variable bitrates and will naturally go up and down somewhat.
Limit remote video quality
You can set the maximum speed at which any individual playback stream can upload. For instance, you might decide that you don't want any individual remote stream to go over 4 Mbps, even if you have a higher total internet upload speed and allow multiple streams.
Very few people will need to set or change this preference. It simply lets you specify which IP addresses or networks will be considered to be "local" to you. The previous bandwidth settings do not apply to "local" playback and only take effect for remote playback. By default, only the network subnet on which the server is located is considered to be "local" (which is appropriate for the vast majority of users). This setting can be found in Settings > Server > Network.
Related Page: Server Settings > Network
Determining What Values to Use
The above information lets you know what sort of settings are available, but you still might not know how you should be using those settings (or even if you should use one at all).
For the great majority of users, the Transcoder quality and Background transcoding x264 presets should be left at their default values. There's generally very little reason to change those, except for expert users.
The Maximum number of simultaneous transcode sessions preference is much more subjective. This will largely depend on a combination of how powerful the computer/device is that runs your Plex Media Server as well as whether you use the device for other purposes, too.
For instance, someone who runs Plex Media Server on their main home desktop computer (where they also play games, browse the internet, etc.) may not want to let the server use the full resources of the system. So, if that person knows the computer can transcode 4 streams when fully dedicated, they may wish to set things so that only 2 or 3 streams are allowed (thus ensuring there's some power left over for other purposes).
For many people, their network bandwidth will be the greatest limitation, so it's important to set things correctly here. Whether or not you set a per-stream limit is really just up to you. There's no right or wrong answer for that.
When setting the Internet upload speed preference, you should generally base that on the actual, real-world upload speed of your server's internet connection. The easiest way to find that value is with some testing:
- Choose a time representative of when most remote streaming will occur. If most streaming is by friends on the weekends at night, then that's when you should test. Similarly, if you primarily stream on your lunch break at work during the week, that's the best time to test.
- Using the computer/device that runs your Plex Media Server, perform a speed test to measure the network bandwidth. The speedtest.net service is very popular for this and will give you an upload speed value. (It's sometimes useful to test a few times and average results.)
Unless you have a compelling reason to do otherwise, you should then set the preference to the value you get in testing. Your server will be smart enough to not completely saturate the bandwidth.
Related Page: speedtest.net
Most people will never need to set anything for the LAN Networks preference. That's really only applicable in complicated network setups and people with those types of setups will know how to set the preference.
Bitrates and How They Matter
Many people are familiar with the concept of file "bitrates", which are a measure of how much data is stored per unit of time in the file. You've probably heard of a "320 Kbps MP3" file or a "3.5 Mbps movie". What's almost universally reported in this case is the average bitrate, which just takes the total file size and divides by the duration.
Unfortunately, in the big majority of cases, that average value turns out to be pretty meaningless when it comes to controlling streaming media.
But That's the Bitrate You Need to Stream, Right?
It's not that simple. Particularly when it comes to videos, very little content is encoded at a constant bitrate. In the very rare cases where that's true, then the average bitrate is also the real bitrate, since it never varies. But that's not usually the case. Much more commonly, video is encoded such that the bitrate varies ("variable bitrate") so that a constant quality of image can be achieved. A big action scene with lots of movement is going to take a lot more data than a still scene to achieve the same quality.
That means that more data has to be transmitted during those big action scenes. It isn't uncommon for the spikes for these scenes to require 3x, 4x, or even more the "average" bitrate of the file. Similarly, a still scene would require less than the average.
Imagine you took that "3.5 Mbps average" movie from earlier and (since it's "only 3.5 Mbps") you chose to only allocate 4 Mbps total bandwidth to it. That's going to be fine while you're watching the slow, simple intro, but then you get to the first action scene and it spikes up to, say, 10 Mbps for that 60s of action. The bandwidth you allocated can't accommodate that, so what's going to happen is that your playback is going to pause/buffer right in the middle of the exciting action scene to wait for more data to arrive. Not so exciting after all, huh?
So, How Does Plex Handle it?
Because the "average" bitrate isn't very useful, we need to have a lot more details to give you a good experience. To get that information, your Plex Media Server will perform a "Deep Analysis" on files. This goes through the file and maps all those spikes and valleys in the bitrate throughout the video to get a much more complete picture of what goes on.
Using that information, your Plex Media Server can work together with your Plex app to figure out how much bandwidth is really required to stream something. For example, to direct play that previous "3.5 Mbps average bitrate" file:
- an app that has a large buffer might only need ~5.4 Mbps of bandwidth to ensure smooth playback
- a different app with a smaller buffer might need ~8.4 Mbps of bandwidth because the smaller buffer can't tolerate spikes as well
This "Deep Analysis" for files is automatically performed by your server as part of the regular nightly maintenance period.
Note: If the deep analysis for a file hasn't yet been performed, your Plex Media Server will assume a
[2 x average bitrate] value if it's needed for streaming limitation calculations.
Related Page: Server Settings > Scheduled Tasks
How Does that Help with Resource Management?
You can set both per-stream and total internet upload speed limits. The bitrate information from above is used when determining how playback requests fit into the limits you've set. Going with that same example file, for instance, if you had set a 4 Mbps per-stream limit, then that "3.5 Mbps average bitrate" file would need to be transcoded, because it turns out that 4 Mbps isn't actually sufficient to smoothly stream the file.
Similarly, if you limit the number of simultaneous transcode sessions allowed, that can affect playback possibilities, too.