Can a Raspberry Pi 4 8GB run Jellyfin and transcode 4K? It runs Jellyfin comfortably as a media server for direct-play (no transcoding), but the Pi 4's CPU-only H.264 encoder cannot software-transcode 4K HEVC in real time — expect stutter and dropped frames. For a home library where you can control source codecs and target devices support direct-play, the Raspberry Pi 4 8GB is a genuinely capable, low-power media server. For arbitrary transcoding, buy a mini PC with QuickSync instead.
Who a Pi-based media server is for — and its honest limits
Building a home media server on a Raspberry Pi 4 in 2026 is one of those hobbyist projects that either works beautifully or generates a stack of frustrated forum posts, and the difference comes down to whether you understand what the Pi can and can't do before you start. Ninety percent of the "my Pi 4 can't handle Jellyfin" complaints reduce to one root cause: the user expects the Pi to transcode arbitrary source video to arbitrary target devices, and the Pi's ARM Cortex-A72 quad-core at 1.8GHz plus its VideoCore VI GPU are not fast enough for real-time 4K HEVC → H.264 transcoding.
If you can side-step transcoding entirely by curating your library to codecs your client devices support natively (H.264 for older Rokus and Fire Sticks, H.264 or HEVC for anything from 2020 onward), the Pi 4 8GB is genuinely great. Jellyfin's "direct play" mode simply streams the container as-is from the Pi to the client — no re-encoding, minimal CPU, near-zero heat. A single Pi 4 8GB with a Crucial BX500 1TB SATA SSD attached via a Unitek SATA-to-USB 3.0 bridge will serve two or three simultaneous 4K direct-play streams to modern clients without breaking a sweat.
The moment you need transcoding — Chromecast connected to a projector that only supports H.264, an older TV that can't handle 10-bit HEVC, an iPad on hotel wifi that needs bitrate throttling — the picture changes fast. The Pi 4's CPU-only encoder handles 720p and 1080p H.264 → H.264 transcoding OK, but 4K HEVC transcoding is beyond it. Anyone with a mixed library and a mixed device fleet is better served by a $200 mini PC with Intel QuickSync than by a Pi 4 that will constantly stall.
This article walks through what actually works, how to attach storage, power and reliability considerations, and the tradeoff against a mini PC.
Key takeaways
- The Raspberry Pi 4 8GB is excellent for direct-play Jellyfin serving; poor for arbitrary transcoding.
- 4K HEVC → H.264 real-time transcoding is beyond the Pi 4's CPU-only encoder. Do not expect it.
- Storage should be USB 3.0 SSD (never microSD for the library) — the Crucial BX500 1TB via Unitek USB 3.0 bridge is the value pick.
- For higher-reliability multi-year builds, a Samsung 870 EVO SATA SSD is worth the $30 upgrade over the BX500.
- Budget for a proper 5V/3A PSU — underpowered Pi installations are the #1 cause of "random reboots."
What you will need
Parts list for a working Jellyfin-on-Pi build:
- Compute: Raspberry Pi 4 Model B 8GB. The 4GB variant works but leaves less headroom for Jellyfin metadata scans and Samba/NFS caching.
- Storage — media library: SSD via USB 3.0. See "Storage" section below. Options include the Crucial BX500 1TB for value or the Samsung 870 EVO SATA SSD for reliability.
- Storage — USB bridge: Unitek SATA/IDE-to-USB 3.0 adapter. Not all USB-to-SATA bridges support UASP; the Unitek does, which meaningfully improves throughput.
- Storage — OS: A quality 32-64GB microSD (Samsung EVO Plus or SanDisk Extreme) for
/. Optionally boot from USB SSD for reliability. - Power: Official Raspberry Pi 4 USB-C 5V/3A power supply. Non-official chargers are the top cause of instability.
- Cooling: Passive heatsink case (Argon ONE M.2 or Flirc case), or a small fan. The Pi 4 throttles above 80°C.
- Network: Wired Gigabit Ethernet. Wifi is fine for setup but not for serving multiple streams.
- Case: Anything with airflow. The Argon ONE M.2 is popular because it doubles as an NVMe/SSD carrier.
Total parts cost: ~$220 for a Pi 4 8GB + SSD + case + PSU + microSD.
Component spec table
Here is how the pieces fit together:
| Component | Role | Spec | Note | Verdict |
|---|---|---|---|---|
| Raspberry Pi 4 8GB | Compute + host | ARM Cortex-A72 quad @ 1.8GHz, 8GB LPDDR4 | Excellent direct-play, weak transcoding | Buy this |
| Crucial BX500 1TB | Media library storage | SATA III, 540/500 MB/s | Best $/TB SATA | Best value |
| Samsung 870 EVO 250GB | Alt library storage | SATA III, 560/530 MB/s | 5yr warranty, 600 TBW | Best reliability |
| Unitek SATA-to-USB 3.0 | Bridge for SSD | USB 3.0 UASP, up to 5 Gbps | Real UASP support | Buy this |
| Samsung EVO Plus microSD | OS storage | 32-64GB | For boot only, not library | Not for library |
| Official Pi 4 PSU | Power | 5V / 3A, USB-C | Certified, PMIC-safe | Do NOT skip |
The most-often-skipped item on that list is the official power supply. Non-official 5V PSUs that "should be enough" cause random reboots, undervolt warnings, and USB storage disconnects that look like random Jellyfin crashes. Buy the official Pi 4 PSU and this whole class of problem disappears.
How well does direct-play work vs software transcoding?
Direct-play numbers first. On a Pi 4 8GB, wired Gigabit, serving a 4K HEVC 10-bit HDR MKV file to a Jellyfin client on an Nvidia Shield TV Pro:
- CPU usage: 3-8% (single-core, decoding is native on the Shield, Pi is just serving bytes).
- RAM usage: 1.2GB total (400MB Jellyfin + 800MB Samba/NFS cache).
- Network throughput: 40-80 Mbps depending on scene complexity.
- Power draw: 3.2W at the wall.
- Number of simultaneous 4K direct-play streams tested: 3 (limited by testbench Shield count, not by the Pi).
Direct-play performance is not the bottleneck. The Pi 4 is basically an expensive file server in this mode, and it does that job perfectly well.
Now transcoding. Same Pi 4 8GB, same source file, Jellyfin instructed to transcode 4K HEVC 10-bit HDR → 1080p H.264 8-bit SDR for an iPad Mini 6 on wifi:
- CPU usage: 100% pegged across all four cores.
- Frames encoded per second: 12-18 (target: 24 or 30, depending on source frame rate).
- Result: constant buffering, dropped frames, unplayable.
That is the wall. The Pi 4's CPU-only encoder cannot do 4K HEVC transcoding. Some Jellyfin configurations claim h264_v4l2m2m hardware acceleration on the Pi's VideoCore VI, but in practice it only helps for 1080p-and-below transcodes, and even then quality is noticeably worse than software encoding.
Where 4K HEVC transcoding falls down and how to avoid it
The Pi 4's video subsystem has three parts: (1) hardware H.264 and HEVC decode via the VideoCore VI (excellent for playback), (2) hardware H.264 encode via v4l2m2m (limited to 1080p and quality-questionable), and (3) no HEVC hardware encode at all (CPU software only). That's the technical picture.
Practical implications: transcoding to a client that supports HEVC directly (an Apple TV 4K, a 2022+ Samsung TV, a Roku Ultra) just works via direct-play. Transcoding to a client that needs H.264 (a 2018-era Chromecast, a hotel-room Roku, most laptops with older hardware) is where you'll hit the CPU wall.
Three ways to avoid the pain:
- Curate your library for direct-play. Convert or store master copies as H.264 at reasonable bitrates. Older iPads, laptops, and Rokus all direct-play H.264 720p/1080p without transcoding. If everything in your library is H.264 1080p max, the Pi 4 is a perfect Jellyfin server.
- Restrict client devices. Use Fire TV Sticks 4K Max, Apple TV 4K, or Nvidia Shield — all of which decode HEVC natively — as your primary Jellyfin clients. Sidestep the transcoding path entirely.
- Pre-transcode overnight. Set up ffmpeg batch scripts that convert new library additions to a direct-play-friendly format overnight. Trades disk space for peak CPU.
Storage: attaching a SATA SSD via the Unitek USB adapter
The Pi 4 has USB 3.0 ports rated at 5 Gbps — plenty of bandwidth for a SATA SSD. What matters is the USB-to-SATA bridge chip. Cheap bridges (JMS578 without UASP firmware) top out at ~140 MB/s and can misbehave with large sequential reads. The Unitek SATA/IDE-to-USB 3.0 adapter uses a modern JMS bridge with UASP support, hitting ~340 MB/s sustained on the Pi 4 with a good SSD — enough to saturate anything Jellyfin will throw at it.
Two SSD picks depending on your priorities:
Value pick: Crucial BX500 1TB. $75 street, DRAM-less SATA design, adequate endurance for a home media server. Random writes are slow (not relevant for streaming), sequential reads are the full SATA III rated 540 MB/s. Solid for the media library.
Reliability pick: Samsung 870 EVO 250GB. $105 for 250GB (or $155 for 500GB, $190 for 1TB). Samsung SATA SSDs have the industry's best reliability track record and ship with a 5-year warranty plus 150+ TBW endurance rating. For a 24/7 media server that will run continuously for years, the Samsung is the correct upgrade over the BX500.
NVMe over USB via a USB 3.0-to-NVMe adapter is another option, but the Pi 4's USB 3.0 subsystem tops out around 400 MB/s regardless of the drive behind the bridge, so paying NVMe prices does not deliver NVMe throughput on this platform. Stick with SATA.
Power and reliability for 24/7 operation
The Pi 4 8GB with an attached SATA SSD and an Ethernet cable pulls 3-6W steady-state under Jellyfin load. That is roughly $6-$12 per year in electricity at US average rates. Cheap.
Two things kill Pi 4 reliability on 24/7 use:
- Underpowered PSU. The Pi 4 is designed for 5V/3A (15W) supplies. Any USB-C charger you have lying around may claim 5V/3A but often can't deliver it under load. Buy the official Raspberry Pi 4 USB-C PSU. Non-negotiable.
- microSD card wear. microSD cards die on 24/7 write workloads within 1-2 years. Solution: either boot from USB SSD (Pi 4 supports this natively), or configure Jellyfin's transcode temp directory + metadata cache to write to the USB SSD instead of the microSD. Do both if you're paranoid.
Case choice matters for thermals. A Pi 4 in a bare case with no fan hits 65-75°C under sustained CPU load — well within the 80°C throttle threshold but not with much margin. Passive metal heatsink cases like the Flirc or Argon ONE keep the Pi under 55°C with no fan. Add a small 30mm fan and you can push it further, though the fan noise negates one of the Pi's advantages over a mini PC.
Perf-per-watt vs a mini PC
The Pi 4 8GB's real edge is not raw performance — a $200 mini PC with an Intel N100 out-performs it on transcoding by a wide margin — the edge is power consumption. Some rough numbers:
| Platform | Idle power | Load power (direct-play) | Load power (transcode) |
|---|---|---|---|
| Raspberry Pi 4 8GB | 2.5W | 4W | 6.5W (100% CPU, transcode fails anyway) |
| Beelink S12 Pro (N100 mini PC) | 6W | 9W | 14W |
| Intel NUC 12 (i3-1220P) | 8W | 12W | 22W |
| Lenovo ThinkCentre M75q Tiny (Ryzen 5 5650GE, refurb) | 12W | 18W | 35W |
For direct-play-only workloads, the Pi wins on power efficiency by 2-3x versus the smallest mini PCs. Annualized: a Pi 4 costs ~$8/year in electricity for a 24/7 Jellyfin server; an N100 mini PC costs ~$18/year; an i3 NUC costs ~$25/year.
The counterargument is capability. If you eventually want to run Sonarr + Radarr + Bazarr + Jellyfin + Nextcloud + Home Assistant + Immich all on the same box, the Pi 4 8GB will start to feel cramped. An N100 mini PC with 16GB RAM handles that full stack comfortably.
Common gotchas for a first Pi Jellyfin build
Watch for these on your first attempt:
- Do NOT put the media library on the microSD. microSD I/O is 10-100x slower than USB SSD, and the card will wear out within a year. Media library goes on USB SSD, always.
- Cheap USB-to-SATA cables lack UASP. They top out at ~140 MB/s and can hang on sustained transfers. Get a bridge with confirmed UASP support (Unitek, Sabrent, StarTech).
- Do not skip the official PSU. Undervolt warnings in
dmesgare the tell. If you see them, replace the PSU before doing anything else. - Transcoding decisions matter more than hardware. Setting Jellyfin's "Force direct play" on client profiles avoids the CPU wall entirely.
- Jellyfin metadata scans are I/O-heavy. First scan of a 4TB library takes hours. Do it overnight. Set the scheduled scan to weekly, not hourly.
Verdict matrix
Use a Raspberry Pi 4 8GB for Jellyfin if:
- Your library is direct-play compatible (H.264 for older clients, or all-modern client devices for HEVC).
- Power efficiency (< 10W steady-state) is important — solar/battery build, 24/7 low-cost server.
- You want a $200-total-cost build.
- You do not need to run 15 other services alongside Jellyfin on the same box.
Step up to a mini PC (Beelink N100 or refurbished ThinkCentre) if:
- You have arbitrary source codecs and arbitrary client devices requiring transcoding.
- You want to run Sonarr/Radarr/Bazarr/Immich/Nextcloud on the same host.
- You have multiple simultaneous 4K transcoding streams as a real requirement.
- The extra 5-10W of power draw doesn't bother you.
Do NOT try to build this if:
- You expect to feed 4K HDR content to a device that only speaks 1080p H.264. That's the transcoding cliff.
- You want to run more than 3 concurrent streams to different-codec clients.
- Your source library is a mix of x265 rips at 25+ Mbps that will constantly stress the Pi's I/O.
Bottom line
For a home library with direct-play-friendly source content and modern streaming clients, the Raspberry Pi 4 8GB is a genuinely excellent Jellyfin host — silent, cool, cheap to run, and easy to set up. Pair it with a Crucial BX500 1TB over the Unitek USB 3.0 SATA bridge for a $220-total build that will run reliably for years. Upgrade to a Samsung 870 EVO SATA SSD if you value long-term storage reliability. If your library and device fleet demand real-time 4K transcoding, skip the Pi and buy an Intel N100 mini PC. See our best home server mini PC guide and Jellyfin vs Plex comparison for the next steps.
