Zum Inhalt springen
SONOYA.com
Raspberry Pi & Linux

Jellyfin auf dem Mini-PC: Hardware-Transcoding mit N100

Jellyfin mit Docker auf einem Mini-PC mit Intel N100 installieren und Quick Sync aktivieren, damit 4K-Filme auch unterwegs flüssig laufen.

Von

Film-Symbol auf dunkelrotem Verlauf für Jellyfin auf einem Mini-PC mit Intel N100 und Hardware-Transcoding über Quick Sync

Jellyfin ist ein Mediaserver für Deine eigenen Filme, Serien und Musik, ähnlich wie Plex, aber komplett Open Source und ohne Konto beim Hersteller. Plex hat in den letzten Jahren mehrere Funktionen hinter sein Abo verschoben, darunter das Streamen der eigenen Mediathek von unterwegs. Bei Jellyfin gibt es kein Abo, alle Funktionen sind frei.

Damit ein Mediaserver Spaß macht, muss er Videos umwandeln können, wenn das Abspielgerät ein Format nicht versteht oder die Leitung unterwegs zu langsam für die volle Qualität ist. Ohne Hilfe der Grafikeinheit bringt das Umwandeln selbst kräftige Prozessoren ins Schwitzen. Ein Mini-PC mit Intel N100 hat mit Quick Sync eine eingebaute Videoeinheit, die mehrere 4K-Streams gleichzeitig umwandelt, bei einer Leistungsaufnahme von wenigen Watt. Diese Anleitung zeigt, wie Du Jellyfin mit Docker installierst und Quick Sync richtig einschaltest. Grundlage ist die offizielle Jellyfin-Anleitung für Intel-Grafik, Stand Jellyfin 12.4.

Warum ein N100 und kein Raspberry Pi

Der Raspberry Pi 5 hat keinen Hardware-Encoder mehr für H.264 oder HEVC. Er kann Videos abspielen, die das Endgerät direkt versteht, aber kaum umwandeln. Ein Mini-PC mit Intel N100 oder dem Nachfolger N150 kostet mit 16 GB RAM und SSD rund 150 bis 200 Euro und bringt laut Jellyfin-Doku alles mit, was zählt: Hardware-Dekodierung und -Kodierung für H.264, HEVC auch in 10 Bit und die Dekodierung von AV1. Ein Vergleich der Plattformen steht in Raspberry Pi 5 oder Mini-PC für Home Assistant?

Wenn Du einen solchen Rechner suchst, findest Du ihn unter Mini-PC mit Intel N100 (Affiliate Link). Gebraucht tut es auch ein Büro-Mini-PC mit Intel Core ab der 8. Generation (Affiliate Link), dessen Quick Sync H.264 und HEVC in 10 Bit beherrscht, aber kein AV1. Diese Anleitung geht von Debian oder Ubuntu mit Docker aus. Läuft auf dem Mini-PC Proxmox, liest Du vorher Proxmox: Docker im LXC-Container oder in einer VM?, denn die Grafikeinheit lässt sich in einen LXC-Container einfacher durchreichen als in eine VM.

Schritt 1: Prüfen, ob die Grafikeinheit bereit ist

Melde Dich per SSH am Mini-PC an und schau, ob das Gerät für die Videoeinheit existiert:

Code
ls -l /dev/dri

In der Ausgabe muss mindestens ein Eintrag namens renderD128 stehen. Fehlt er, ist die integrierte Grafik im BIOS abgeschaltet oder der Kernel zu alt. Mit Debian 13 oder Ubuntu 24.04 und neuer wird der N100 ohne Zusatzarbeit erkannt.

Jellyfin braucht außerdem die Nummer der Gruppe render, der das Gerät gehört:

Code
getent group render | cut -d: -f3

Notiere die Zahl, die ausgegeben wird, zum Beispiel 993.

Schritt 2: Jellyfin mit Docker Compose starten

Lege die Ordner an, in denen Jellyfin Konfiguration und Zwischenspeicher ablegt:

Code
mkdir -p ~/jellyfin/config ~/jellyfin/cache
cd ~/jellyfin
nano compose.yml

Füge diesen Inhalt ein und passe zwei Stellen an:

Code
services:
  jellyfin:
    image: jellyfin/jellyfin
    container_name: jellyfin
    user: 1000:1000
    group_add:
      - "993"
    network_mode: host
    restart: unless-stopped
    volumes:
      - ./config:/config
      - ./cache:/cache
      - /srv/medien:/media:ro
    devices:
      - /dev/dri/renderD128:/dev/dri/renderD128
  • Bei group_add trägst Du die Nummer aus Schritt 1 ein.
  • Bei volumes ersetzt Du /srv/medien durch den Ordner, in dem Deine Filme liegen, zum Beispiel eine externe Festplatte oder eine Freigabe vom NAS. Das :ro erlaubt Jellyfin nur Lesezugriff, so kann es Deine Dateien nie verändern.
  • user: 1000:1000 ist die Benutzernummer Deines Benutzers. Prüfe sie mit id -u und id -g.

devices reicht die Videoeinheit in den Container, und network_mode: host sorgt dafür, dass Smart-TVs und Apps den Server im Heimnetz automatisch finden. Starte Jellyfin:

Code
docker compose up -d

Öffne danach http://IP-DES-MINI-PC:8096 im Browser. Ein Assistent führt Dich durch die Einrichtung: Sprache, Administratorkonto und Mediatheken. Lege für Filme und Serien je eine eigene Mediathek an, Jellyfin erkennt dann die Inhalte und lädt Cover und Beschreibungen.

Schritt 3: Prüfen, ob der Container die Grafik sieht

Bevor Du in den Einstellungen etwas einschaltest, prüfst Du, ob der Container die Videoeinheit ansprechen kann:

Code
docker exec -it jellyfin /usr/lib/jellyfin-ffmpeg/vainfo

Die Ausgabe zeigt eine lange Liste von Profilen wie VAProfileH264Main und VAProfileHEVCMain10. Erscheint stattdessen eine Fehlermeldung, stimmt meist die Gruppennummer bei group_add nicht.

Schritt 4: Quick Sync in Jellyfin einschalten

Öffne in Jellyfin das Dashboard, dann Wiedergabe und Transkodierung:

  1. Wähle bei Hardwarebeschleunigung die Option Intel QuickSync (QSV).
  2. Setze die Haken bei der Hardware-Dekodierung für H264, HEVC, HEVC 10bit, VP9, VP9 10bit und AV1. Diese Formate kann der N100 laut Jellyfin-Doku dekodieren.
  3. Aktiviere Hardware-Kodierung. Die Option für die stromsparende Low-Power-Kodierung kannst Du anlassen, der N100 unterstützt sie unter Linux ab Werk.
  4. Aktiviere bei Bedarf Tone-Mapping. Das braucht es, wenn Du HDR-Filme auf einem Gerät ohne HDR abspielst, sonst sehen die Farben blass aus.
  5. Speichere ganz unten.

Schritt 5: Testen, ob die Hardware arbeitet

Spiel einen Film im Browser ab und wähle in den Wiedergabeeinstellungen eine niedrigere Qualität, zum Beispiel 4 Mbit/s. Damit zwingst Du Jellyfin zum Umwandeln. Im Dashboard unter Aktive Geräte siehst Du jetzt den Hinweis auf Transkodierung und die Geschwindigkeit. Werte deutlich über 1x bedeuten, dass der Rechner schneller umwandelt, als das Video läuft.

Zusätzlich kannst Du auf dem Mini-PC mit dem Werkzeug intel_gpu_top beobachten, ob die Videoeinheit arbeitet. Es steckt im Paket intel-gpu-tools:

Code
sudo apt install intel-gpu-tools
sudo intel_gpu_top

Während der Transkodierung muss die Zeile Video deutlich ausschlagen. Die Prozessorlast im Systemmonitor bleibt dabei niedrig.

Unterwegs streamen

Für den Zugriff von außen musst Du Jellyfin nicht ins Internet stellen. Am sichersten ist ein VPN wie Tailscale. Auf dem Handy aktivierst Du Tailscale und öffnest die Jellyfin-App mit der Tailscale-Adresse des Mini-PCs. Wie Tailscale funktioniert, zeigt Tailscale Exit Node: unterwegs über den Pi surfen. Beachte, dass der Upload Deines Internetanschlusses die Qualität unterwegs begrenzt. Genau hier spielt die Hardware-Transkodierung ihre Stärke aus.

Typische Fehler

Wiedergabe bricht ab, sobald transkodiert wird. Im Dashboard unter Logs findest Du die FFmpeg-Protokolle. Steht dort ein Fehler zu vaapi oder qsv, ist meist ein Format angehakt, das die Hardware nicht kann, oder die Gruppenrechte fehlen.

Jellyfin findet keine Filme. Prüfe, ob der Ordner im Container sichtbar ist: docker exec -it jellyfin ls /media. Ist er leer, stimmt der Pfad in volumes nicht, oder der Benutzer 1000 darf den Ordner nicht lesen.

Untertitel lassen die Last hochschießen. Bildbasierte Untertitel wie bei Blu-ray-Rips müssen in das Bild eingebrannt werden, und das passiert teilweise im Prozessor. Textuntertitel im SRT-Format sind deutlich schonender.

Fazit

Ein Mini-PC mit Intel N100 und Jellyfin ist einer der besten Gegenwerte im Selfhosting: leise, sparsam, und dank Quick Sync schafft er mehrere 4K-Streams parallel. Die Einrichtung dauert eine halbe Stunde, und die wichtigsten Stellen sind die Gruppennummer für render und das Durchreichen von /dev/dri. Danach hast Du einen Mediaserver ohne Abo, der nur Dir gehört.

Weiterlesen.