Configured at the client level.
Details are spread throughout the other (very long) thread. This is what I’ve been able to discern from occasionally reading the thread and experimenting with a Shield & FireStick.
Plex is still working on this, so expect modifications. Also, different devices have different capabilities/limitations, so what is on Android TV may be different than Roku, AppleTV, etc.
Here’s what happens with Android TV:
Two choices, which I’ll call “old” and “new.” “New” is now default, user can change to “old” if desired.
Old is what you see now on other clients, except the b/w limit is set to max instead of 720p.
New is now the default. It is a reworking of “auto adjust quality.” My Android TV clients (Shield, FireStick) switched to “new” when the client updated & Plex enabled the feature.
The client defaults to max quality. The user can manually select a different level if desired.
Plex will try to direct play, then transcode if needed to get under any bandwidth limit.
Plex monitors the stream. It will prompt the user to upgrade/downgrade bandwidth if the quality changes. The user can accept/reject the offer.
Example:
FireTV configured to use “new” method, with manually selected bandwidth limit of 8 Mbps (configured in client settings).
User streams 30 Mbps Blu-ray rip.
Server transcodes to get under 8 Mbps limit.
During course of movie, Internet connection quality degrades.
User sees prompt in upper right corner of screen saying something like “connection has degraded, do you want to lower quality?” (not the real wording, but you get the idea). If accepted, PMS transcodes to a lower bitrate. If ignored, the prompt disappears in a few seconds and the stream remains at 8 Mbps.
Later on, Internet connection quality improves.
User sees a prompt offering to upgrade quality. They can accept or ignore. If they ignore, stream stays at lower bitrate. If they accept, it moves to a higher bitrate, but will never exceed 8 Mbps, the upper limit they configured in Plex client settings.