Jellyfin: The Free Software Media Server
Jellyfin is a media server: point it at your files, and it fetches metadata and artwork, organizes everything into browsable libraries, and streams to clients on TVs, phones, browsers, and set-top boxes.
The distinction from Plex and Emby
All three do the same core job, and the difference is governance. Plex requires a Plex account, routes discovery through Plex’s servers, gates features behind Plex Pass, and has repeatedly moved functionality between free and paid tiers. Jellyfin is a fork of Emby from before Emby closed its source, and it is entirely free software: every feature, including hardware transcoding and mobile playback, is available without payment or an account. Nothing phones home.
The tradeoff is polish. Plex’s clients are more refined and its remote-access setup is close to automatic, where Jellyfin generally expects you to arrange your own reverse proxy or VPN.
Transcoding is the thing to plan for
A media server’s hardware requirements are dominated by transcoding. When a client can play a file directly, the server does almost nothing and a Raspberry Pi suffices. When it cannot, the server must decode and re-encode in real time, which is expensive. Jellyfin supports hardware acceleration through Intel Quick Sync, NVENC, and VAAPI, and an Intel iGPU with Quick Sync handles several simultaneous 4K transcodes for very little power. Choosing clients that direct-play your formats avoids the problem entirely.
Clients
The client ecosystem is broad because the API is open: official apps for Android, iOS, and the major TV platforms, plus Findroid, Swiftfin, Jellybox, and Jellyfin Media Player on desktop. Kodi can use Jellyfin as a backend.
Deployment
Docker is the standard route, with volumes for configuration, metadata cache, and your media mounted read-only. Passing through a GPU device for hardware transcoding is the one step worth reading the documentation on.
License
Jellyfin is released under the GNU General Public License v2.0.