Anyone who owns a collection of digitised films, series or concerts (from family DVDs to holiday videos) sooner or later wants to watch it comfortably on the TV, tablet or phone. Jellyfin is a free and open media server that does exactly that: it indexes the files, downloads covers and descriptions, remembers where you stopped watching and streams video to the devices in the house.
Why Jellyfin
Jellyfin started as a fork of Emby when Emby became closed source, and since then it has been developed by a community of volunteers. It has no paid plans, reserved features or mandatory accounts with external services: everything, users included, lives on the home server. There are clients for browsers, Android, Android TV, iOS, some smart TVs, and players such as Kodi through an add-on.
Organising the library
The quality of the experience depends almost entirely on how the files are named. Jellyfin recognises content by matching folder and file names against public metadata databases, so it pays to follow the conventions:
Movies/
Movie Title (1999)/
Movie Title (1999).mkv
Shows/
Series Name (2010)/
Season 01/
Series Name S01E01.mkv
The year in brackets resolves most ambiguities between identical titles. For personal videos, which have no public metadata, you create a "home videos" library in which only folder names matter.
External subtitles with the same name as the video file, followed by the language code (for example .it.srt), are matched automatically.
Direct play and transcoding
The most important concept to understand is the difference between direct play and transcoding.
- Direct play: the client supports the file's video, audio and subtitle formats. The server simply sends the data and the CPU load is almost zero.
- Transcoding: the client does not support something (codec, resolution, image-based subtitles) or there is not enough bandwidth. The server must re-encode the video in real time, a very heavy operation.
This is why the choice of clients matters as much as the server: a player that supports HEVC and the main audio formats avoids most transcodes. Image-based subtitles, such as those on Blu-ray discs, often force you to "burn" them into the video, that is, to transcode.
Hardware acceleration
When transcoding cannot be avoided, the solution is to hand it to the graphics unit's video engine instead of the CPU. Jellyfin supports:
| Technology | Hardware |
|---|---|
| Intel Quick Sync (QSV) / VA-API | Intel processors with integrated graphics |
| VA-API / AMF | AMD graphics |
| NVENC/NVDEC | NVIDIA cards |
| VideoToolbox | Mac |
In my work, the most balanced setup for a household is still a mini PC with a recent Intel processor: it uses little power and handles several simultaneous streams. In Docker you need to pass the graphics device (/dev/dri) to the container and enable acceleration under Playback → Transcoding, selecting the codecs your processor can actually decode.
Users and content control
Each family member can have their own user, with their own watch progress and visible libraries. For children you can restrict which libraries are accessible and set a maximum content rating. For shared TVs, a user with a simple PIN or quick login works well, without exposing the adults' accounts.
Access from outside the home
Watching your library while travelling is handy, but exposure needs thought:
- prefer a VPN or a private network between devices, so Jellyfin stays reachable only from your own devices;
- if you choose public access, put it behind a reverse proxy with HTTPS and disable login for users without a password;
- set a bitrate limit for remote connections in the network settings, so the home line's upload is not saturated.
Remember that the upload speed of a home connection is often the real limit: a high-quality file may need more bandwidth than is available, and the server will be forced to transcode to a lower quality.
Maintenance
- Scheduled tasks (library scans, chapter extraction, trickplay image generation) can be heavy: schedule them at night.
- Cache and metadata take up space and should live on an SSD; video files can sit on spinning disks.
- Backups mainly concern the configuration folder, which holds users, progress and settings: films, if you own the originals, can be rebuilt.
In short
- Jellyfin is free, needs no external accounts and has clients for almost every device.
- File and folder names that follow the conventions are the foundation of a tidy library.
- Direct play is the goal; transcoding should be delegated to graphics hardware.
- Separate users and limits for children make the service suitable for the whole family.
- For remote access, a private network and a bitrate limit are the way to go.