Self-hosting a media server is one of the most common reasons people look at a cheap VPS, and also one of the fastest ways to waste money. The deciding factor is not the library size or the software — it is whether your clients can play the files as stored. Direct play is nearly free. Transcoding is a CPU workload that shared vCPU plans cannot serve economically.
This breakdown quantifies both sides: measured transcode throughput per plan tier, monthly bandwidth in gigabytes, storage pricing per terabyte, and the point at which rented hardware beats a VPS. If you already have a library in a portable format, a $6–10 server will serve it well. If you need live multi-user transcoding, the VPS is the wrong purchase.
Direct Play vs Transcoding: The Line That Decides the Bill
When the client can decode the file exactly as stored, the server only sends bytes. That is direct play, and it costs roughly 20–60 MB RAM for buffering plus negligible CPU — an entire Library scan uses more processing than a week of playback. When the client cannot decode, the server decodes, resizes, and re-encodes in real time. That is where a budget plan collapses.
Most clients handle H.264 in MP4 at up to 1080p natively, including browsers and older smart TVs. H.265/HEVC, AV1, 10-bit colour, and unusual audio codecs force a transcode on clients that lack hardware support. A single subtitle burn-in is enough to force a full video transcode even when the video track would otherwise direct-play.
Measured Transcoding Throughput by Plan
Throughput is expressed in multiples of real time: 1x keeps up with playback, anything below it buffers. The figures below are typical for shared, non-dedicated vCPU at 1080p 8 Mb/s source, single stream.
| Plan | Price/mo | 1080p H.264→H.264 | 1080p HEVC→H.264 | 4K →1080p |
|---|---|---|---|---|
| 1 vCPU / 1 GB | $3–5 | ~0.7x (stutters) | ~0.3x | unusable |
| 2 vCPU / 2 GB | $5–9 | ~1.4x | ~0.6x | unusable |
| 4 vCPU / 4 GB | $10–18 | ~2.8x | ~1.2x | ~0.5x |
| 4 vCPU dedicated + iGPU | $40–80 | 10x+ | 6x+ | 2x+ |
| Home N100 mini-PC (owned) | $0 + power | 8–12x | 5–8x | 2x |
Fair-use CPU policies make the mid tiers worse than the raw numbers suggest. A provider allowing 25% sustained utilisation per core means a 4-vCPU plan delivers about one sustained core, which is enough for a single 1080p H.264 transcode and nothing more. The arithmetic behind these throttles is covered in detail in our look at how shared-core budget plans handle sustained CPU load.
The Bandwidth Bill Nobody Budgets For
A 1080p direct-play stream consumes 3–6 GB per hour. Two hours of evening viewing across two household streams is 12–24 GB a day, or 360–720 GB a month. Most budget plans include 1–4 TB, so a light household fits. A family streaming daily from outside the home will not: four hours a day at 6 GB is 720 GB monthly from a single stream.
Overage pricing varies wildly. Some providers charge $1–3 per TB, which is tolerable. Others throttle to 10–50 Mbit/s after the cap, which is fine for 1080p direct play but ruins a second stream. A few suspend the instance. Read the overage clause before you upload 400 GB of media — the policy matters more than the allowance.
Storage Architecture: Where the Money Actually Goes
Media libraries are large, so where bytes live determines the monthly cost more than any other decision. Budget plans cap boot disks at 40–80 GB, which holds roughly 30–60 films at 1080p. Three practical options exist, and the price gap is enormous.
| Storage option | Cost per 1 TB/mo | Latency | Best for |
|---|---|---|---|
| Included boot disk | $0 (capped 40–80 GB) | Fast, local NVMe | Small libraries only |
| Block volume add-on | $50–$100 | Fast, local | Up to ~500 GB |
| Object storage via rclone | $6–$23 | 50–300 ms, needs cache | Large libraries |
| Home NAS over VPN | Hardware cost only | Depends on uplink | Best if home upload is fast |
For anything beyond a few hundred gigabytes, object storage mounted with rclone is the only architecture that keeps a budget plan economical — 20 to 50 times cheaper per terabyte than block volumes. Keep the metadata database and thumbnail cache on local NVMe and the media in the bucket. Direct play from object storage works well with a modest local read cache; transcoding from it does not, because the read pattern is random and latency-sensitive.
Making It Work on a Budget VPS
If you accept the direct-play constraint, a $6–10 plan serves a personal library well. The configuration matters more than the hardware tier.
Pre-transcode the library once. Convert everything to H.264/AAC MP4 at a resolution your clients support, on your desktop, then upload. That single step removes the CPU problem permanently and lets a 1 vCPU plan serve multiple simultaneous streams. Cap remote quality in Jellyfin so clients never request a transcode the CPU cannot sustain. Store audio in a client-friendly format — AAC stereo — so audio downmixing never forces a video transcode. Disable subtitle burn-in and prefer text-based subtitles that clients render locally.
Put a reverse proxy in front of Jellyfin for TLS termination and HTTP/2, and consider a CDN for remote viewers if the provider’s egress is metered. A CDN at $0.01–$0.05/GB is not cheaper than included transfer, but it is cheaper than overage at $3/GB and it absorbs the burst when three people start a stream at once.
Jellyfin vs Plex on a Tight Plan
Both run on a budget VPS, but they differ in where work happens. Jellyfin is fully open source and lets you disable transcoding entirely — the single most important setting on shared vCPU. Plex pushes more processing to clients and offers better apps, but its hardware transcoding requires a Plex Pass and an iGPU the plan does not have.
Memory is the other differentiator. Jellyfin’s scanner and metadata refresh can spike past 1 GB on a large library; Plex is somewhat steadier. On a 2 GB plan neither is a problem. On 1 GB, schedule library scans for off-peak hours and cap the scanner’s parallel tasks.
When a Budget VPS Is the Wrong Tool
Be honest about three cases. Real-time transcoding for multiple users needs a dedicated box with Quick Sync or an NVIDIA encoder — no amount of software tuning rescues shared vCPU. A library past 500 GB makes block storage uneconomical and object storage latency visible in the UI. And if your household streams several terabytes a month, overage or throttling will erase the savings versus a home setup.
For everyone else — a pre-converted personal library, one or two viewers, occasional remote access — a small VPS is an excellent home for Jellyfin. It is always on, has real upload bandwidth, and costs a fraction of a dedicated server. Check RAM headroom for the media indexer on the vetted budget VPS provider list before you commit, and price the storage add-on separately — that line item, not the server, determines your true monthly cost.


