DIY Media Player

Früher hatte ich für Ausstellungen, in denen Videos gezeigt werden sollten, Android-Media-Boxen gekauft, um meine Videos automatisch und im Loop an Beamer auszuspielen. Das ging recht gut. Ich musste meistens die Boxen nur einmal aufbauen und einrichten und sie liefen die gesamte Ausstellungsdauer über. Immer wieder wurde ich von anderen Kunststudierenden gefragt, was für Mediaplayer ich da nutzen würde und ob ich sie verleihen könnte.

Mit der Zeit vertiefte ich mich immer mehr in das Thema gebrauchte Hardware für Kunst und Arbeit. Es fing an mit einer Workstation, also einem schnellen Desktop-PC, den ich für 3d-Renderings brauchte. Später kaufte ich mir ein gebrauchtes Laptop. Diese Geräte waren als Leasingrückläufer nicht nur viel günstiger als Neuware, sie ermöglichten es mir auch, was Performance anging, mit einem kleineren Budget sehr weit zu kommen. Und dass diese Hardware ein längeres Leben hatte und ich mit meinen Einkäufen nicht direkt für den erneuten Abbau von Ressourcen und deren Verarbeitung verantwortlich war, freute mich zudem.Aus diesen Überlegungen und den Anforderungen Kunststudierender ist dieser Artikel entstanden. Was, wenn du für deine Videos keine Android-Box für 70 € brauchst, sondern das ganze mit einem kleinen PC für … 18 Euro haben kannst und darüber hinaus noch für komplexere Projekte wie einen Webbrowser im Kiosk-Modus gewappnet bist?

Meine erste Idee zu einem DIY-Media-Player brachte mich zu kleinen Einplatinencomputern wie dem Raspberry Pi oder dem Radxa Zero, die inzwischen in vielen Fällen schnell genug sind, um FullHD- oder 4K-Videos abzuspielen. Aufgrund des Chipmangels sind aber die Preise für diese Geräte so weit gestiegen, dass man fast auch schon wieder normale PCs oder kommerzielle Media-Player kaufen könnte. Außerdem werden diese Chips ja neu produziert, nur damit damit ein paar Mal im Jahr ein paar Videos abgespielt werden? Dann bin ich auf die Idee gekommen, einen Thin Client zu verwenden.

Thin Clients eignen sich gut als Medienplayer. Sie sind gebraucht sehr günstig zu bekommen, sind einigermaßen leistungsstark, einigermaßen klein und verbrauchen recht wenig Strom. Thin Clients werden in Unternehmen und Organisationen nicht als vollwertige PCs genutzt, sondern zapfen die Ressourcen eines stärkeren Servers an, um dessen Bildschirminhalte über das Netzwerk darzustellen und Maus und Tastatureingaben zu übertragen. Doch eigentlich ist in einem Thin Client alles drin, um im Web zu surfen, ganz einfache Spiele zu spielen oder Videos im Loop laufen zu lassen.

Für meine Recherche habe ich mir einen Thin Client herausgesucht, der sehr günstig ist, prinzipiell aber eine Auflösung bis 4k unterstützt. Testen konnte ich das nicht, da ich keinen 4k-Monitor habe – und weil der Shop mir anstatt eines Fujitsu Futro S720 einen Futro S920 geschickt hat. Ob das Zufall war? Vielen Dank! Das ganze hat 17,99 + 5,49 Euro Versand gekostet. Es gibt auch Thin Clients anderer Hersteller wie HP oder Dell. Dieser Artikel zeigt aber nur die Installation auf einem Futro S920. Thin Clients geben ihr Videosignal häufig über ein DisplayPort-Kabel aus. Du benötigst also eventuell noch einen DisplayPort-auf-HDMI-Adapter. Der kostet zwischen 5 und 10 Euro und sollte für dieses Gerät bestenfalls eine Auflösung von 4k mit 30Hz unterstützen.

In meinem Thin Client war schon eine 8 Gb große SSD verbaut. Ich habe mir also die bekannte und stabile Variante Debian (https://www.debian.org/download) des Linux-Betriebssystems heruntergeladen. Linux ist ein kostenloses Betriebssystem, mit dem die meisten Server betrieben werden und auf dem auch Systeme wie Android basieren.

Ich habe mir die damals aktuelle Version Bullseye (11) heruntergeladen. Die Datei war für einen 64bit-Computer (amd64) und brachte nur die minimale Menge an Software mit, um den Rest später aus dem Netz nachzuinstallieren (netinst). Es ist eine ISO-Datei, die den Installer automatisch laden kann. So ergibt sich dann der Name: debian-11.7.0-amd64-netinst.iso

Auf debian.org wird auch beschrieben wie die ISO-Datei, die zum Installieren benötigt wird, auf einen USB-Stick geschrieben werden kann. Unter Windows würde ich Rufus empfehlen, um einen USB-Stick zur Installation zu erstellen. Am besten für den späteren Installationsprozess ist es, wenn dein Thin Client an das Internet angeschlossen ist, bevor du die Installation von Debian startest. Es ist auch möglich, dein Handy per USB-Kabel zu verbinden und über WLAN-Tethering oder Mobile Daten den Internetzugang bereitzustellen. Außerdem sollte für die Installation von Debian „Secure Boot“ im BIOS deaktiviert sein.

Wenn der Installer startet, kannst du nach und nach durch die einzelnen Schritte navigieren, um Debian zu installieren. Um uns später die Einrichtung zu vereinfachen, lassen wir das Feld für das Root-Passwort leer und vergeben lediglich ein Passwort für den normalen User. Ich nenne den User hier „luefterlinux“. Wähle bei der Auwahl der grafischen Oberfläche Debian desktop environment ab und wähle Xfce aus. Aktiviere außerdem den SSH-Server, mit dem du später deine Media Box einfacher fernwarten kannst.

Nach dem Setup startet der ThinClient neu und begrüßt dich nacheinem Login auf dem Desktop. Nun geht es darum, die Box so einzustellen, dass automatisch das Videoprogramm startet, wenn ein USB-Stick eingesteckt wird. Das kann das Programm devmon bewerkstelligen, das zu udevil gehört. Öffne ein Terminal über die Tastenkombination STRG + T oder indem du unten im Dock auf das Symbol mit der Eingabeaufforderung klickst. Gib nun sudo apt install udevil ein, um udevil zu installieren. Ich musste noch sudo chmod -s /usr/bin/udevil eingeben, damit auch neuere USB-Sticks gestartet werden können.

Nach der Installation kannst du testen, ob udevil automatisch deinen USB-Stick erkennt. Im gleichen Terminalfenster gibst du dazu devmon --exec-on-drive „vlc -Lf -- no-video-title %d/media“ --exec-on-remove „pkill -x vlc“ ein.
Was bewirkt der Befehl Der Befehl direkt hinter --exec-on-drive wird ausgeführt, wenn devmon ein neues Gerät erkennt, das angeschlossen wird. Hier wird der vlc Media Player gestartet, und zwar im Loop (Argument -L), im Vollbild (Argument -f) und ohne Einblendung der Videotitel (Argument --no-video-title). Wenn ein Gerät entfernt wird (Befehl --exec-on-drive), wird vlc beendet (Befehl pkill -x vlc).

Beachte, dass in diesem Beispiel die Videodateien auf einem USB-Stick im Ordner namens media liegen müssen, den du eventuell noch anlegen musst. So kannst du auch noch andere Dateien auf dem USB-Stick lagern und dir eine Auswahl der abzuspielenden Videos zurechtlegen. Solange das Terminal offen ist, kannst du es testen, indem du einen entsprechenden USB-Stick einsteckst.

Doch warum läuft das Video so flüssig wie eine Diashow? Das liegt an dem Videotreiber, der in Debian Linux standardmäßig genutzt wird. Um Hardwarebeschleunigung und damit flüssige Videos zu erhalten, benötigen wir einen aktuelleren Treiber. Öffne ein zweites Terminal oder beende mit STRG + C den devmon-Befehl. Nun fügen wir die Quelle für den Grafiktreiber zu Debian hinzu. Das geht zum Beispiel mit nano, einem Terminal-Editor: sudo nano /etc/apt/sources.list Hier trägst du, am besten ganz unten, folgende Zeile ein:
deb http://deb.debian.org/debian/bullseye contrib non-free
Mit der Tastenkombination STRG + X kannst du den Editor beenden. Nano fragt dich dann, ob du die Datei speichern willst. Bestätige mit J und überschreibe dann die Datei mit Enter.

Nun aktualisieren wir die verfügbaren Pakete mit sudo apt update und installieren anschließend den Grafiktreiber mit sudo apt install firmware-amd-graphics. Damit der neue Grafiktreiber beim Systemstart auch genutzt wird, öffnen wir die Bootkonfiguration: sudo nano /etc/default/grub
Anschließend wird die Zeile GRUB_CMDLINE_LINUX_DEFAULT="quiet" so ergänzt, dass diese GRUB_CMDLINE_LINUX_DEFAULT="quiet radeon.cik_support=0 amdgpu.cik_‐support=1“ lautet. Speichere wieder mit STRG + X und bestätige.

Starte den Thin Client einmal neu, um zu überprüfen, ob alles geklappt hat. Du kannst ein Video manuell mit dem VLC Media Player starten, welches dann flüssig dargestellt werden sollte.

Damit wir uns nicht jedes Mal mit einem Passwort einloggen müssen und die Videos auch automatisch starten, müssen wir noch den automatischen Login aktivieren und devmon im Autostart hinterlegen.

Im Terminal bearbeitest du mit sudo nano /usr/share/lightdm/lightdm.conf.d/01_debian.conf die Datei für den Display-Manager. Füge hier am Ende der Datei folgende Zeilen hinzu:

[SeatDefaults]
autologin-user=luefterlinux
autologin-user-timeout=0

Ersetze luefterlinux durch den Usernamen, den du bei der Installation gewählt hast. Speichere die Datei mit STRG + X.

Den Autostart bewerkstelligen wir diesmal nicht über das Terminal, sondern über die grafische Oberfläche. Öffne Anwendungen oben links auf dem Desktop, navigiere zu Einstellungen und klicke auf Sitzungs- und Startverhalten. Hier wechselt du in den Reiter Automatisch gestartete Anwendungen und legst mit dem Klick auf das Plus-Zeichen einen neuen Eintrag an.
Füge hier einen Namen und eine Beschreibung, die für dich Sinn ergeben ein und trage unter Befehl die Zeile von vorhin ein:
devmon --exec-on-drive „vlc -Lf --no-video-title %d/media“ --exec-on-remove „pkill -x vlc“

Bestätige mit OK. Starte das System neu. Warte etwas ab. Stecke einen USB-Stick ein. Schaue deine Videos. Freue dich! Wenn gerade keine Ausstellungen stattfinden, kann der Thin Client übrigens auch super als Videoplayer genutzt werden.

Der Code lässt sich erweitern, um weitere Dinge zu automatisieren. Der Thin Client braucht bei mir beim Anzeigen von Videos nur etwa 14 Watt. Gar nicht so schlecht!