What Jellyfin Does
Jellyfin provides a complete home media experience:
- Movies & TV Shows: Stream your movie and TV library with metadata, artwork, subtitles, and trailers
- Music: Music streaming with artist bios, album art, lyrics, and playlist management
- Live TV & DVR: IPTV and HDHomeRun integration with EPG guide and recording
- Books & Comics: eBook and comic reader with EPUB and CBZ/CBR support
- Photos: Photo gallery with timeline view
- Hardware Transcoding: Intel QSV, NVIDIA NVENC, AMD AMF, and VA-API for efficient video transcoding
- Multi-user: Separate profiles with parental controls and content restrictions
- Remote Access: Stream anywhere via reverse proxy or VPN
Architecture
┌─────────────────┐ ┌──────────────┐ ┌──────────────┐
│ Clients │────▶│ Jellyfin │────▶│ Media Files │
│ Web / Apps / │ │ Server │ │ (Movies, │
│ Smart TV │ │ (C#/.NET) │ │ Music, etc) │
└─────────────────┘ └──────┬───────┘ └──────────────┘
│
┌──────┴───────┐
│ SQLite DB │
│ (Metadata) │
└──────────────┘Self-Hosting
Docker Compose
services:
jellyfin:
image: jellyfin/jellyfin:latest
ports:
- "8096:8096"
volumes:
- jellyfin-config:/config
- jellyfin-cache:/cache
- /mnt/media/movies:/media/movies:ro
- /mnt/media/tv:/media/tv:ro
- /mnt/media/music:/media/music:ro
environment:
JELLYFIN_PublishedServerUrl: http://192.168.1.100:8096
# GPU passthrough for hardware transcoding
# devices:
# - /dev/dri:/dev/dri # Intel QSV / VA-API
restart: unless-stopped
volumes:
jellyfin-config:
jellyfin-cache:Media Organization
/media/
├── movies/
│ ├── Inception (2010)/
│ │ └── Inception (2010).mkv
│ └── The Matrix (1999)/
│ └── The Matrix (1999).mp4
├── tv/
│ ├── Breaking Bad/
│ │ ├── Season 01/
│ │ │ ├── Breaking Bad S01E01.mkv
│ │ │ └── Breaking Bad S01E02.mkv
│ │ └── Season 02/
│ └── The Office/
└── music/
├── Artist Name/
│ └── Album Name/
│ ├── 01 - Track.flac
│ └── 02 - Track.flacClient Apps
| Platform | App |
|---|---|
| Web | Built-in web client |
| Android | Jellyfin for Android |
| iOS | Jellyfin for iOS / Swiftfin |
| Android TV | Jellyfin for Android TV |
| Apple TV | Swiftfin |
| Fire TV | Jellyfin for Fire TV |
| Roku | Jellyfin for Roku |
| Desktop | Jellyfin Media Player (MPV-based) |
| Samsung/LG TV | Web client via browser |
Key Features
Hardware Transcoding
Enable GPU-accelerated transcoding for smooth streaming:
# Intel QSV (most common for home servers)
devices:
- /dev/dri:/dev/dri
# NVIDIA
runtime: nvidia
environment:
- NVIDIA_VISIBLE_DEVICES=allSupported codecs: H.264, H.265/HEVC, VP9, AV1 (depending on GPU)
Plugins
Jellyfin has a plugin system for extending functionality:
- OpenSubtitles: Auto-download subtitles
- Fanart: Enhanced artwork
- Trakt: Sync watch history
- LDAP: Enterprise authentication
- Webhook: Notifications on events
Jellyfin vs Alternatives
| Feature | Jellyfin | Plex | Emby |
|---|---|---|---|
| Open Source | Yes (GPL-2.0) | No | Partially |
| Cost | Free | Free + Premium ($5/mo) | Free + Premium ($5/mo) |
| HW Transcoding | Free | Plex Pass only | Emby Premiere |
| Live TV | Free | Plex Pass only | Emby Premiere |
| Central auth | No (self-managed) | Required | Optional |
| Tracking | None | Usage data | Usage data |
| Mobile sync | Via plugins | Plex Pass | Emby Premiere |
FAQ
Q: Jellyfin or Plex? A: Plex is easier to start with and has a more polished client experience, but paid features unlock hardware transcoding and advanced functionality. Jellyfin is fully free and open source with no central auth server, but initial setup is a bit more involved. Pick Jellyfin for privacy and autonomy; pick Plex for ease of use.
Q: What server specs do I need? A: Direct Play needs very little. For transcoding, aim for at least an Intel i5 or a machine with a dGPU. QSV transcoding on Intel 8th-gen+ is highly efficient and can handle 3–5 concurrent transcode streams.
Q: 4K HDR support? A: 4K Direct Play is supported. HDR transcoding (tone mapping) needs a capable GPU (NVIDIA or Intel 10th-gen+ recommended). If the client supports 4K HDR direct play, the server doesn't need to transcode.