Not All Devices Are Equal
You can use many different kinds of devices to watch media with Plex. You might have a mobile smartphone that you take with you on the way to work, a tablet you use while relaxing in the house, and a full-featured streaming device in your home cinema. Each of these devices have a different set of ideal needs for playing back media.
- Mobile Phones: Your mobile smartphone has a small, high resolution screen and would best play media that’s been sized for it. You might also like to use your Plex account and stream media over the internet during your commute. A full HD file often isn’t ideal in this case if you’re streaming it over the internet—the higher resolution is largely wasted when viewing on such a small screen and it typically means using more data from your phone’s streaming plan.
- Tablets: Tablets have similar restrictions if you’re streaming media over the internet – you don’t want to use all your monthly mobile data allowance on a single show! Around the house, it can be useful to use less of your WiFi network bandwidth, particularly if there are a few devices sharing the same network.
- Streaming Device: It’s common to attach a Roku, Fire TV, Apple TV, Chromecast, game console, etc. to a television (or use a Plex app available on a smart TV itself). These devices are more commonly wired to the network or connecting using fast WiFi, which means they can typically access the full HD streams with no problems. It’s nice to be able to get that full quality media automatically.
Plex makes juggling all these variables simple by using a combination of Direct Play, Direct Stream, and a smart Transcoder.
Providing the perfect stream
Direct Play, Direct Stream, and Transcoding are designed to provide the perfect media to your device, regardless of what it is. It works like this:
The App Understands the Device
A Plex app understands the device it’s running on. It knows the ideal media resolution, whether it can handle a particular audio format (Dolby Digital, AAC, etc.), and what file format it prefers. When the app connects to a server, it tells the server about itself, so the server knows how to tailor media sent to it.
If an app tells the server that it has capabilities that exactly match the file you want to watch, the file can be sent to the app exactly as-is, so the work done by the server is almost zero.
If an app tells the Server that it is capable of handling the video and audio streams in the source file, but it can’t handle the file container (.mkv, .avi, etc), the server will copy the streams into a new compatible container and send that to the app. There’s a little more work required by the server, but not a lot.
If an app tells the server it can’t handle the video or audio in the stream at all, the server will convert the incompatible tracks to a compatible one and send that to the app. This process is called Transcoding and can be quite powerful:
- reduce the resolution for playback (e.g. a 4K source video streamed out at a lower bit rate 720p to reduce the data used)
- convert from an incompatible video (or audio) format to one compatible with the playback device
- if the video stream is compatible, but the audio stream is not, the video can be left alone and streamed unaltered, while the audio is converted to be compatible (or vice versa)
Note: Subtitles can introduce a wrinkle here sometimes. Even if a file’s audio, video, and container are all compatible with a Plex app, if a subtitle stream is selected and is not compatible with the Plex app, then the server will “burn in” the subtitle text within the video. This requires a full transcode of the video stream.
The process of transcoding is CPU intensive, but most modern CPUs are capable of handling one or more full transcodes.