Media server
Jellyfin VPS requirements: what you can run without a GPU
Jellyfin is a free, open-source media server, the self-hosted alternative to Plex and Emby. Jellyfin itself is light. The expensive part is transcoding: converting a video on the fly when a player can't play the original file. Ordinary VPS plans have no GPU, so every transcode lands on shared vCPUs. On a VPS, the real question is how often your players will force a transcode.
Sizing guide
Our recommendations, derived from the sourced figures below. Not measurements.
| Scenario | RAM | vCPU | Why |
|---|---|---|---|
| Direct play only, small library, 1–2 viewers | 2 GB + swap (4 GB is the official headless floor) | 2 | Direct play sends the file unchanged, so the CPU barely works, and Jellyfin idled at 140 MiB in one test. Library scans are the RAM spike (ffprobe per file), so keep swap on and limit scan threads on small plans. |
| Mostly direct play, an occasional 1080p transcode | 4 GB | 4 | One 1080p software transcode peaked at 665.6% CPU running 2.76x faster than realtime on a laptop i5, which works out to roughly 2.4 of those threads at realtime. Shared VPS vCPUs vary in speed, so 4 vCPUs is the safe floor for one stream. This is our estimate, not a measurement. |
| Several viewers, or 4K/HDR libraries | 8 GB | 8+, or not a VPS | HDR tone-mapping in software can outrun even a 16-core desktop CPU. For this, Jellyfin recommends a GPU: an Intel iGPU home server, a GPU server, or rffmpeg to a machine with hardware acceleration. |
Official requirements
| Item | What the project says | Source |
|---|---|---|
| RAM | "At least 8GB is recommended for the average deployment. For a Linux server running without a GUI, 4GB may be enough" | Jellyfin docs: Hardware Selection checked Oct 23, 2026 |
| Servers without GPUs | "Not having a GPU is NOT recommended": CPU video transcoding is very demanding and HDR-to-SDR tone-mapping makes it worse; depending on settings, even a Ryzen 9 5950X may not handle a single stream | Jellyfin docs: Hardware Selection checked Oct 23, 2026 |
| CPU | With hardware acceleration configured, "any modern CPU with 4 threads" should handle the rest (audio transcoding, older codecs). HEVC, VP9 and AV1 "can be VERY demanding" without a hardware decoder | Jellyfin docs: Hardware Selection checked Oct 23, 2026 |
| Storage | 100 GB SSD for the OS, Jellyfin files and transcoding cache. Rule of thumb for the transcode cache: your largest media file times your maximum concurrent streams. Media storage can be a network share or mounted cloud storage | Jellyfin docs: Hardware Selection checked Oct 23, 2026 |
| Network | At least 20 Mbps upload for remote access. With under 100 Mbps total upload, cap Jellyfin at 70% of your upload speed | Jellyfin docs: Hardware Selection checked Oct 23, 2026 |
| CPU instruction set | Since Jellyfin 10.11, x86 CPUs must support SSE4.1 (Intel Penryn 2007 or AMD Bulldozer 2011 and newer) | Jellyfin docs: Hardware Selection checked Oct 23, 2026 |
| Playback types | From lightest to heaviest: Direct Play (file sent unchanged, almost no load), Remux (container changes only), Direct Stream (audio transcoded, video untouched), Transcode (video re-encoded). The dashboard shows which one a session uses | Jellyfin docs: Transcoding checked Oct 23, 2026 |
| Remote transcoding | Without local hardware acceleration you can hand transcodes to another machine with rffmpeg; Linux only, needs SSH plus shared storage for media and the Jellyfin data directory | Jellyfin docs: Hardware Acceleration checked Oct 23, 2026 |
What people report in practice
Individual reports, not controlled tests. Versions, hardware and settings differ, so treat these as data points, not guarantees.
-
Idle at 140 MiB in a single container. Software x264 (veryfast) transcodes of a 60-second 1080p30 H.264 clip: 1080p to 720p at 4 Mbps ran at 3.79x realtime, 480p at 4.93x, full 1080p at 8 Mbps at 2.76x. Peak 665.6% CPU and 673.7 MiB RAM. The tester's estimate: about two concurrent 1080p transcodes on that chip
Jellyfin 10.11.11 with bundled FFmpeg 7.1.4-Jellyfin on an Intel i5-10210U laptop (4 cores / 8 threads), no GPU acceleration. A laptop, not a VPS; library management and playback were not tested
Independent test GR Badhon: Jellyfin 10.11.11 media server, hands-on · checked Oct 23, 2026
-
On a Ryzen 5 3600 with no GPU, a forum member expects one or two 1080p transcodes at once without buffering, CPU at 90%+ while transcoding, and no smooth multi-stream 4K
Jellyfin forum thread, Feb 2024; an opinion from experience, not a benchmark
Forum Jellyfin forum: Running Jellyfin without a GPU · checked Oct 23, 2026
-
A user asking about Jellyfin on a VPS was told to focus on files that direct play; "Folks run Jellyfin servers on lesser provisioned VPS just fine," possibly with two 720p/1080p transcodes, but stay away from 4K unless it will direct play. Another reply warned that VPS plans include a set amount of bandwidth, with overage fees
r/jellyfin thread, May 2023
Reddit Reddit r/jellyfin: Is hardware acceleration without GPU possible? · checked Oct 23, 2026
-
A 12-core Ryzen 9 3900X "can choke big time on a single 4k stream" in software; the advice was to pre-transcode media in the background or pick files that clients can play directly
r/jellyfin thread, Sep 2026
Reddit Reddit r/jellyfin: Is throwing cores at Jellyfin for software transcoding an option? · checked Oct 23, 2026
-
Library scans spawned many ffprobe processes at about 700 MB each, hanging a 4 GB Raspberry Pi 4 while scanning 4K HDR movies. Maintainers considered it fixed in 10.11
Jellyfin 10.9.0–10.9.1, 2024
GitHub GitHub jellyfin/jellyfin #11588: Library scan causes excessive RAM usage · checked Oct 23, 2026
-
After upgrading to 10.11.7, 8 GB (and even 24 GB) was not enough to rescan a 4 TB movie library; ffprobe memory grew without limit on Dolby Vision HEVC files. Limiting scan threads to 2 stopped the crashes. Fixed in 10.11.8 (jellyfin-ffmpeg 7.1.3-5), where a user measured scan RAM only 100–150 MB above 10.11.6
VM install, Apr 2026
GitHub GitHub jellyfin/jellyfin #16549: v10.11.7 and ffprobe RAM usage · checked Oct 23, 2026
Our measurements: coming soon
We haven't measured Jellyfin yet, so there are no VPSfit lab numbers on this page. When we do, they'll show the app version, the plan it ran on, the date, and the raw data. Here's what we'll record:
- Idle RAM of Jellyfin (latest release) on a fresh 2 GB and 4 GB plan with a fixed test library
- Peak RAM and time for a full library scan of that library, with default and reduced scan threads
- Software transcode speed (x realtime) for a fixed 1080p H.264, 1080p HEVC 10-bit and 4K HDR clip on 2, 4 and 8 shared vCPUs
- How many simultaneous 1080p transcodes each plan sustains without buffering
What drives Jellyfin's RAM use
Transcoding, not the server
Jellyfin's own process is small. Video transcoding uses FFmpeg, and on a VPS without a GPU it runs entirely on the CPU. Re-encoding one 1080p stream can keep several cores busy, and HEVC, VP9 or HDR sources make it much heavier. Each transcode also uses some RAM (673.7 MiB peak in one test), but CPU runs out first.
What forces a transcode
The player decides. Each client tells the server which codecs, resolutions and bitrates it supports, and the server only transcodes what the client can't play (Transcoding docs). Common triggers are HEVC or AV1 files on older TVs and browsers, a bitrate limit set lower than the file, and subtitles that have to be burned in. Picking clients that play your files directly does more for a small VPS than any CPU upgrade.
Library scans and metadata
Scanning runs ffprobe on every new file, and Jellyfin's default tasks also extract chapter images and key frames (Tasks docs). These spikes are temporary but can be big: two GitHub issues above show scans exhausting 4–24 GB on buggy releases. Keep Jellyfin updated, and on a small plan lower the scan thread count in the dashboard.
Disk and bandwidth, the hidden costs
A VPS disk is small next to a media library. Jellyfin's docs allow media on a network share or mounted cloud storage, as long as it reads faster than the media bitrate. Also check your plan's included traffic: an 8 Mbps stream is about 3.6 GB per hour (8 Mbps × 3,600 s ÷ 8), so a few viewers can use hundreds of GB a month.
Gotchas on a VPS
- Turn off transcoding you didn't ask for. In the dashboard's Playback section, check what each session is doing (Direct Play, Remux, Direct Stream or Transcode). If a client keeps transcoding, the fix is usually the client's quality setting or a different app, not a bigger server.
- Don't enable hardware acceleration on a plain VPS. Hardware acceleration needs a GPU or iGPU that Jellyfin can reach through QSV, VA-API, NVENC, AMF, VideoToolbox or RKMPP (Hardware Acceleration docs). Shared-CPU VPS plans don't expose one, so enabling it just makes transcodes fail. Check with
lspci -nn | grep -Ei "3d|display|vga". - Avoid H.264 10-bit files. No Intel, NVIDIA or AMD GPU decodes H.264 10-bit (High 10), so it always falls back to software decoding. The docs suggest converting such files to HEVC 10-bit.
- Put it behind a reverse proxy and firewall. Jellyfin's docs say the server "is not designed to be exposed directly to the internet." On a public VPS, put it behind a reverse proxy with HTTPS and firewall everything else.
- Size the transcode cache. Transcoded segments are written to disk. The docs' rule of thumb is your largest file times your maximum concurrent streams, so a 20 GB file and two streams need about 40 GB free on a fast disk.
- Watch the traffic quota. Streaming out of a data center counts against your plan's traffic allowance. Providers in our tables differ a lot here, so check the included traffic on the provider's page before you invite family.
Cheapest plans that fit
Jellyfin, direct play only (headless Linux): 4 GB RAM and 2+ vCPU
Threshold: Official: 4 GB may be enough on Linux without a GUI; direct play needs almost no CPU (source). Only plans with at least 2 vCPUs are listed.
| Provider & plan | RAM | vCPU | Disk | Price / month | Terms | Source |
|---|---|---|---|---|---|---|
| Contabo Cloud VPS 4 | 8 GB | 4 shared | 100 GB SSD | €4.40 excl. VAT · ≈ $4.93 |
24-month term (effective monthly rate) | contabo.com checked Oct 21, 2026 |
| Contabo Cloud VPS 6 | 12 GB | 6 shared | 200 GB SSD (or 100 GB NVMe) | €6.00 excl. VAT · ≈ $6.73 |
24-month term (effective monthly rate) | contabo.com checked Oct 21, 2026 |
| Contabo Cloud VPS 8 | 24 GB | 8 shared | 300 GB SSD (or 150 GB NVMe) | €11.20 excl. VAT · ≈ $12.56 |
24-month term (effective monthly rate) | contabo.com checked Oct 21, 2026 |
| Hostinger KVM 2 | 8 GB | 2 AMD EPYC | 100 GB NVMe | $14.99 intro $8.79 before tax |
Prepaid intro rate; renews at $14.99/mo | hostinger.com checked Oct 21, 2026 |
Jellyfin with occasional 1080p CPU transcoding: 4 GB RAM and 4+ vCPU
Threshold: VPSfit estimate: one 1080p software transcode needed roughly 2.4 laptop-i5 threads at realtime in an independent test (source). Only plans with at least 4 vCPUs are listed.
| Provider & plan | RAM | vCPU | Disk | Price / month | Terms | Source |
|---|---|---|---|---|---|---|
| Contabo Cloud VPS 4 | 8 GB | 4 shared | 100 GB SSD | €4.40 excl. VAT · ≈ $4.93 |
24-month term (effective monthly rate) | contabo.com checked Oct 21, 2026 |
| Contabo Cloud VPS 6 | 12 GB | 6 shared | 200 GB SSD (or 100 GB NVMe) | €6.00 excl. VAT · ≈ $6.73 |
24-month term (effective monthly rate) | contabo.com checked Oct 21, 2026 |
| Contabo Cloud VPS 8 | 24 GB | 8 shared | 300 GB SSD (or 150 GB NVMe) | €11.20 excl. VAT · ≈ $12.56 |
24-month term (effective monthly rate) | contabo.com checked Oct 21, 2026 |
| RackNerd KVM 4 GB affiliate link | 4 GB | 4 shared, Intel Xeon | 130 GB SSD (RAID-10) | $24.59 before tax |
Monthly | racknerd.com checked Oct 21, 2026 |
Plan links marked affiliate link are affiliate links: if you sign up through one, we may earn a commission at no extra cost to you. They go to the provider's site, not to the specific plan; the Source column links the plain pricing page we checked. Affiliate status never changes the order. Disclosure.
Jellyfin, official average deployment: 8 GB RAM and 4+ vCPU
Threshold: Official: at least 8 GB for the average deployment; 4 threads assume hardware acceleration, which a plain VPS lacks (source). Only plans with at least 4 vCPUs are listed.
| Provider & plan | RAM | vCPU | Disk | Price / month | Terms | Source |
|---|---|---|---|---|---|---|
| Contabo Cloud VPS 4 | 8 GB | 4 shared | 100 GB SSD | €4.40 excl. VAT · ≈ $4.93 |
24-month term (effective monthly rate) | contabo.com checked Oct 21, 2026 |
| Contabo Cloud VPS 6 | 12 GB | 6 shared | 200 GB SSD (or 100 GB NVMe) | €6.00 excl. VAT · ≈ $6.73 |
24-month term (effective monthly rate) | contabo.com checked Oct 21, 2026 |
| Contabo Cloud VPS 8 | 24 GB | 8 shared | 300 GB SSD (or 150 GB NVMe) | €11.20 excl. VAT · ≈ $12.56 |
24-month term (effective monthly rate) | contabo.com checked Oct 21, 2026 |
| Hostinger KVM 4 | 16 GB | 4 AMD EPYC | 200 GB NVMe | $28.99 intro $12.99 before tax |
Prepaid intro rate; renews at $28.99/mo | hostinger.com checked Oct 21, 2026 |
Prices checked Oct 21, 2026 on each provider's official pricing page. EUR prices converted at the ECB rate of Oct 20, 2026 (1 € = $1.1215) only for ranking. See all plans on the cheapest 4 GB VPS page.