Software / Compute

Jellyfin 10.11.11 media server

Hands-on Jellyfin 10.11.11: 4.9s to API ready, 140 MiB idle, and 2.8x to 4.9x realtime CPU transcoding with no GPU.

Acquisition
Free and open source, GPLv2
Tested for
1 days
Disclosure
Nothing here is sponsored

As tested

Specifications as tested
Version Jellyfin 10.11.11, single container
Transcode engine Bundled FFmpeg 7.1.4-Jellyfin, software x264
Tested on i5-10210U, 4 cores / 8 threads, no GPU acceleration
Boot to API 4.9 s from up -d
Idle memory 140 MiB, single container
Transcode peak 665.6% CPU, 673.7 MiB
Image size 2.27 GB
Restart recovery 3.3 s

Jellyfin answered its API 4.9 seconds after docker compose up -d and then sat there using 140 MiB. On the same laptop, Immich wanted 2.4 GiB to do nothing.

4.9s
To API ready
140MiB
Idle memory
3.79x
1080p to 720p
3.3s
Restart recovery

How this was tested

Third stack on the same box, so all three sets of numbers compare directly: an i5-10210U with four cores and eight threads, 7.62 GiB handed to Docker Desktop 29.6.2 on WSL2. Immich and Paperless were both stopped first.

Jellyfin 10.11.11 in a single container, with its bundled FFmpeg 7.1.4. One image, no database service, no message broker, no worker containers. That architectural simplicity is most of the story here.

Installation

Jellyfin 10.11.11 setup wizard first screen asking for server name and display language

The wizard opens on server name and language, pre-filled with the container hostname. From a cold docker compose up -d to this screen was under five seconds.

One image, one compose file, three bind mounts for config, cache and media. Nothing to configure before first boot and no database password to change.

56.2s
Cold image pull
1.6s
up -d returns
4.9s
API responding
2.27GB
Image size

The 4.9 seconds is not a typo. Immich took 24.4 seconds and Paperless 49.1 on the same hardware. A single process with a local database has far less to bring up than a stack carrying Postgres, Redis, a machine-learning worker and an OCR pipeline.

docker-compose.yml
# Verified on Windows 11 + Docker Desktop 29.6.2 (WSL2), 9 Aug 2026
services:
  jellyfin:
    image: jellyfin/jellyfin:latest
    container_name: jellyfin
    ports:
      – “8096:8096”
    volumes:
      – ./config:/config
      – ./cache:/cache
      – ./media:/media:ro
    restart: unless-stopped
    environment:
      – TZ=Europe/London
Jellyfin setup wizard admin account step asking for username and password

Step two is the admin account, and it is a hard gate: no part of the interface is reachable until it is filled in. That is where this test stopped, which is why the sections below cover the server and its transcode engine rather than the library experience.

Mounting the media directory read-only is worth doing. Jellyfin has no reason to write to your library, and a media server that cannot delete your films is a media server that cannot delete your films.

Transcoding on a CPU with no GPU

Chart showing 1080p to 480p at 4.93x realtime, to 720p at 3.79x, and to 1080p 8Mbps at 2.76x on software x264

I generated a 60 second 1080p30 H.264 clip inside the container, then pushed it through the three conversions a client typically forces when it cannot direct play.

Dropping to 720p at 4 Mbps ran at 3.79x realtime. Down to 480p, 4.93x. Re-encoding at full 1080p and 8 Mbps, the heaviest case, still managed 2.76x.

Peak CPU across those runs was 665.6%, with memory topping out at 673.7 MiB. In practice that means roughly two simultaneous 1080p transcodes on this chip before headroom runs out, or three or four lighter 720p ones. Direct play, where no transcode happens at all, costs almost nothing.

This is software x264 at the veryfast preset. Quick Sync on this generation of Intel would change the picture entirely, and is the single upgrade worth pursuing if you expect several concurrent streams.

Against the other two stacks

Comparison chart: Jellyfin boots in 4.9 seconds and idles at 140 MiB against Paperless at 1187 MiB and Immich at 2478 MiB

At rest, Jellyfin uses about a ninth of what Paperless needs and a small fraction of Immich. It restarts in 3.3 seconds. On a small home server it is effectively free until somebody presses play, and then it is briefly expensive.

That profile is the opposite of Immich, which holds 1.66 GiB in its server container whether or not anyone is looking at a photo.

Stability

docker compose restart had the API answering again in 3.3 seconds. The container settled back to 140.3 MiB afterwards, identical to before, and nothing needed clearing.

Who should run it

Run it if you have a media collection on a disk and want it on your TV without a subscription, and especially if your server is already doing other jobs. Its idle cost is so low that it is hard to justify not running it.

Skip it, or budget for hardware acceleration, if several people will stream transcoded video at once. A 15 watt laptop chip handles two 1080p transcodes, not six.

What holds up

  • Answered its API 4.9 seconds after up -d, and restarts in 3.3, faster than anything else tested here.
  • Idles at 140 MiB in one container, with no separate database, broker or worker services to babysit.
  • Software transcoding still hit 3.79x realtime for 1080p to 720p on a 15 watt laptop chip.

What does not

  • Transcoding peaked at 665.6% CPU, so a laptop-class chip realistically manages two 1080p streams at once.
  • The 2.27 GB image is large for what is architecturally a single service.
  • Setup requires creating an admin account before any of the interface is reachable.

Common questions

On an i5-10210U with software x264 and no GPU, roughly two simultaneous 1080p transcodes. Peak usage during a single 1080p to 720p job was 665.6% CPU across eight threads. Direct play, where no transcoding happens, is nearly free.

It idled at 140 MiB and peaked at 673.7 MiB while transcoding. That is dramatically lighter than Immich at 2.42 GiB or Paperless at 1.16 GiB, and it will run happily on a 2 GB box.

No, but it is the upgrade worth making if several people stream at once. Software x264 managed 2.76x to 4.93x realtime here depending on target resolution. Quick Sync or a discrete GPU changes that picture entirely.

Not tested here, so no claim either way. What I can say is that on this hardware Jellyfin idled at 140 MiB in a single container with no external database or broker, which is a genuinely small footprint for a media server.

Yes. Jellyfin has no reason to write to your library, and a read-only mount means a misconfiguration or compromise cannot delete your collection.