Fix client compatibility before buying more transcoding power when buffering starts because one or a few playback devices cannot Direct Play the library's video, audio, container, or subtitle formats. Upgrade server transcoding capacity first when conversion is unavoidable across many clients, remote bitrate limits regularly require lower-quality streams, or the existing transcode engine cannot keep up in real time. If the network cannot sustain the delivered bitrate, neither upgrade should be first.
This is an upgrade-order decision, not a general “client versus server” contest. The first task is to identify the actual playback path and why it changed. A compatible client can remove work from the server entirely; a faster server only accelerates work that still has to happen.
First Identify Why the Stream Is Not Direct Playing
Start one problem stream and inspect the media server's playback information. Classify it as Direct Play, Direct Stream or remux, audio-only transcode, or video transcode. Then record the reason: unsupported codec, unsupported container, subtitle burn-in, bitrate restriction, HDR tone mapping, or another client capability.
Plex describes Direct Play as sending compatible media without conversion, Direct Stream as repackaging compatible streams, and transcoding as converting media for the client. Its streaming-path overview also notes that subtitles can change an otherwise compatible playback path.
Do not buy anything until this classification is stable. If the stream already Direct Plays and still buffers, client codec support is not the first problem and extra transcode power may never be used. Test network throughput, Wi-Fi quality, server disk reads, and the delivered bitrate instead.
- If the stream Direct Plays, stop the compatibility-versus-transcode comparison and investigate delivery.
- If one client forces conversion because of format support, test a more compatible client or client app.
- If many clients legitimately require conversion, measure server transcode capacity.
- If remote bandwidth forces lower bitrates, treat server conversion and upload capacity as separate constraints.
A Better Client Wins When Compatibility Is the Trigger
A client that natively decodes the library can turn a CPU- or GPU-heavy video transcode into Direct Play. That is a qualitative change: the server no longer has to decode and re-encode the video just to satisfy that endpoint. For one problematic TV or streaming stick, changing the endpoint can therefore solve more than adding server compute.
Jellyfin's current client codec support tables show that compatibility varies across browsers, Android TV, iOS, Roku, Kodi, desktop clients, containers, audio formats, HDR modes, and subtitles. A library can be “standard” in general and still hit a specific endpoint limitation.
The flip condition is fleet size. Replacing or changing one client is attractive when one endpoint causes most transcodes. If five remote users, several older TVs, and mobile devices all need different conversions, solving compatibility one endpoint at a time may cost more operationally than giving the server enough central conversion capacity.
Neither Upgrade Wins When Delivery Is the Bottleneck
Buffering can happen even when the playback format is fully compatible and the server has idle transcoding capacity. A high-bitrate file over weak Wi-Fi, a constrained WAN upload, or a congested client link can starve playback while every compute graph looks healthy.
Android's media documentation lists platform decoding and container support, but supported media formats only answer whether the device can handle a format—not whether the network can deliver the stream fast enough. Compatibility and transport capacity are independent gates.
This is the most important stopping rule in the framework. If a Direct Play session buffers while the server sends data below its capabilities and network measurements show loss or insufficient throughput, do not replace the client for codec reasons and do not buy a larger transcoder. Fix the delivery path first.
Transcoding Power Wins When Conversion Is Unavoidable at Scale
Some households cannot standardize every endpoint or every network condition. Remote users may need lower bitrates, old TVs may lack newer codecs, and family devices may be outside the owner's control. When those conversions are frequent and legitimate, central transcoding capacity becomes the scalable lever.
FFmpeg distinguishes stream copy from decode, filter, and encode work. Its transcoding documentation captures why server power matters only after conversion is required: copying compatible streams avoids codec work, while conversion introduces decode and encode stages and may add filters.
Upgrade the server when measured transcodes fail to maintain real-time speed, the video engine is saturated, or concurrent unavoidable conversions exceed the current system's capacity. Do not use a faster GPU to compensate for one inexpensive client that could have Direct Played the same files.
Subtitles and HDR Can Flip an Apparently Compatible Stream
A device may support the video codec and still trigger heavy processing because of the selected subtitles or HDR requirements. Image-based subtitles may need to be burned into video on some clients, and HDR-to-SDR tone mapping can add another processing stage when the display or client path cannot present the source correctly.
Apple's published playback specifications for Apple TV list supported video formats, profiles, frame rates, HDR modes, and audio capabilities. The device format specifications illustrate why “supports HEVC” or “supports 4K” is not a complete compatibility test; profile, container, HDR, audio, and subtitle behavior can still affect the actual path.
Test the exact failing combination before replacing hardware. Disable subtitles, select a text subtitle, try the SDR version, or change the audio track and watch whether video transcoding stops. If one feature flips the session, fixing that compatibility edge may be cheaper than scaling the whole server.
Compare the Cost of Fixing One Endpoint With Fixing Every Stream
Client upgrades are local fixes. They are efficient when one living-room device causes the problem, and they can reduce server power use for every future session on that endpoint. Their weakness is repetition: every incompatible client may need its own app, configuration, or hardware change.
Server upgrades are centralized. A more capable transcoder can serve several weak clients without changing each endpoint, but the server now owns more power, cooling, driver, and hardware-acceleration complexity. The adjacent ZimaSpace comparison of a compact x86 media server versus an Android TV box provides the broader device-role context; this framework narrows that choice to the cause of buffering.
The decision flips from client-first to server-first as the number of unavoidable conversion cases grows. One incompatible endpoint favors fixing the endpoint. A mixed fleet with frequent remote conversion favors central transcode capacity—provided the network is not the limiting variable.
Use This Upgrade-Order Decision Tree
The framework should end with an executable order, not a generic recommendation. Run the same troublesome title on at least two clients when possible, inspect the server's playback reason, and change one variable at a time so a client limitation is not mistaken for a server limitation.
| Observed playback condition | First action | Why |
|---|---|---|
| Direct Play buffers | Test network and storage delivery | Neither compatibility nor transcode power is active |
| One client forces video transcode | Improve client compatibility first | Can remove the conversion entirely |
| Subtitle selection triggers burn-in | Change subtitle/client path first | A narrow compatibility edge is creating heavy work |
| Many clients require unavoidable transcodes | Upgrade server transcode capacity | One central upgrade serves the whole mixed fleet |
| Remote bitrate must be reduced | Check upload, then transcode capacity | Conversion and WAN capacity are separate gates |
| Transcode speed stays below real time | Upgrade or enable appropriate acceleration | Server capacity is now the measured limiter |
The result should be testable after every step. A client-first change succeeds when the session moves to Direct Play or a lighter Direct Stream path. A server-first change succeeds when required transcodes sustain playback with headroom under the expected concurrent stream count.
If neither change alters the failing stream, return to the first gate and inspect delivery, storage, or the application's reported reason. A decision tree is only useful if it can stop an irrelevant upgrade.
FAQs
Does a Faster Transcoder Improve Direct Play?
No. Direct Play avoids video conversion, so adding CPU or GPU transcoding capacity does not make the client decode the original stream faster. If Direct Play buffers, investigate network delivery, client playback behavior, and storage instead.
Can Subtitles Alone Force Video Transcoding?
Yes. Some subtitle formats or client combinations require subtitles to be burned into the video, which turns an otherwise compatible stream into a video-processing job. Test the same file without subtitles before blaming the video codec.
Should You Replace Every Old Client to Avoid Transcoding?
Not necessarily. Replacing one troublesome endpoint can be efficient; replacing an entire mixed fleet may not be. Keep compatible clients on Direct Play and provision server transcoding for the devices or remote conditions that genuinely cannot avoid conversion.
Fix the Cause That Appears First in the Playback Path
Choose client compatibility first when a small number of endpoints cause avoidable transcodes. The best outcome is not a faster transcode; it is eliminating unnecessary conversion and letting the server send the original media.
Choose transcoding power first when conversion is genuinely required across many devices or remote sessions and the current server cannot maintain real-time processing. Confirm hardware acceleration support and concurrent capacity with the exact codecs, subtitles, HDR modes, and output resolutions your household uses.
If the stream is already Direct Play or the network cannot carry the delivered bitrate, stop comparing these two upgrades. The correct first fix is the earliest measured bottleneck in the playback path, not the component with the larger benchmark number.
Product Comparisons
More to Read

Docker vs Virtual Machine for Plex: Which Deployment Route Fits?
A conditional Plex deployment verdict for Docker, virtual machines, or Docker inside a VM, based on shared operational requirements.

8GB vs 16GB vs 32GB RAM for Plex: Which Tier Fits Your Workload?
Choose 8GB for lean Plex, 16GB for moderate shared apps, or 32GB for VMs and bounded RAM workspaces—only when measurements justify it.

Does Dedicated Hardware Acceleration Give Plex a Meaningful Advantage?
Hardware acceleration wins for supported repeated transcodes; CPU-only remains valid for direct play, rare conversions, and unsupported stages.

