SparkBox/Guides/Jellyfin buffering

Jellyfin Buffering on 4K Movies: How to Fix It

The movie starts fine, then the spinner shows up every few minutes, usually worse on 4K files than anything else. This isn't one bug — it's almost always one of two things: Jellyfin converting the file on the fly with no graphics chip to help, or the connection between your box and your TV/phone not being fast enough to keep up.

Jellyfin home screen on a SparkBox server
Jellyfin home screen on a SparkBox server

Would rather not dig through transcoding settings? SparkBox turns on hardware transcoding for Jellyfin automatically during setup, so your box's graphics chip handles 4K conversion instead of leaving it to the processor. See the walkthrough →

The 10-second version: Turn on hardware acceleration in Jellyfin's transcoding settings so the graphics chip does the conversion work, not the processor. If that's already on and it still buffers, the problem is your network, not Jellyfin.

Cause 1: Hardware transcoding is off, so the CPU is doing all the work

When a 4K file's format, codec, or bitrate doesn't match what the player (your TV app, phone, browser) can handle directly, Jellyfin doesn't just send the file as-is — it transcodes it, meaning it converts the video in real time while you watch. That conversion is heavy. A modern graphics chip (GPU) has dedicated hardware built for exactly this job and can do it with room to spare. Without hardware acceleration turned on, Jellyfin falls back to doing the entire conversion on the processor (CPU), and a 4K film will outrun most CPUs long before the movie is over. The buffering you see is Jellyfin falling behind and waiting for the next chunk to finish converting.

  1. Open the Jellyfin admin dashboard and go to Playback under Transcoding settings.
  2. Check whether a Hardware acceleration option is selected (for example VAAPI, QuickSync, or NVENC, depending on what graphics hardware your box has) or whether it's set to "None."
  3. If it's set to None, that's very likely your cause. Select the option that matches your hardware and save.
  4. Restart the stream and check the dashboard's active sessions panel again — it should now show the transcode using hardware acceleration instead of software.

Gotcha: Hardware acceleration only works if the right drivers are installed and the graphics chip is actually exposed to Jellyfin by your operating system or container setup. If the option doesn't appear at all, or selecting it makes playback fail instead of fixing it, the drivers or device permissions are the thing to fix, not the Jellyfin setting itself.

Cause 2: Direct Play isn't happening when it should

"Direct Play" means Jellyfin sends the file to your player unchanged — no conversion, no CPU or GPU load, just a straight file transfer. This is always better than transcoding when it's possible, because there's no real-time conversion to keep up with. If a 4K file that should direct-play is instead triggering a transcode, it's worth checking why.

  1. While the movie is playing, open the Jellyfin dashboard and find the active session for that stream.
  2. Look at whether it says Direct Play or Transcode, and if it's transcoding, what reason is given (codec mismatch, bitrate too high, subtitle format, etc.).
  3. If the reason is a specific codec or container your player doesn't support, that's expected — the file genuinely needs converting for that device, and your fix is Cause 1 above (make sure that conversion uses hardware acceleration).
  4. If there's no obvious reason it should be transcoding, check the client app's playback/direct-play settings — some apps are set conservatively and will request a transcode even when the file would have played fine directly.

Cause 3: The connection between the box and the player is too slow

4K files carry a lot of data every second. Even with hardware transcoding working perfectly, or with a file that direct-plays with no conversion at all, the stream still has to travel over your network to reach the TV, phone, or laptop. If that link is weak — Wi-Fi with poor signal, an overloaded router, or watching remotely over a slow internet connection away from home — the data can't arrive fast enough, and you'll see the exact same stalling and buffering as a CPU that can't keep up.

  1. Check the connection type: is the playback device on Wi-Fi, and if so, how strong is the signal where it's sitting? A wired connection (ethernet) to either the Jellyfin server or the playback device, or both, removes this variable entirely.
  2. If you're watching away from home, remember the stream now has to go out through your home internet's upload speed, which is usually much slower than its download speed. A 4K stream can easily exceed what a typical home connection can upload.
  3. Try the same movie on a device connected by ethernet, or on your home network instead of remotely, to confirm whether the network is the actual bottleneck.
  4. If remote 4K playback is the main pain point, consider whether Jellyfin can transcode down to a lower bitrate for those sessions rather than always sending full 4K over a connection that can't carry it.

Gotcha: Hardware transcoding and a slow network can both be present at once. Fixing the CPU bottleneck won't help if the real limit is your Wi-Fi signal, and vice versa — test them separately rather than assuming one fix solved everything.

How to tell which cause you actually have

Rather than guessing, use the Jellyfin dashboard's active sessions view while the problem is happening. It tells you directly whether the stream is Direct Play or Transcode, and if it's a transcode, whether hardware acceleration is being used. Combine that with a quick check of how the playback device is connected to your network:

Frequently asked

Why do my 4K movies keep buffering in Jellyfin?

Most often your 4K file can't be sent to the player unchanged, so Jellyfin converts (transcodes) it on the fly. If hardware transcoding isn't turned on, the processor has to do that conversion alone, and a 4K file is usually too much for it to keep up with in real time, which shows up as buffering.

Does hardware transcoding fix all Jellyfin buffering?

It fixes the CPU-overload cause, which is the most common one. It won't help if the real bottleneck is a weak Wi-Fi connection or a slow link when you're watching away from home, so it's worth checking both.

How do I know if Jellyfin is transcoding or direct playing?

Open the Jellyfin dashboard and look at the active sessions/playback panel while the movie is playing. It will show "Direct Play" or "Transcode" next to the stream, along with the video and audio codec being converted if any.

Why does Jellyfin buffer only on 4K files, not 1080p?

4K files carry far more data per second than 1080p, so they're much more likely to need transcoding and much more likely to expose a slow network link. A 1080p file often slips through as Direct Play while a 4K version of the same movie doesn't.

Skip the transcoding settings entirely

SparkBox sets up Jellyfin with hardware transcoding enabled from the start, so your graphics chip handles 4K conversion instead of your processor hitting a wall mid-movie.

Get SparkBox → Or read the media-server walkthrough →

About this guide: Written and tested by the SparkBox team on a UGREEN DXP4800 Plus and a $7/month Hostinger VPS, both running SparkBox 1.6.847. The causes above are the real ones we've diagnosed in d/sparkbox. If something doesn't match, tell us on YouTube.