ubuntuusers.de

Mediatomb

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist mit keiner aktuell unterstützten Ubuntu-Version getestet! Bitte teste diesen Artikel für eine Ubuntu-Version, welche aktuell unterstützt wird. Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Hinweis:

Seit 2013 ruht die Entwicklung von Mediatomb. Ein fork ist Gerbera 🇬🇧

/MT_logo.png MediaTomb ist ein freier UPnP-Medienserver (Universal Plug and Play), der es erlaubt, Mediendaten wie Filme und Musik über das Netzwerk an UPnP-fähige Geräte zu verteilen. Dazu zählen auch Geräte, die als DLNA-fähig gekennzeichnet sind. Da in letzter Zeit vermehrt DLNA-fähige Geräte wie Fernseher, Internetradios oder Spielekonsolen (z.B. PS3), auf den Markt kommen, bietet MediaTomb eine komfortable Lösung zur Übertragung von Musik oder Filmen vom Computer auf das jeweilige Gerät.

Installation

Bis Ubuntu 17.10

MediaTomb befindet sich bis Ubuntu 17.10 in den offiziellen Paketquellen. Folgende Pakete müssen installiert werden[1]:

  • mediatomb (universe)

Befehl zum Installieren der Pakete:

sudo apt-get install mediatomb 

Oder mit apturl installieren, Link: apt://mediatomb

Ab Ubuntu 18.04

Ab Ubuntu 18.04 wurde MediaTomb in den offiziellen Paketquellen durch Gerbera 🇬🇧 ersetzt. Allerdings kann Gerbera mit den meisten Samsung-TV über DLNA nicht kommunizieren, weil Gerbera anders als Mediatomb die Bibliothek libupnp benutzt, die keine custom-http-headers unterstützt.

Falls man MediaTomb weiterhin nutzen möchte, kann man ihn manuell installieren. Dabei muss man beachten, dass Gerbera und MediaTomb sich nicht vertragen: wenn MediaTomb drauf ist und man noch Gerbera installiert, wird MediaTomb deinstalliert.

Es gibt zwei möglichkeiten MediaTomb manuell zu installieren:

  1. Man kann die alten Pakete herunterladen und installieren, dabei bekommt man Probleme mit den Abhängigkeiten, die irgendwie manuell aufgelöst werden müssen.

  2. Man kann aber MediaTomb aus den offiziellen Paketquellen von Ubuntu 16.04 installieren, dabei werden die Abhängigkeiten automatisch aufgelöst.

Hier wird die 2. Variante beschrieben, für die die Technik Apt-Pinning angewendet wird.

Es werden zwei Dateien angelegt:

mit den Namen (frei wählbar) /etc/apt/preferences.d/xenial-mediatomb

Package: mediatomb
Pin: release v=16.04, b=amd64
Pin-Priority: 500

Package: mediatomb-daemon
Pin: release v=16.04, b=amd64
Pin-Priority: 500

Package: mediatomb-common
Pin: release v=16.04, b=amd64
Pin-Priority: 500

Package: mediatomb-dbg
Pin: release v=16.04, b=amd64
Pin-Priority: 500

Package: *
Pin: release v=16.04, l=Ubuntu
Pin-Priority: -2

und /etc/apt/sources.list.d/xenial_mediatomb.list

1
2
3
4
deb http://de.archive.ubuntu.com/ubuntu xenial main restricted universe multiverse
deb http://de.archive.ubuntu.com/ubuntu xenial-updates main restricted universe multiverse
deb http://de.archive.ubuntu.com/ubuntu xenial-security main restricted universe multiverse
deb http://de.archive.ubuntu.com/ubuntu xenial-backports main restricted universe multiverse

MediaTomb Installieren:

sudo apt-get update
sudo apt-get install mediatomb 

Die offiziellen Paketquellen von Ubuntu 16.04 in der /etc/apt/sources.list.d/xenial_mediatomb.list deaktivieren (man kann die Datei einfach löschen):

1
2
3
4
#deb http://de.archive.ubuntu.com/ubuntu xenial main restricted universe multiverse
#deb http://de.archive.ubuntu.com/ubuntu xenial-updates main restricted universe multiverse
#deb http://de.archive.ubuntu.com/ubuntu xenial-security main restricted universe multiverse
#deb http://de.archive.ubuntu.com/ubuntu xenial-backports main restricted universe multiverse

und die Paketquellen neu einlesen:

sudo apt-get update 

Einstellungen

Die Einstellungen des Servers lassen sich mit einen Editor bearbeiten. Eine Anpassung kann nötig sein, wenn es zu Problemen mit der Verbindung UPnP-Geräten kommt. Dazu muss man mit einem Editor[3] mit Root-Rechten[4] die Datei /etc/mediatomb/config.xml editieren.

Bei Ubuntu 16.04 muss die Netzwerkschnittstelle MT_INTERFACE in der Datei /etc/default/mediatomb angepasst werden:

1
2
3
## Network interface on which the server will run, you need to edit this!
#MT_INTERFACE="lo"
MT_INTERFACE="enp0s25" #or whatever you external interface is

Server starten/stoppen

Nach der Installation wird MediaTomb automatisch beim Hochfahren des Computers gestartet.

Hinweis:

Der Server verfügt über einen integrierten Dateisystem-Browser in der Benutzeroberfläche, d.h. jeder, der Zugriff auf die MediaTomb-Weboberfläche hat, kann das Dateisystem durchsuchen (mit Benutzerberechtigungen, unter denen der Server läuft) und auch Daten herunterladen. Falls Sie die maximale Sicherheit wünschen - deaktivieren Sie die Benutzeroberfläche vollständig.

Eine Konto-Authentifizierung bietet zwar einen einfachen Schutz, der z.B. Kinder zurückhalten könnte, aber es ist nicht sicher genug für einen Einsatz in einer nicht vertrauenswürdigen Umgebung.

Da der Server in einer Home-LAN-Umgebung verwendet werden soll, ist die Benutzeroberfläche normalerweise aktiviert und eine Konto-Authentifizierung deaktiviert, so dass jeder in Ihrem Netzwerk eine Verbindung zur Benutzeroberfläche herstellen kann.

Deswegen ist ratsam, den Server nicht permanent sondern nur dann laufen lassen, wenn er tatsächlich benötigt wird. Dafür soll man ihn dauerhaft deaktivieren:

sudo systemctl disable mediatomb.service 

Prüfen, ob der Server deaktiviert ist:

systemctl is-enabled mediatomb.service 

Falls die Ausgabe "disabled" lautet, ist der Server tatsächlich dauerhaft deaktiviert.
Mann kann auch den Status abfragen:

systemctl status mediatomb.service 

Bei deaktivierten Server sieht dann die Status-Ausgabe so aus:

● mediatomb.service - UPnP MediaServer
   Loaded: loaded (/lib/systemd/system/mediatomb.service; disabled; vendor preset: enabled)
   Active: inactive (dead)

Mit dem Befehl kann der MediaTomb-Daemon wieder dauerhaft aktiviert werden:

sudo systemctl enable mediatomb.service 

Manuelles Starten:

  • Server starten:

    sudo service mediatomb start 
  • Server neustarten:

    sudo service mediatomb restart 
  • Status abfragen:

    sudo service mediatomb status 

Dies läßt sich automatisieren, indem die entsprechenden Programmstarter ins Verzeichnis /usr/share/applications/ (systemweit) bzw. ~/.local/share/applications/ (für den lokalen Benutzer) platziert werden:

/usr/share/applications/mediatomb-server-start.desktop

1
2
3
4
5
6
7
8
[Desktop Entry]
Name=MediaTomb server start
Comment=Starts MediaTomb server
Exec=sudo systemctl start mediatomb.service
Terminal=true
Icon=mediatomb.png
Type=Application
Categories=AudioVideo;

/usr/share/applications/mediatomb-server-stop.desktop

1
2
3
4
5
6
7
8
[Desktop Entry]
Name=MediaTomb server stop
Comment=Stop MediaTomb server
Exec=sudo systemctl stop mediatomb.service
Terminal=true
Icon=mediatomb.png
Type=Application
Categories=AudioVideo;

Dann läßt sich der MediaTomb-Server über den Menüeintrag "Anwendungen → Multimedia → MediaTomb server start" starten und über den Menüeintrag "Anwendungen → Multimedia → MediaTomb server stop" stoppen (im aufpoppenden Terminal-Fenster muss noch ein Benutzer-Passwort für den Befehl sudo eingegeben werden).

Bedienung

Programmaufruf

Nach erfolgreichem Start des Servers kann man das Programm über den Menüpunkt "Anwendungen → Multimedia → MediaTomb" aufrufen. Daraufhin startet ein Browser und öffnet die Weboberfläche von MediaTomb. Alternativ erreicht man das auch durch Aufruf der Adresse http://localhost:49152 (der Standard-Port 49152 kann angepasst werden; z.B. 50500 bei Ubuntu 16.04).

Erhält man die Meldung

"MediaTomb UI is disabled. Check your configuration."

muss in der Datei /etc/mediatomb/config.xml der Eintrag ui enabled="no" auf "yes" gesetzt werden. In den Zeilen darunter lässt sich festlegen, ob der Zugang nur per Benutzernamen und Passwort möglich sein soll. Dazu wird "accounts enabled" auf "yes" gesetzt und bei "user" und "password" entsprechend ein Benutzername und ein Passwort eingesetzt.

Dem Menüeintrag "Anwendungen → Multimedia → MediaTomb" entspricht der Programmstarter /usr/share/applications/mediatomb.desktop:

1
2
3
4
5
6
7
8
[Desktop Entry]
Name=MediaTomb
Comment=MediaTomb UPnP MediaServer web user interface.
Exec=/usr/bin/x-www-browser /var/lib/mediatomb/mediatomb.html
Icon=mediatomb.png
Terminal=false
Type=Application
Categories=AudioVideo;

Der Link /usr/bin/x-www-browser zeigt auf einen Browser (standardmäßig auf den Firefox). Möchte man einen anderen Browser für die MediaTomb-Benutzeroberfläche nutzen, korrigiert man die Exec-Zeile des systemweiten Programmstarter /usr/share/applications/mediatomb.desktop (kann aber bei einem Update überschrieben werden) oder legt einen lokalen Programmstarter ~/.local/share/applications/mediatomb.desktop an:

/MT_03.png
Benutzeroberfläche von MediaTomb
1
2
3
4
5
6
7
8
[Desktop Entry]
Name=MediaTomb
Comment=MediaTomb UPnP MediaServer web user interface
Exec=chromium-browser --incognito /var/lib/mediatomb/mediatomb.html
Icon=mediatomb.png
Terminal=false
Type=Application
Categories=AudioVideo;

Die Oberfläche ist in 3 Bereiche aufgeteilt. Links oben kann man zwischen den Anzeigemodi "Database" und "Filesystem" wechseln. Links unten findet man eine Verzeichnisstruktur in Baumdarstellung. Der große Bereich rechts beinhaltet die jeweiligen Inhalte und die Schaltflächen zur Interaktion mit dem Programm.

Anzeigemodus Database

/MT_04.png
Anzeigemodus Database

In diesem Modus werden alle freigegebenen Objekte angezeigt. Auf diese kann nun mit einem UPnP-fähigen Gerät über das Netzwerk zugegriffen werden.

Zur Interaktion mit dem Programm stehen verschiedene Schaltflächen zur Verfügung. Die wichtigsten sind:

  • /MT_10.png "Add item": Fügt ein neues Objekt hinzu

  • /MT_11.png "Edit": Mit dieser Schaltfläche können verschiedene Informationen des Objekts bearbeitet werden.

  • /MT_12.png "Remove": Deaktiviert die Freigabe des jeweiligen Objekts und entfernt es aus der Datenbank.

  • /MT_13.png "Remove all": Entfernt das Objekt und alle Referenzen aus der Datenbank

Anzeigemodus Filesystem

/MT_05.png
Anzeigemodus Filesystem

Dieser Modus zeigt das Dateisystem des verwendeten Computers an. Über die Baumstruktur kann man zu den Objekten navigieren, die freigegeben werden sollen. Dabei können sowohl einzelne Dateien oder auch ganze Ordner freigegeben werden. Für die Ordnerfreigabe besteht zusätzlich die Möglichkeit, eine automatische Aktualisierung des Inhalts zu aktivieren (autoscan). Dadurch wird der Inhalt des betroffenen Ordners innerhalb eines frei definierbaren Zeitintervalls auf Veränderungen überprüft.

Folgende Schaltflächen stehen zur Verfügung:

  • /MT_20.png "Add": Fügt eine Datei oder einen Ordner der Datenbank hinzu und gibt sie frei.

  • /MT_21.png "Add as autoscan dir": Fügt einen Ordner der Datenbank hinzu und aktiviert die automatische Aktualisierung.

Problembehebung

OpenVPN

Unter Umständen kann es zu Problemen kommen, wenn Mediatomb und OpenVPN gleichzeitig installiert sind. Das Problem äußert sich darin, dass die Weboberfläche von Mediatomb zwar erreichbar ist, der eigentliche UPNP-Service aber nicht. Die Ursache ist hierfür, dass Mediatomb den UPNP-Service scheinbar an die Netzwerkschnittstelle tun0, welche von OpenVPN angelegt wird, bindet. Stattdessen soll Mediatomb sich an die übliche Netzwerkschnittstelle binden, normalerweise also eth0 oder wlan0. Ein einfacher Eingriff in der Datei /etc/default/mediatomb löst das Problem:

1
2
3
4
5
6
...
# The network interface for MediaTomb to bind to and for which the multicast
# routing entry should be added; "" if the route shouldn't be added at all.
# For example: INTERFACE="eth0"
INTERFACE="eth0"
...

Firewall

Netzwerkgeräte machen ihren UPnP-Dienst via UDP über die Multicast-Adresse 239.255.255.250:1900 auf Basis des Simple Service Discovery Protocol (SSDP) bekannt. Von daher muss sichergestellt werden, dass die Firewall den UDP-Port 1900 nicht blockiert. Außerdem wird MediaTomb standardmäßig für die Kommunikation einen freien Port wählen (ab 49152).

Die Ports für MediaTomb können bei Verwendung von ufw auf folgende Weise zugelassen werden:

sudo ufw allow 1900/udp
sudo ufw allow 49152/tcp
sudo ufw allow 49152/udp 

Unabhängig davon, ob eine Firewall benutzt wird oder nicht, kann es sinnvoll sein, einen Zugang zur MediaTomb-Steuerung von anderen Rechnern im LAN zu verbieten. Ansonsten kann man das lokale Dateisystem via MediaTomb-GUI durchstöbern (http://SERVER-IP:49152). Man kann auch die Media-Dateien nur auf den bestimmten Netzwerkgeräten abspielen zu lassen.

Hier ist ein Beispiel, wie sich solche Logik auf der Basis vom IP-Paketfilter iptables implementieren läßt.

Beispiel-IP-Adressen:

  • 192.168.0.111 - ein PC, auf dem MediaTomb läuft

  • 192.168.0.100 - ein DLNA-Netzwerkgerät, z. B. ein Fernseher (oder ein PC, auf dem VLC läuft), das die Media-Dateien bekommen darf.

Regeln für die Datei /etc/iptables.rules:

*filter
-A INPUT -s 192.168.0.111/32 -p tcp -m tcp --dport 49152 -j ACCEPT
-A INPUT -s 192.168.0.111/32 -p udp -m udp --dport 49152 -j ACCEPT
-A INPUT -s 192.168.0.100/32 -p tcp -m tcp --dport 49152 -j ACCEPT
-A INPUT -s 192.168.0.100/32 -p udp -m udp --dport 49152 -j ACCEPT
-A INPUT ! -s 127.0.0.1/32 -p tcp -m tcp --dport 49152 -j DROP
-A INPUT ! -s 127.0.0.1/32 -p udp -m udp --dport 49152 -j DROP
-A OUTPUT ! -d 239.255.255.250 -p udp -m udp --dport 1900 -j DROP
COMMIT

Darstellung von Umlauten

Dieses Problem resultiert daher, dass standardmäßig kein erweiterter Zeichensatz spezifiziert ist. Das kann man durch folgende Schritte beheben.

Falls MediaTomb gerade läuft, sollte der Server zunächst gestoppt werden. Anschließend muss man mit einem Editor[3] mit Root-Rechten[4] die Datei /etc/mediatomb/config.xml editieren. Nun sucht man sich folgende Zeile heraus:

1
<import hidden-files="no"> 

Unterhalb dieser Zeile, fügt man folgende zwei xml-Knoten ein:

1
2
<filesystem-charset>UTF-8</filesystem-charset>
<metadata-charset>UTF-8</metadata-charset>

Nach dem Speichern der Datei und dem Start von MediaTomb, müssen die betreffenden Dateien einmal neu eingelesen werden. Dazu werden diese aus der Freigabeliste entfernt und neu hinzugefügt. Jetzt sollten die Umlaute korrekt dargestellt werden.

Fehlermeldungen bezüglich der Datenbank

Es kann von Zeit zu Zeit vorkommen, dass die Datenbank-Datei fehlerhaft ist. Das macht sich z.B. durch Fehlermeldungen wie diese bemerkbar:

"error: database disk image is malformed"

Um dieses Problem zu beheben, muss MediaTomb gestoppt und die fehlerhafte Datenbank gelöscht werden:

sudo rm /var/lib/mediatomb/mediatomb.db 

Bei dem nächsten Start wird automatisch eine neue Datei angelegt. Zu beachten ist allerdings, dass auch sämtliche Freigaben neu angelegt werden müssen.

DLNA TVs (z.B. Samsung)

Einige Fernsehgeräte brauchen einen speziellen Abschnitt in der Datei /etc/mediatomb/config.xml, um die Inhalte vom Media-Server wiedergeben zu können:

1
2
3
4
5
6
7
<protocolInfo extend="yes"/><!-- For PS3 support change to "yes" -->
 
<custom-http-headers>
  <!-- Samsung needs it -->
  <add header="transferMode.dlna.org: Streaming"/>
  <add header="contentFeatures.dlna.org: DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01500000000000000000000000000000"/>
</custom-http-headers>

Intern

Extern

Diese Revision wurde am 3. Mai 2021 12:42 von frustschieber erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Multimedia, Server, Netzwerk, Internet, Streaming, UPnP, DLNA