Plex Transcoding Explained — Direct Play vs Direct Stream vs Transcode
Understand when and why Plex transcodes. Optimize to maximize Direct Play and reduce CPU usage.
Transcoding is probably the most misunderstood aspect of running a Plex server. It is the reason a Raspberry Pi can sometimes run Plex flawlessly and other times choke on a single stream. It is why some files play instantly while others buffer endlessly. Understanding how Plex decides to handle your media — and how to influence that decision — is fundamental to a smooth experience.
The Three Playback Modes
When you press play on a Plex client, the server decides how to deliver the file. There are exactly three possibilities, and each has dramatically different implications for server load, quality, and performance.
Direct Play
Direct Play is the ideal scenario. The server sends the file to the client exactly as it exists on disk, byte for byte. No processing, no conversion, no CPU usage beyond reading the file from storage. The video codec, audio codec, container format, subtitles, and resolution all pass through unchanged.
For Direct Play to work, the client device must natively support every aspect of the file: the video codec (H.264, H.265, VP9, AV1), the audio codec (AAC, AC3, EAC3, DTS, TrueHD), the container (MKV, MP4, AVI), and the resolution and bitrate must be within what the device can handle.
Direct Stream
Direct Stream is a partial compromise. It occurs when the video and audio codecs are compatible with the client, but the container format is not. For example, a client might support H.264 video and AAC audio, but not in an MKV container. In this case, Plex remuxes the file, repackaging the streams into a compatible container (usually MP4) without re-encoding them.
Remuxing is very lightweight. It requires minimal CPU because the actual video and audio data is not being changed, only the packaging around it. Quality is identical to the original. Direct Streaming is nearly as good as Direct Play from a performance perspective.
Transcode
Transcoding is the heavy operation. It occurs when the client cannot play the video codec, the audio codec, or both. Plex must decode the original stream and re-encode it into a format the client supports. This is computationally expensive and happens in real time.
A video transcode (converting H.265 to H.264, or downscaling 4K to 1080p) is far more demanding than an audio transcode (converting DTS to AAC). A single 4K video transcode can consume an entire modern CPU. Multiple simultaneous transcodes can bring even powerful servers to their knees.
How to Check What Is Happening
The Plex dashboard (Settings > Dashboard) shows real-time playback information for all active streams. For each stream, you will see one of three labels: Direct Play, Direct Stream, or Transcode. If it says Transcode, it also shows whether the video, audio, or both are being transcoded, along with the source and target codecs.
If you install Tautulli (a popular third-party Plex monitoring tool), you get even more detailed playback history, showing patterns across all your users and files over time. This data can help you identify which files or clients trigger the most transcoding.
Why Plex Transcodes When You Do Not Want It To
Client Quality Settings
The most common cause of unnecessary transcoding is the client's quality setting. Many Plex clients default to a quality level below the original file's bitrate. If the original file is 25 Mbps but the client is set to "8 Mbps 1080p," Plex will transcode to reduce the bitrate, even if the client could handle the original just fine.
Fix this by setting local and remote quality to Original or Maximum in every client's settings. This tells Plex to attempt Direct Play first.
Subtitle-Triggered Transcoding
This catches many people by surprise. Image-based subtitle formats — PGS (common in Blu-ray rips) and VOBSUB (from DVD rips) — cannot be overlaid on the video by most clients. They must be "burned in" to the video, which requires a full video transcode. A file that Direct Plays perfectly with no subtitles will suddenly demand heavy transcoding the moment you enable PGS subtitles.
The solution: use text-based subtitles (SRT or ASS format) whenever possible. SRT subtitles are rendered client-side and never trigger transcoding. If you have PGS subtitles, tools like SubtitleEdit or Bazarr can help you find and download equivalent SRT subtitles.
Client Codec Limitations
Not all devices support all codecs. Older smart TVs and Roku devices may not support H.265 or high-bitrate audio formats like DTS-HD or TrueHD. When a client reports its capabilities to the Plex server, the server compares them against the file and transcodes anything the client cannot handle natively.
Bandwidth Restrictions
When streaming remotely, Plex may transcode to fit within the available bandwidth. If the server's "Remote Stream Bitrate" setting is lower than the file's bitrate, or if the server detects limited upload bandwidth, it will transcode to reduce the stream size. Check Settings > Remote Access and increase the remote stream bitrate to its maximum or "Original" to prevent this.
Optimization Tips
Standardize your media. If you want to minimize transcoding across all your devices, encode your files in the most universally compatible format: H.264 video, AAC stereo audio (with optional AC3 5.1 as a secondary track), SRT subtitles, in an MP4 or MKV container. This combination Direct Plays on virtually every modern device.
Enable hardware transcoding. If you have a Plex Pass, hardware transcoding offloads the work from your CPU to a dedicated encoder on your GPU or integrated graphics. Intel Quick Sync (available on most Intel CPUs with integrated graphics) is particularly efficient and can handle several simultaneous 1080p transcodes with minimal load. Configure this in Settings > Transcoder > Use hardware acceleration when available.
Choose capable clients. Apple TV 4K, NVIDIA Shield, and modern Fire TV devices have broad codec support and rarely trigger transcoding. Older smart TV apps and the web browser player are the most limited clients and trigger transcoding most frequently.
Optimize ahead of time. Plex's "Optimize" feature lets you pre-transcode files into client-friendly formats during off-hours. This eliminates real-time transcoding for those files. Use it for content you know will need transcoding, like 4K HDR files that will be watched on 1080p devices.
Phlix — The Photo Browser for Plex
If you use Plex for photos, Phlix gives you a chronological timeline, year scrubber, 4K AirPlay slideshows, and offline downloads. Free to browse, Pro from $6.99/yr.
Download Phlix FreeiOS 17+ · Works with any Plex Media Server