The client is playing from a buffer.
The ‘peaks’ may not be long duration and the server is just sending out data to keep a buffer full on the client end. It doesn’t need to transfer that 17Mbps all at once. The buffer loading can take a moment so the rate doesn’t show in real time.
If you’re encoding - or someone else is - and the encoder isn’t set to actually limit peaks, the material will have peaks and valleys the average of which is calculated for the bit rate report. The peaks can be very high. Just know there will be peaks.
Plex will see those peaks now, cause it matters. If the bandwidth can’t keep up with the peaks to keep the buffer full - Plex will have to adjust the stream in a transcode.
Nature of the beast, but annoying just the same…lol
Plex figures all that stuff during the analysis.
If you look at the XML data for the file you’ll see those bit rate calculations.
At stream time Plex looks at the bandwidth and those peaks, then determines if it can keep a buffer filled with what it has to work with and if it can’t - transcode.
“Adjust Automatically” can be a blessing in this case - and a curse anytime else. If your bandwidth isn’t very good to a remote client and the stream begins in transcode, Adjust Automatically will adjust the bit rate in real time for the client. The quality may go down, but the stream should continue without any buffering. As conditions improve - or tank - the stream will respond accordingly.
If Adjust Automatically is on - it’s very likely a transcode will be the result, no matter what you do. I’ve never actually seen it be very ‘Automatic’, but I have seen the benefits it provides.
At least for Direct Play, I think the number displayed in the Dashboard is based on the required bandwidth for the client’s advertised buffer size, NOT the bandwidth the client is actually using at that instant.
Check out the dashboard when Direct Playing a file that hasn’t had Deep Analysis performed. 10 Gbps! I think that’s just because the bandwidth analysis for the file hasn’t been performed.
If you watch the Bandwidth chart in the Dashboard, most clients will pull as hard as they can until their buffer is full, and then play until the buffer hits a low-water mark. Then they download until the buffer is full again.
On the local network, my TV will pull 250Mbps for a couple seconds, then sit idle for 10-30s. On a remote (slower) network it’s usually not as dramatic.
Water, man. Scenes with rain or frothing water. So many bits!
Are you able to tell me what the numbers in ‘requiredBandwidths’ mean? I think they are kbps, but why so many numbers? Are they Max, Min, Avg bit rates or something else.
Yeah, Otto explains in that link, above. (Hah, Jinx!)
@OttoKerner, can you confirm (or deny) that the displayed value is based on the client’s reported buffer size?
The numbers mean the practically required download bandwidth for 5/10/25/50/75/100/250/500MB network buffer sizes.
It’s not helpful to think in terms of the Max/Min/Avg of a file. What matters is having enough bandwidth to keep the client’s buffer from draining to empty while streaming.
The requiredBandwidths values take a fair amount of analysis to compute, and it’s neat that Plex exposes them.
The smaller a client buffer, the more important it is to have enough Internet bandwidth to accommodate even short bitrate spikes in the file. If the buffer empties, the video stalls.
The larger a client’s buffer, the more the buffer can “smooth out” the bandwidth requirements.
That’s reflected in the requiredBandwidths values. The first values, for devices with smaller buffer sizes, are much larger than the later values, for devices with larger buffers.
Does it make sense that some parts of the file will have significant bitrate variations? A still frame uses almost no bandwidth; an action scene uses tons. I have some good visualizations if you’re interested.
Thanks to everyone for your great explanations and for taking the time to reply to my question.
I now know the reason this movie example is showing 17Mbps in the Dashboard is due to the fact I only have a 20MB (the default) buffer size. Increasing this to 100MB now shows a much lower value of 7Mbps.
Once again, thanks everyone.
Mod-Edit: moved this to the hopefully correct thread