Plex & Streaming

Do You Need a GPU for Jellyfin? Usually Not, Here's What Actually Matters

Most remote Jellyfin buffering isn't a hardware problem, it's an accidental transcode. Here's how to stay in Direct Play so modest hardware is plenty.

Whenever a remote Jellyfin server starts buffering, the first instinct is "I need a beefier box" or "I need a GPU." Most of the time, you don't. The real problem is the server transcoding when it shouldn't be, and that is a config problem, not a hardware one.

We run media servers for a living, so we see this every day. Here is how to tell what is happening, and how to keep your setup off the transcode path so modest hardware is plenty.

The one decision that drives everything

Jellyfin can deliver a file four ways, cheapest to most expensive for your server:

Method What it does Server cost
Direct Play Sends the file untouched Almost none
Remux Changes the container only, audio and video untouched Low
Direct Stream Re-encodes audio only, video untouched Low to medium
Transcode Re-encodes the video stream High

Only the last one re-encodes video, and that is the only part that needs real horsepower. Stay in Direct Play and even a small CPU only box is fine. The whole game is not kicking off a video transcode by accident.

What actually forces a transcode

Three things, and you control all of them:

Fix those and you have solved most remote buffering without spending a cent on hardware.

Keep playback in Direct Play

Do this and a plain CPU only box handles a household fine, because it is hardly ever transcoding.

If you genuinely do need to transcode

Then yes, you want hardware acceleration, with two honest caveats.

First, most remote, VPS, and shared boxes don't even have a usable GPU. Intel chips ending in F have no integrated graphics, and plenty of Xeon and EPYC servers ship without an iGPU. So for a lot of people the real answer is to lean on Direct Play, not to go GPU shopping.

If you do have a GPU:

And if you do transcode, put the transcoding temp path on local SSD or NVMe, not the same NFS or SMB mount as your library, or you will stutter while the GPU sits idle.

If your library is on a network mount

Real time monitoring uses inotify, and NFS and rclone mounts do not fire inotify events, so newly added files never appear until a scan runs. Use a scheduled library scan, or have your import tooling call the Jellyfin scan API when an import finishes.

Quick checklist

FAQ

Do you need a GPU for Jellyfin?

Usually not. If your clients can Direct Play your files, the server barely does any work and a normal CPU is plenty. You only need a GPU when you regularly transcode, especially 4K or HDR, because software transcoding of those can't keep up in real time.

Why does my Jellyfin server only buffer when I watch remotely?

Remote clients hit your upload bandwidth and are more likely to trigger a transcode (a lower bitrate cap, an unsupported codec, or subtitles). Local clients on gigabit usually Direct Play. If remote buffers, check whether the session is transcoding and whether you have set a sensible remote bitrate limit.

How do I stop Jellyfin from transcoding?

Keep your media in formats your clients support, use text subtitles instead of image based ones, keep a 1080p copy for remote viewing, and set the internet streaming bitrate limit below your upload. That keeps playback in Direct Play, which is the cheap path.

Want this handled for you?

Here is the nice part: most of this is config, not hardware, which means you can get great Jellyfin performance on modest, managed hosting. That is our whole thing at Bytesized Hosting. Every plan runs the same full Jellyfin and arr stack, set up with sane Direct-Play-friendly defaults, and there is a real support team for when something acts up. No hardware for you to babysit.

If you would rather run it yourself, everything above is what we'd set up anyway.

15+ years of seedbox hosting 5.0/5 Trustpilot (248 reviews) 67+ one-click apps

Ready to Get Started?

Set up your own media server in under two minutes.