ubuntuusers.de

Aufgrund einer Spam-Welle ist zur Zeit keine Registrierung möglich. Wir bitten um Euer Verständnis.

Mediatomb

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

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

/MT_logo.png MediaTomb {en} 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

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

  • mediatomb (universe)

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install mediatomb 

sudo aptitude install mediatomb 

Einstellungen

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

Eine genaue Beschreibung der einzelnen Optionen findet man auf der Homepage von MediaTomb {en}.

Server starten/stoppen

MediaTomb wird automatisch beim Hochfahren des Computers gestartet. Da dies je nach Ubuntu-Version via Upstart bzw. das Skript /etc/init/mediatomb.conf erfolgen kann, ist die Steuerung des Dienstes über das SysV-Init Skript /etc/init.d/mediatomb zwar möglich, aber inzwischen veraltet:

  • Server starten:

    sudo service mediatomb start 

    oder

    sudo /etc/init.d/mediatomb start 
  • Server stoppen:

    sudo service mediatomb stop 

    oder

    sudo /etc/init.d/mediatomb stop 
  • Server neustarten:

    sudo service mediatomb restart 

    oder

    sudo /etc/init.d/mediatomb restart 
  • Status abfragen:

    sudo service mediatomb status 

    oder

    sudo /etc/init.d/mediatomb status 

Wenn man bei Upstart den Init-Job mediatomb dauerhaft deaktivieren möchte, legt man eine neue /etc/init/mediatomb.override Datei an:

sudo sh -c "echo 'manual' > /etc/init/mediatomb.override" 

Möchte man den Init-Job wieder aktivieren, löscht man einfach die mediatomb.override-Datei (oder entfernt das Schlüsselwort "manual" in dieser Datei).

/MT_03.png
Benutzeroberfläche von MediaTomb

Bedienung

Nach erfolgreichem Start des Servers kann man das Programm aufrufen. Daraufhin startet ein Browser und öffnet die Weboberfläche von MediaTomb. Alternativ erreicht man das auch durch Aufruf der Adresse http://localhost:49152. 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.

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.

/MT_04.png
Anzeigemodus Database

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

/MT_05.png
Anzeigemodus Filesystem

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, welches von OpenVPN angelegt wird, bindet. Stattdessen soll Mediatomb sich an die übliche Netzwerkschnittstelle binden, normalerweise also eth0 oder wlan0. Ein einfacher Eingriff in die /etc/default/mediatomb des Mediatomb löst das Problem:

...
# 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 soll sichergestellt werden, dass die Firewall den UDP-Port 1900 nicht blockiert. Außerdem wird MediaTomb standardmäßig für die Kommunikation einen freien Port angefangen mit 49152 wählen.

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, könnte es sinnvoll sein einen Zugang zur MediaTomb-Steuerung von den anderen Rechner im LAN zu verbieten, ansonsten kann man Ihre Filesysteme via MediaTomb-GUI durchstöbern (http://your_ip_address: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.

Die iptables-Stanzas /etc/iptables.rules :

1
2
3
4
5
6
7
8
9
*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

Die ensprechenden iptables-Regel kann man bei einem MediaTomb-Start aus dem Upstart Skript /etc/init/mediatomb.conf aktivieren bzw. bei einem MediaTomb-Stop deaktivieren lassen:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
description "MediaTomb UPnP media server"
author      "Daniel van Vugt <vanvugt in launchpad>"

start on (local-filesystems and net-device-up IFACE!=lo)
stop on runlevel [!2345]
respawn

env CONFIGXML=/etc/mediatomb/config.xml
env LOGFILE=/var/log/mediatomb.log
env DEFAULT=/etc/default/mediatomb

# need for a firewall logging in the /var/log/syslog
env LOGGER="/usr/bin/logger -s -p daemon.info -t FirewallHandler"
#--------------

script
	[ -r $DEFAULT ] && . $DEFAULT
	[ ! $USER ] && USER=root
	[ ! $GROUP ] && GROUP=$USER
	if [ -n "$INTERFACE" ]; then
		INTERFACE_ARG="-e $INTERFACE"
		$ROUTE_ADD $INTERFACE
	fi

	# insert a mediatomb firewall rules
	if [ ! -r /etc/iptables.rules ]; then
		${LOGGER} "No iptables rules exist to restore."
	elif [ ! -x /sbin/iptables-restore ]; then
		${LOGGER} "No program exists to restore iptables rules."
	else
		${LOGGER} "Restoring a mediatomb iptables rules"
		/sbin/iptables-restore < /etc/iptables.rules
	fi
	#-------------------------------------

	exec mediatomb \
		-c $CONFIGXML \
		-u $USER \
		-g $GROUP \
		-l $LOGFILE \
		$INTERFACE_ARG \
		$OPTIONS
end script

post-stop script
	[ -r $DEFAULT ] && . $DEFAULT
	if [ -n "$INTERFACE" ]; then
		$ROUTE_DEL $INTERFACE
	fi

	# remove a mediatomb firewall rules
	if [ -x /sbin/iptables-save ]; then
		${LOGGER} "Remove a mediatomb iptables rules"
		/sbin/iptables-save | egrep -v "49152|1900" | /sbin/iptables-restore
	else
		${LOGGER} "No program exists to save iptables rules."
	fi
	#----------------
end script

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:

<import hidden-files="no"> 

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

<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 {en} 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 25. April 2015 23:27 von Vlad Cohen erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Multimedia, Server, Netzwerk, Internet, Streaming, UPnP, DLNA