Nextcloud Videos abspielen: jedes Format im Browser, GPU-Umwandlung nur bei Bedarf

Video Gallery für Nextcloud in der Praxis: pro Datei unverändert, neu verpackt, nur Ton oder neu kodiert, Verbindung gemessen, Zeitleiste nach Aufnahmedatum und Serien in richtiger Reihenfolge.

Wenn dein Nextcloud-Videoplayer ruckelt, nicht startet oder statt Vorschaubildern eine Wand grauer Kästchen zeigt, ist die Ursache meist dieselbe: Der Browser bekommt eine Datei, die er nicht dekodieren kann. Der eingebaute Viewer von Nextcloud ist für einen Handyclip in H.264 in Ordnung, aber gib ihm eine MKV-, HEVC- oder 10-Bit-Datei, einen VC-1- oder MPEG-2-Rip oder eine Datei mit DTS- oder TrueHD-Ton, und der Player bleibt entweder hängen oder schwarz. Video Gallery ist ein Nextcloud-Plugin, das genau dort ansetzt. Es indexiert jedes Video im Konto, spielt Formate ab, die ein Browser nicht allein öffnen kann, und entscheidet pro Datei, wie sie ausgeliefert wird – damit du nicht für eine vollständige Neukodierung zahlst, wenn ein einfaches Neupacken reicht. Diese Anleitung ist für Leute, die ihre eigene Instanz betreiben und wollen, dass der Player zuverlässig läuft.

Was du bekommst

Video Gallery (videogallery) findet jede Videodatei in einem Konto – Home-Ordner, freigegebene Ordner, externer Speicher –, ordnet sie nach dem Datum, an dem sie tatsächlich aufgenommen wurde, und spielt jede im Browser ab. Es verarbeitet HEVC, 10-Bit, VC-1, MPEG-2, DTS, TrueHD, AVI und MKV. Für jede Datei und jeden Browser entscheidet es, ob die Datei unverändert gesendet, neu verpackt (Container geändert, Streams kopiert), nur der Ton umgewandelt oder auf der Grafikkarte neu kodiert wird. Diese Entscheidung pro Datei ist der Kern der Lösung: Eine Datei, die bereits abspielbar ist, wird nie angefasst, und eine Datei, die nicht abspielbar ist, wird nur so weit umgewandelt wie nötig.

Voraussetzungen

  • Nextcloud 34 und PHP 8.4 oder neuer. Die App lässt sich unter 8.4 nicht aktivieren.
  • ffmpeg auf dem Server: sudo apt install ffmpeg (Debian, Ubuntu), sudo dnf install ffmpeg (Fedora, RHEL) oder sudo apk add ffmpeg (Alpine).
  • Funktionierende Nextcloud-Hintergrundjobs (Cron) für Indexierung und Vorschaubilder.
  • Optional, aber empfohlen: eine Grafikkarte für die Umwandlung (NVIDIA NVENC, Intel Quick Sync, VA-API für Intel/AMD). Ohne sie läuft die Umwandlung auf der CPU.
  • Empfohlen: eine schnelle Festplatte, idealerweise NVMe und getrennt von der Systemplatte, für temporäre Dateien.

Schritt 1 — App installieren und aktivieren

Lade das Archiv videogallery-x.y.z.tar.gz in deinem MediaLab Works-Konto unter Licenses herunter und entpacke es in den Nextcloud-Ordner apps/ (oder custom_apps/), sodass du apps/videogallery/ erhältst, im Besitz des Web-Server-Benutzers:

cd /var/www/nextcloud/apps
sudo tar -xzf ~/videogallery-x.y.z.tar.gz
sudo chown -R www-data:www-data videogallery

Aktiviere sie:

sudo -u www-data php occ app:enable videogallery

Öffne dann Administration settings → Video Gallery → License, füge deinen Lizenzschlüssel ein und speichere. Die App kontaktiert den Lizenzserver, bindet den Schlüssel an diese Instanz und zeigt die Lizenz als Active an.

Schritt 2 — Mediathek sofort aufbauen statt warten

Cron indexiert deine Dateien irgendwann, aber du kannst sofort starten:

sudo -u www-data php occ videogallery:scan

Du kannst einen Benutzernamen übergeben, um nur ein Konto zu scannen. Wenn neue Videos später nicht auftauchen, liegt das meist daran, dass die Hintergrundjobs nicht laufen; drücke in den Einstellungen unter The library auf Look for new files oder führe den Scan-Befehl erneut aus.

Schritt 3 — Temporäre Dateien auf eine schnelle Platte legen

Öffne Administration settings → Video Gallery. Die App findet ffmpeg, testet, was die Maschine wirklich leistet, und wählt selbst ein Arbeitsverzeichnis; die Seite sagt dir in einem Satz, was fehlt, und den Befehl, der es behebt. Unter Working files legst du das Arbeitsverzeichnis auf eine schnelle Platte, die nicht die Systemplatte ist. Die App löscht ausschließlich innerhalb ihres eigenen markierten Verzeichnisses, deine Medien sind also nie gefährdet.

Schritt 4 — Maschine messen und GPU einrichten

Unter This server siehst du die Encoder, die hier tatsächlich funktionieren: NVENC, Quick Sync, VA-API, VideoToolbox oder Software. Führe Measure this machine aus: Es testet die Grafikkarte mit einem anspruchsvollen Sample und behält die beste funktionierende Kombination aus Presets und Dekodierpfad. Jeder Wert lässt sich überschreiben. Wenn du mehrere Karten hast, schalte jede unter Graphics cards ein oder aus oder gib jeder ihr eigenes Limit.

Viele Distributionen starten PHP-FPM mit PrivateDevices=true, was die Karte verbirgt – du bekommst „no CUDA-capable device is detected“, obwohl es in einer Shell funktioniert. Für NVIDIA fügst du einen Drop-in mit sudo systemctl edit php8.4-fpm hinzu (nutze deine PHP-Version):

[Service]
PrivateDevices=no
DevicePolicy=closed
DeviceAllow=/dev/nvidia0 rw
DeviceAllow=/dev/nvidiactl rw
DeviceAllow=/dev/nvidia-uvm rw
DeviceAllow=/dev/nvidia-uvm-tools rw
DeviceAllow=/dev/nvidia-modeset rw

Für Intel und AMD: sudo usermod -aG render www-data. Dann sudo systemctl daemon-reload && sudo systemctl restart php8.4-fpm. Nach einem Treiberwechsel drückst du Test the hardware again.

Schritt 5 — Verbindung messen lassen

Unter Quality and the connection aktiviere das Messen der Verbindung vor der Wiedergabe und das Nachjustieren während der Wiedergabe. Die App misst die Verbindung vor und während der Wiedergabe, sodass eine Datei mit hoher Bitrate nur dann unverändert gesendet wird, wenn die Verbindung sie tragen kann, und die Qualität der Verbindung folgt. Im Player zeigt das Qualitätsmenü, was gewählt wurde, zum Beispiel Automatic (4.0 Mbit/s); wähle dort eine feste Qualität, wenn dir das lieber ist.

Schritt 6 — Zeitleiste und Vorschaubilder richtig einstellen

Die Zeitleiste wird aus echten Aufnahmedaten aufgebaut, die aus der Datei selbst gelesen werden, dann aus dem Dateinamen, dann aus ihrem Zeitstempel. Deshalb sieht eine kopierte Mediathek nicht mehr so aus, als wäre alles am Tag der Migration gefilmt worden. Du kannst auch nach zuletzt hinzugefügt, zuletzt gefilmt, Name, Länge oder Größe sortieren; die Wahl bleibt am Konto, auf jedem Gerät. Unter Previews stellst du Länge und Höhe der Hover-Clips und den Platz für zwischengespeicherte Vorschauen ein – das füllt die Kacheln mit stummen Hover-Vorschauen statt grauer Kästchen. Wenn Vorschauen fehlen, führe sudo -u www-data php occ videogallery:preview aus (optional für einen Benutzer) und stelle sicher, dass Cron läuft.

Schritt 7 — Untertitel, Tonspuren und Kapitel

In den Menüs des Players bekommst du jeden eingebetteten und begleitenden Untertitel, jede Tonspur und Kapitel. Begleitdateien wie Film.en.srt oder Film_en.srt neben dem Video werden ebenfalls gefunden. Der Player bietet außerdem Vollbild, Bildvorschau beim Ziehen, Touch-Gesten für Helligkeit, Lautstärke und Spulen, Bild-in-Bild und Fortsetzen über Geräte hinweg. Wenn du eine bitgenaue Kopie willst oder auf einem Fernseher schauen möchtest, übergibt Open in another player das unveränderte Original an VLC, Infuse oder einen anderen Player auf dem Gerät.

Schritt 8 — Serien und Kurse in richtiger Reihenfolge

Ein Ordner mit nummerierten Dateien wird der Reihe nach abgespielt, wobei am Ende der nächste Teil angeboten wird. Unter Kinds of folder schreibt der Administrator die Regeln, die Ordner in Kurse, Kamera, Serien und Filme einsortieren. Wenn dein Kursordner durcheinspringt, prüfe zuerst diese Regeln.

Tipps und Fehlersuche

  • Etwas spielt nicht ab: Führe sudo -u www-data php occ videogallery:selftest aus. Es wandelt einen Teil einer echten Datei in beide Richtungen um, springt in die Mitte, prüft, ob das Ergebnis abspielt und ob nichts zurückbleibt.
  • Die Grafikkarte wird nicht genutzt: Prüfe occ videogallery:status. Meist kann PHP-FPM die Karte nicht sehen (PrivateDevices) oder www-data ist nicht in der Gruppe render.
  • ffmpeg nicht gefunden: Installiere es oder setze seinen Pfad unter The library → Paths, if ffmpeg is somewhere unusual.
  • Gesamtzustand prüfen: occ videogallery:status --probe gibt dir ein schnelles Bild; occ videogallery:cleanup (oder --all) räumt temporäre Dateien auf.
  • Freigaben: Teile ein Video oder einen Ordner mit einer Person, einer Gruppe oder per Link, mit oder ohne Download, über Nextclouds eigene Freigaben. Links für externe Player tragen ein signiertes, ablaufendes Token, und für sie wird nichts gespeichert.

Fazit

Die meisten Meldungen zu „Nextcloud-Videoplayer funktioniert nicht“ laufen darauf hinaus, dass ein Browser etwas dekodieren soll, was er nicht kann. Video Gallery behebt das pro Datei – unverändert, neu verpackt, nur Ton oder neu kodiert –, misst die Verbindung, damit unveränderte Wiedergabe nur versucht wird, wenn die Leitung sie tragen kann, und baut eine Zeitleiste aus echten Aufnahmedaten mit Hover-Vorschauen. Installiere es, führe Measure this machine aus, lege das Arbeitsverzeichnis auf eine schnelle Platte und lass Cron den Rest erledigen. Die vollständige Anleitung steht im user guide; das changelog verfolgt, was sich geändert hat, und wenn noch etwas klemmt, sind die knowledge base und die FAQ der nächste Schritt.

Dieser Beitrag wurde mit KI-Unterstützung auf Grundlage unserer Produktdokumentation oder der aufgeführten Quellen verfasst und vor der Veröffentlichung automatisch geprüft.

Als Nächstes lesen

Du betreibst Emby, Jellyfin oder Nextcloud?

Unsere Plugins und Apps bringen Live-TV, Untertitel, Registrierung und Sicherheit auf deinen eigenen Server, mit kostenlosem Testzeitraum.