Jellyfin - Serveur Streaming Média
Serveur média open-source permettant streaming de films, séries, musique sur tous devices.
Informations Générales
| Paramètre | Valeur |
|---|---|
| Container | LXC 100 - docker-media |
| IP:Port | 192.168.1.11:8096 |
| Image Docker | jellyfin/jellyfin:latest |
| Version | 10.10.3 |
| Transcoding | Intel HD Graphics 2000 (iGPU) |
Architecture
graph LR
A[Client Web/Mobile] -->|HTTP| B[Jellyfin :8096]
B --> C[Intel iGPU<br/>Transcoding]
B --> D[MergerFS Pool<br/>/mnt/storage]
D --> E[movies/]
D --> F[series/]
style B fill:#94c9ff
style C fill:#ffe6a8
style D fill:#d4edda
Configuration Docker
Fichier : /root/docker-compose/docker-compose.yml (LXC 100)
services:
jellyfin:
container_name: jellyfin
image: jellyfin/jellyfin:latest
ports:
- "8096:8096"
- "8920:8920" # HTTPS
- "7359:7359/udp" # Auto-discovery
- "1900:1900/udp" # DLNA
environment:
- TZ=Europe/Paris
- JELLYFIN_PublishedServerUrl=http://192.168.1.11:8096
volumes:
- /root/docker-compose/jellyfin/config:/config
- /root/docker-compose/jellyfin/cache:/cache
- /mnt/storage:/media:ro
devices:
- /dev/dri:/dev/dri # Intel iGPU passthrough
group_add:
- "44" # video group
- "107" # render group
restart: unless-stopped
Bibliothèques Média
Films
- Path :
/media/movies - Type : Films
- Scanner : TheMovieDB
- Language : French (Preferred), English
Séries TV
- Path :
/media/series - Type : Séries
- Scanner : TheTVDB
- Language : French (Preferred), English
Vérification paths
Hardware Transcoding (Intel iGPU)
Configuration Active
Dashboard → Playback → Transcoding
- Hardware acceleration : Intel QuickSync (QSV)
- Enable hardware decoding :
- ✅ H264
- ✅ HEVC
- ✅ VC1
- Enable hardware encoding :
- ✅ H264
- ✅ HEVC
- Enable VPP Tone mapping : ✅ (HDR → SDR)
- Prefer OS native DXVA or VA-API hardware decoders : ✅
Vérification iGPU Disponible
# Depuis LXC 100
ls -la /dev/dri
# Résultat attendu :
# drwxr-xr-x 3 root root 100 Jan 26 10:00 .
# drwxr-xr-x 8 root root 3420 Jan 26 10:00 ..
# crw-rw---- 1 root video 226, 0 Jan 26 10:00 card0
# crw-rw---- 1 root render 226, 128 Jan 26 10:00 renderD128
# Test transcoding avec vainfo
docker exec jellyfin vainfo
# Attendu : Intel HD Graphics 2000 détecté
Test Transcoding
- Lecture vidéo HEVC 1080p depuis client web
- Dashboard → Playback Activity
- Vérifier "Transcode Reason : DirectPlay not supported"
- Vérifier "Video Codec : h264 (qsv)"
Performances Transcoding
| Codec Source | Résolution | CPU Usage | iGPU Usage | FPS |
|---|---|---|---|---|
| H264 1080p | 1920x1080 | 15% | 45% | 60 fps |
| HEVC 1080p | 1920x1080 | 10% | 60% | 50 fps |
| HEVC 4K | 3840x2160 | 20% | 85% | 25 fps |
Note : Sans iGPU, CPU transcoding 1080p utiliserait 90%+ CPU.
Utilisateurs et Accès
Admin Principal
- Username : admin
- Permissions : Full admin access
- Libraries : All
Création Nouvel Utilisateur
Dashboard → Users → Add User
Username: user_name
Password: [secure_password]
Libraries Access:
- Movies: ✅
- Series: ✅
Permissions:
- Allow remote access: ✅
- Enable media playback: ✅
- Allow media deletion: ❌
Monitoring
Dashboard Jellyfin
http://192.168.1.11:8096/web/index.html#!/dashboard
- Active Devices
- Playback Activity (transcoding en cours)
- Server Activity (CPU, RAM, bandwidth)
Logs Docker
# Logs temps réel
docker logs -f jellyfin
# Dernières 100 lignes
docker logs --tail 100 jellyfin
# Erreurs seulement
docker logs jellyfin 2>&1 | grep -i error
Métriques Système
Maintenance
Mise à Jour
Scan Bibliothèques
Automatique : Toutes les 12h
Manuel : Dashboard → Libraries → Scan All Libraries
# Scan via API
curl -X POST "http://192.168.1.11:8096/Library/Refresh" \
-H "Authorization: MediaBrowser Token=YOUR_API_KEY"
Backup Configuration
# Config et database
tar -czf /backup/jellyfin-config-$(date +%Y%m%d).tar.gz \
/root/docker-compose/jellyfin/config
# Restauration
tar -xzf /backup/jellyfin-config-YYYYMMDD.tar.gz -C /
docker restart jellyfin
Nettoyage Cache
# Cache transcoding (peut devenir gros)
du -sh /root/docker-compose/jellyfin/cache
rm -rf /root/docker-compose/jellyfin/cache/*
docker restart jellyfin
Troubleshooting
Transcoding Échoue (Fallback CPU)
Symptôme : Lecture lente, CPU 90%+
# Vérifier /dev/dri accessible
docker exec jellyfin ls -la /dev/dri
# Vérifier groups
docker exec jellyfin id jellyfin
# Doit inclure video(44) et render(107)
# Recréer container avec bons groups
docker compose down jellyfin
docker compose up -d jellyfin
Bibliothèque Vide
# Vérifier mount point
docker exec jellyfin ls /media/movies
docker exec jellyfin ls /media/series
# Permissions
pct exec 100 -- chmod -R 755 /mnt/storage
Plantage au Démarrage
# Logs détaillés
docker logs jellyfin
# Réinitialiser DB corrompue
docker stop jellyfin
mv /root/docker-compose/jellyfin/config/data/library.db \
/root/docker-compose/jellyfin/config/data/library.db.old
docker start jellyfin
# Re-scan bibliothèques