Der Mediamanager Dim als Alternative zu Plex

Aus LinuxUser 03/2022

Der Mediamanager Dim als Alternative zu Plex

© Piotr Adamowicz / 123RF.com

Pilotfolge

Der noch junge Mediamanager Dim möchte Aussehen und Funktionen der kommerziellen Mediacenter-Software Plex als Open Source umsetzen.

Mediaplayer, auch Home-Theater-Software oder Mediamanager genannt, gibt es für Linux in großer Zahl. Uns interessieren in dieser Hinsicht heute Kandidaten nach dem Client-Server-Prinzip, die wir selbst hosten können und die auch von außen einen sicheren Zugriff ermöglichen. Zu den bekannteren Vertretern dieser Gattung gehören die Open-Source-Projekte Kodi, Emby, LibreELEC und Jellyfin sowie das proprietäre Plex [1], das als Abspaltung des Xbox Media Center (XBMC, heute: Kodi) entstand.

Obwohl nicht quelloffen, ist Plex aufgrund seiner umfassenden Funktionalität, einer guten Benutzeroberfläche und wegen seiner Eignung als Streaming-Media-Server auch unter Linux sehr beliebt. Allerdings bewegt es sich in letzter Zeit für viele Anwender zu sehr in Richtung Netflix und Amazon Prime, während grundlegende Funktionen seit Jahren fehlen, wie etwa das sanfte Ein- und Ausblenden von Musikstücken.

Freier Plex-Ersatz

Seit rund einem Jahr arbeiten einige Entwickler an Dim, einer Open-Source-Version von Plex mit möglichst identischer Optik und der Funktionalität. Die erste Veröffentlichung des Projekts erfolgte im April 2021, derzeit aktuell ist Version 0.3.0-rc6. Wenn Sie diesen Artikel lesen, sollte bereits die Version 0.3.1 verfügbar sein oder kurz vor dem offiziellen Release stehen.

Das auf Github entwickelte Dim [2] installieren Sie auf von Ihnen kontrollierter Hardware und steuern es über eine Weboberfläche (Abbildung 1). Sie können es sowohl auf einem Rechner zu Hause als auch auf einem Server im Netz einrichten. Alle geplanten Funktionen sollen sich auf Wunsch auch von außen erreichen lassen.

Abbildung 1: Die Ansicht einer Bibliothek zeigt die einzelnen Medien als alphabetisch geordnete Kacheln. Eine Musikbibliothek lässt sich nicht einrichten, die Infrastruktur dazu fehlt noch.

Abbildung 1: Die Ansicht einer Bibliothek zeigt die einzelnen Medien als alphabetisch geordnete Kacheln. Eine Musikbibliothek lässt sich nicht einrichten, die Infrastruktur dazu fehlt noch.

Alternativ zur direkten Installation bietet sich die Containerisierung mit Docker an. Ein Alleinstellungsmerkmal im Media-Genre stellt die Umsetzung der Software in Rust dar. Die seit 2010 von Mozilla entwickelte und mittlerweile von einer großen Community getragenen Programmiersprache ist derzeit dabei, sich neben C als zweite Sprache im Kernel zu etablieren. Die Vorgaben für Rust lauten Einfachheit, mehr Sicherheit und höhere Geschwindigkeit der Anwendungen. Bei Plex, das Dim nachzuempfinden versucht, handelt es sich dagegen um ein Python-Programm.

Das von Grund auf neu entwickelte Dim basiert nicht auf einer bestehenden Anwendung. Es zielt darauf ab, bei minimalem Einrichtungsaufwand für den Anwender die Medien zu scannen und von überall aus abzuspielen. Derzeit befindet sich das Projekt noch in einer frühen Phase, verspricht aber bereits, sich zu einer brauchbaren freien Alternative zum proprietären Plex zu mausern. Deswegen sehen wir uns im Folgenden näher an, wie man Dim installiert, wo das Projekt heute steht und wie die weiteren Pläne aussehen.

Da es von Dim noch keine Binärpakete für Distributionen gibt, gilt es, vor der Installation die benötigten Abhängigkeiten in Form von Multimediabibliotheken zu überprüfen. Diese liegen auf den üblichen Desktop-Installationen bereits vor, sofern Ffmpeg installiert ist. Listing 1 zeigt, wie Sie die nötigen Pakete unter Debian und dessen Derivaten (erste Zeile) sowie unter Fedora und anderen RPM-basierten Systemen einspielen.

Listing 1

Abhängigkeiten

$ sudo apt install libva2 libva-drm2 libharfbuzz-bin libfontconfig1 libfribidi0 libtheora0 libtheora-bin libvorbis0a libvorbisenc
$ sudo dnf install libva libva-vdpau harfbuzz fontconfig fribidi libtheora libvorbis

ZIP oder Docker?

Liegen alle Abhängigkeiten vor, laden Sie das ZIP-Archiv der aktuellen Dim-Version von Github herunter [3]. Sie entpacken es wie in Listing 2 gezeigt, wechseln in das entpackte Verzeichnis und stoßen dort die Konfiguration an (Abbildung 2). Nach Abschluss der Aktion rufen Sie die Weboberfläche von Dim über die URL http://0.0.0.0:8000 im Webbrowser auf. Bei Bedarf lässt sich dort die Port-Nummer des Dienstes ändern. Listing 3 beschreibt die Installation über Docker. Das Image inklusive einer README-Datei finden Sie dann unter /var/lib/docker/overlay2.

Abbildung 2: Nach dem Auspacken des ZIP-Archivs stoßen Sie die Konfiguration von Dim an. Dabei prüft die Software, ob alle Abhängigkeiten vorliegen.

Abbildung 2: Nach dem Auspacken des ZIP-Archivs stoßen Sie die Konfiguration von Dim an. Dabei prüft die Software, ob alle Abhängigkeiten vorliegen.

Listing 2

Installation (ZIP)

$ unzip ./release-linux.zip
$ tar -xvzf ./release.tar.gz
$ cd release && ./dim

Listing 3

Installation (Docker)

### Docker für Debian und Derivate installieren:
$ sudo apt install docker.io
### Docker unter Fedora einspielen:
$ sudo dnf install docker-ce
### Das neueste Image von Dim herunterladen:
$ sudo docker pull ghcr.io/dusk-labs/dim:dev

Haben Sie Dim eingerichtet und die Weboberfläche im Browser geöffnet, legen Sie als Nächstes ein Konto an. Anschließend geht es an die Bestückung der Mediendatenbank (Abbildung 3). Derzeit beschränkt sich Dim auf Filme, Serien und Anime. Musik, Bilder und weitere Medienformate sollen folgen, sobald die Entwickler mit der Implementierung der jetzt unterstützten Formate zufrieden sind.

Abbildung 3: Die Oberfläche von Dim ist bewusst übersichtlich gehalten, aber noch nicht übersetzt. Beim ersten Besuch fordert die Anwendung Sie auf, eine Bibliothek anzulegen.

Abbildung 3: Die Oberfläche von Dim ist bewusst übersichtlich gehalten, aber noch nicht übersetzt. Beim ersten Besuch fordert die Anwendung Sie auf, eine Bibliothek anzulegen.

In der Webansicht nimmt wie bei Plex ein Streifen links mit den Bedienelementen etwa ein Viertel der Breite ein. Der Rest des Displays dient der Darstellung der indexierten Medien. Unter dem Logo des Benutzers, das Sie mit Ihrem Konterfei versehen können, befindet sich die Suchleiste und darunter die Sammlungen, die Sie angelegt haben. Die Bedienleiste blenden Sie bei Bedarf mittels des kleinen Pfeils unten rechts in der Leiste aus und nutzen so den gesamten Bildschirm für die Anzeige der Medien und ihrer Metadaten.

Libraries

Dim ist noch nicht übersetzt, deshalb heißen die einzelnen Sammlungen hier noch Libraries. Nach dem ersten Einloggen fordert die Anwendung Sie auf, eine solche Library anzulegen, indem Sie einen Namen dafür vergeben und dem Scraper den Pfad zu den gewünschten Dateien übergeben. Sie entscheiden dabei über einen Schalter, ob es sich um Filme oder Serien handelt. Dim behandelt die beiden Kategorien unterschiedlich, was die Metadaten angeht, die übrigens aus The Movie Database (TMDB) stammen.

Aktuell akzeptiert Dim nur Ordner, einzelne Dateien zeigt es in der Übersicht gar nicht an. Ein Modus zum deren Einbinden ist jedoch geplant. Bewegen Sie den Mauszeiger über einen Ordner, erscheint rechts ein orangefarbenes Rechteck, das Sie anklicken, um den Ordner auszuwählen (Abbildung 4). Vergessen Sie nicht, der Sammlung einen Namen zu geben, da sonst der Schalter Add Library deaktiviert bleibt. Möchten Sie noch weitere Sammlungen anlegen, bewegen Sie den Mauszeiger über den Schalter Libraries und klicken auf das erscheinende Pluszeichen.

Abbildung 4: Beim Erstellen einer Bibliothek gilt es, darauf zu achten, dass sie einen Namen trägt und dass die Kästchen rechts neben den Ordnern angehakt sind.

Abbildung 4: Beim Erstellen einer Bibliothek gilt es, darauf zu achten, dass sie einen Namen trägt und dass die Kästchen rechts neben den Ordnern angehakt sind.

Unterhalb der Sammlungen befindet sich die Schaltfläche für das Dashboard, das die zuletzt angesehenen Medien an oberster Stelle zeigt. Über den Dateinamen finden Sie automatisch erstellte Tags wie etwa das Erstellungsjahr oder das Genre. Ein Klick auf die als Links ausgelegten Schlagworte führt zu anderen Medien mit demselben Tag. Eine individuelle Verschlagwortung erlaubt Dim derzeit noch nicht.

Wenig einzustellen

Der Schalter für die Einstellungen ermöglicht das Ändern des Benutzernamens und Passworts sowie das Anpassen des Standard-Ports, auf dem das Web-Interface lauscht. Sie haben die Wahl zwischen einigen dunklen und hellen Ansichtsmodi sowie die Möglichkeit, die Pfade für Cache und Metadaten anzupassen. Im Hintergrund arbeitet Nightfall [4], eine Bibliothek für die Transkodierung und das Streaming von verschiedenen Videodateien auf Abruf (Abbildung 5).

Abbildung 5: Mit dem Schalter <span class="ui-element">Preferences</span> gelangen Sie zu den Einstellungen. Neben den &uuml;blichen Settings zum Profil gibt es auf dem Reiter <span class="ui-element">Invites</span> die M&ouml;glichkeit, ein Token zu erstellen, das Dritten den sicheren Zugriff auf die Bibliotheken erlaubt.

Abbildung 5: Mit dem Schalter Preferences gelangen Sie zu den Einstellungen. Neben den üblichen Settings zum Profil gibt es auf dem Reiter Invites die Möglichkeit, ein Token zu erstellen, das Dritten den sicheren Zugriff auf die Bibliotheken erlaubt.

Dem derzeitigen frühen Entwicklungsstand geschuldet bietet Dim bisher nur einen Grundstock der geplanten Funktionen. Das umfasst das Einlesen von Videodateien inklusive Übernahme der Metadaten (Abbildung 6) sowie das lokale Abspielen der Sammlung (Abbildung 7). All das funktionierte im Rahmen des Tests ohne Probleme. Lediglich einer von 20 eingelesenen Dateien fehlten hinterher die Metadaten.

Abbildung 6: Ein Klick auf einen Eintrag in der Bibliothek &ouml;ffnet die Ansicht der Metadaten. Von dort starten Sie auch das Abspielen.

Abbildung 6: Ein Klick auf einen Eintrag in der Bibliothek öffnet die Ansicht der Metadaten. Von dort starten Sie auch das Abspielen.


Abbildung 7: Das Abspielfenster vermittelt den Eindruck der Konzentration auf das Wesentliche und offeriert lediglich die n&ouml;tigsten Bedienelemente.

Abbildung 7: Das Abspielfenster vermittelt den Eindruck der Konzentration auf das Wesentliche und offeriert lediglich die nötigsten Bedienelemente.

Ausblicke

Wir haben den Hauptentwickler gefragt, was das Projekt für die nächsten ein oder zwei Jahre plant. In diesem Jahr geht es vor allem darum, die Web-UI aufzupolieren sowie die mobile App für Android und iOS zu vollenden, die sich derzeit in der Designphase befindet. Außerdem arbeitet das Team daran, die allgemeine Benutzerfreundlichkeit zu verbessern. Daneben wollen die Entwickler noch dieses Jahr eine native Desktop-App mit MPV als Videoplayer bereitstellen. Längerfristig planen Sie, es Nutzern an verschiedenen geografischen Standorten zu ermöglichen, ein Video gemeinsam zu streamen.

Clients für mobile Geräte und ein großes TV-Angebot zählen zu den wichtigsten Voraussetzungen für den Erfolg eines Mediacenters. 2022 soll der Fokus der Entwicklung deshalb hauptsächlich auf den Android-TV- und Apple-TV-Clients liegen. Auf der Feature-Liste stehen alle üblichen Funktionen inklusive einer Offline-Wiedergabe. Hinzu kommt eine Direct-Play-Unterstützung mit einer Vielzahl von Codecs, sodass bei der lokalen Wiedergabe in den meisten Fällen ein Transkodieren der Medien entfällt. Für die Weboberfläche planen die Entwickler eine umfassende Unterstützung von Untertiteln. Neben dem textbasierten SRT-Format unterstützt Dim dazu schon jetzt das SSA-Format [5], das oft bei Anime Verwendung findet. Zudem soll schon bald das Abspielen von Videos mit Bitmap-Untertiteln ohne Transkodierung klappen.

Bei Umfang und Komplexität der anstehenden Entwicklungen, besonders im Bereich der Clients für Mobile und TV, wird es nicht ohne bezahlte Entwickler gehen. Geld soll über bezahlte Plugins mit fortgeschrittenen Funktionen hereinkommen, wie etwa Multi-GPU-Unterstützung oder Transcoder-Load-Balancing.

Fazit

Das Vorhaben, Plex durch eine quelloffene Anwendung wie Dim zu ersetzen, lässt sich nicht in wenigen Monaten schaffen, sondern dauert eher Jahre. Das Dim-Team hat aber in den ersten zwölf Monaten bereits gute Grundlagen geschaffen. Die simple Oberfläche wirkt in ihrer Unauffälligkeit ansprechend. Die Umsetzung in Rust verspricht gegenüber einer Implementation in Python oder C/C++ insbesondere Geschwindigkeitsvorteile. Dim eignet sich im Moment allerdings noch nicht zum praktischen Einsatz. Wir behalten das Projekt aber im Auge und fassen nach, sobald Dim seinen Platz im Wohnzimmer einnehmen kann. (cla)

Glossar

Scraper

Ein kleines Programm oder eine integrierte Routine, die Daten aus verschiedenen Quellen sammelt und dann in der Regel zentral über eine Datenbank bereitstellt.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 03/2022 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben