Mediatomb - Open Source Medienserver

von Christopher Korn | 1 | 57953 Aufrufe

Anzeige Hier werben

Sowohl zu Hause als auch im Unternehmen ergibt sich durchaus das Problem, wie man unterschiedliche Medien einem breiten Spektrum an Clients anbieten kann. Eine einfache Lösung hierfür sind UPnP Media Server wie zum Beispiel das kostenlos verfügbare Mediatomb.

Die Software arbeitet mit einer Vielzahl von Systemen und Geräten zusammen. Unter anderem zählen hierzu Router von Netgear und Linksys oder aber die Playstation 3.

Installieren

Mac OS X

Für den Paketmanager Fink existieren bereits Pakete für Mediatomb. Um das Paket installieren zu können muss lediglich der Unstable-Zweig von Fink aktiviert werden. Dies geschieht über hinzufügen der Schlüsselwörter unstable/crypto unstable/main in den "Trees" Abschnitt der Konfigurationsdatei fink.conf.

Wurde dieser Eintrag durchgeführt muss noch fink selfupdate; fink index; fink scanpackages durchgeführt werden um die Paketdatenbank zu aktualisieren.

Wurde dies durchgeführt, reicht ein Simples fink install mediatomb um den Mediaserver zu installieren.

Linux und BSD

Auf den anderen Systemen der Unix-Familie ist die Installation zum einen über den klassischen "Dreisatz" ./configure, make, make install installierbar, zum anderen bieten aber auch bereits viele Distributionen ihre eigenen Pakete an. Hierzu zählen zum Beispiel Fedora, Debian, Ubuntu, FreeBSD, Gentoo und openSUSE.

Die ersten Schritte

Starten

Nach der Installation der nötigen Software ist Mediatomb bereits lauffähig. Der Aufruf des Befehls mediatomb aus der Kommandozeile genügt um den Server starten zu lassen.

 
Text
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
ohr:~ chkorn$ mediatomb

MediaTomb UPnP Server version 0.11.0 - http://mediatomb.cc/

===============================================================================
Copyright 2005-2008 Gena Batsyan, Sergey Bostandzhyan, Leonhard Wimmer.
MediaTomb is free software, covered by the GNU General Public License version 2

2008-07-05 01:00:15    INFO: Loading configuration from: /Users/chkorn/.mediatomb/config.xml
2008-07-05 01:00:15    INFO: Checking configuration...
2008-07-05 01:00:15    INFO: Setting filesystem import charset to UTF-8
2008-07-05 01:00:15    INFO: Setting metadata import charset to UTF-8
2008-07-05 01:00:15    INFO: Setting playlist charset to UTF-8
2008-07-05 01:00:15    INFO: Configuration check succeeded.
2008-07-05 01:00:15    INFO: Initialized port: 42131 
2008-07-05 01:00:15    INFO: Server bound to: 192.168.1.21
2008-07-05 01:00:16    INFO: MediaTomb Web UI can be reached by following this link:
2008-07-05 01:00:16    INFO: http://192.168.1.21:42131/

Daten hinzufügen

Bild zu Mediatomb - Open Source Medienserver
Die drei Haupt-Bereiche des Mediatomb Webinterfaces

Nach dem Start verweist Mediatomb auf eine URL (hier: http://192.168.1.21:42131/) auf dem Server. Hinter dieser Adresse verbirgt sich das Web-Frontend das die Indizierung und Klassifizierung der Mediendaten handhabt.

Die dort zur Verfügung stehende Seite lässt sich in 3 Bereiche aufteilen:

  1. Symbolleiste
  2. Baum-Ansicht
  3. Haupt-Fenster

In der Baum-Ansicht wird nach dem Start lediglich der Leere Ordner "PC Directory" angezeigt. Zunächst müssen also Dateien hinzugefügt werden. Dies funktioniert durch Umschalten der Ansicht auf "Filesystem". Dies funktioniert in einigen, wenigen, Schritten:

  • Wählen des gewünschten Verzeichnisses mit Hilfe der Baum-Ansicht
  • Hinzufügen der Daten mit Hilfe des "AutoScan"-Buttons
  • Im Hauptfenster nun die gewünschten Einstellungen treffen.
    • Scan Modus: Für eine einmalige Indizierung sollte die Auswahl auf "None" bleiben. Für eine Regelmäßige Überprüfung der Daten empfiehlt sich "Timed".
    • Scan Level: Basic für eine simple Dateiüberprüfung; Full für eine erweiterte Prüfung der Dateien auf inhaltliche Änderungen.
    • Recursive: Verzeichnis Rekursiv durchsuchen?
    • Include hidden files/directories. Versteckte Dateien mit indizieren?
    • Scan Interval (seconds): Der Scan-Intervall in Sekunden.
  • Speichern der Einstellungen mit Hilfe der Taste "Set".

Nachdem ein Verzeichnis zu Mediatomb hinzugefügt wurde indiziert das System automatisch alle dort vorhandenen Bilder, Videos und Musikstücke. Nach kurzer Zeit sind diese dann auch, bereits kategorisiert bzw. sortiert, in der "Database" Ansicht sichtbar.

Erweiterte Konfiguration

Wer seinen neuen Media Server etwas stärker Konfigurieren möchte oder weitere Features aktivieren möchte kann dies mit Hilfe der Datei config.xml durchführen. Die Datei liegt im Regelfall im Heimatverzeichnis des jeweiligen Benutzers unter .mediatomb/ (z.B. /home/mustermann/.mediatomb/config.xml).

Weitere Medien-Formate

Zwar unterstützt Mediatomb eine Vielzahl der gängigsten Formate, doch leider ist die Unterstützung von einigen Standardmäßig deaktiviert. Durch hinzufügen von weiteren "Datei-Mappings" können diese allerdings aktiviert werden.

Zusätzliche Formate  
XML
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
<extension-mimetype>
    ...
    <map from="mpg" to="video/mpeg" />
    <map from="m2v" to="video/mpeg" />
    <map from="gif" to="image/gif" />
    <map from="jpg" to="image/jpeg" />
    <map from="png" to="image/png" />
    <map from="ts" to="video/mpeg"/>
    <map from="vob" to="video/mpeg"/>
    <map from="wav" to="audio/wav"/>
    <map from="mpg" to="video/mpeg"/>
    <map from="aac" to="audio/x-aac"/>
    <map from="m4a" to="audio/mp4"/>
    <map from="mkv" to="video/x-matroska"/>
    <map from="mov" to="video/x-quicktime"/>
    ...
</extension-mimetype>
Zusätzliche Formate  
XML
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
<mimetype-contenttype>
       ...
        <treat mimetype="audio/wav" as="wav"/>
        <treat mimetype="video/x-quicktime" as="mov"/>
        <treat mimetype="audio/x-ms-wma" as="wma"/>
        <treat mimetype="audio/x-ms-asf" as="asf"/>
        <treat mimetype="audio/x-aac" as="aac"/>
        <treat mimetype="video/x-ms-wmv" as="wmv"/>
        <treat mimetype="video/x-matroska" as="mkv"/>
       ...
</mimetype-contenttype>

Matroska (.mkv) Dateien "On-the-fly" umkodieren

Für Systeme, wie zum Beispiel die Playstation 3, die keinen Support für Matroska-Dateien haben lohnt es sich unter Umständen Transcoding einzurichten.

Hierzu empfiehlt es sich ein Wrapper-Script für ffmpeg (das Paket muss evtl. nachträglich noch installiert werden!) anzulegen. Dieses übernimmt dann bei Bedarf die Konvertierung von MKV zu MPEG. Nachfolgend ein Beispiel wie es aussehen könnte. Die Einstellungen können natürlich variiert werden.

Beispiel wrapperscript mediatomb-ffmpeg  
HTML
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
#!/bin/bash

INPUT="$1"
OUTPUT="$2"
VIDEO_CODEC="mpeg2video"
VIDEO_BITRATE="4096k"
VIDEO_FRAMERATE="25"
AUDIO_CODEC="mp2"
AUDIO_BITRATE="192k"
AUDIO_SAMPLERATE="48000"
AUDIO_CHANNELS="2"
FORMAT="dvd"

exec "ffmpeg" -i "${INPUT}" -vcodec ${VIDEO_CODEC} -b ${VIDEO_BITRATE} \
-r ${VIDEO_FRAMERATE} -acodec ${AUDIO_CODEC} -ab ${AUDIO_BITRATE} -ar ${AUDIO_SAMPLERATE} \
-ac ${AUDIO_CHANNELS} -f ${FORMAT} - > "${OUTPUT}" 2>/dev/null

Im Anschluss hierzu müssen die Transcoding-Einstellungen festgelegt werden. Hierzu muss im Element transcoding das Attribut enabled auf yes gesetzt werden. Im Anschluss daran wird der Matroska Mime-Typ in die Transcoding Sektion hinzugefügt und das ebenfalls notwendige Transcoding-Profil angelegt.

Nachfolgendes Beispiel zeigt alle notwendigen Einstellungen die für das Transcoding von MKV Dateien notwendig sind. Das Wrapper-Script heißt in diesem Fall mediatomb-ffmpeg.

MKV Dateien Transcodieren  
XML
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
<transcoding enabled="yes">
     ...
     <mimetype-profile-mappings>
          <transcode mimetype="video/x-flv" using="vlcmpeg"/>
          <transcode mimetype="application/ogg" using="vlcmpeg"/>
          <transcode mimetype="application/ogg" using="oggflac2raw"/>
          <transcode mimetype="audio/x-flac" using="oggflac2raw"/>
          <transcode mimetype="video/x-matroska" using="transcode-mkv"/>
     </mimetype-profile-mappings>
     ...
     <profiles>
            <profile name="transcode-mkv" enabled="yes" type="external">
            <mimetype>video/mpeg</mimetype>
            <accept-url>yes</accept-url>
            <first-resource>yes</first-resource>
            <accept-ogg-theora>yes</accept-ogg-theora>
            <agent command="mediatomb-ffmpeg" arguments="%in %out"/>
            <buffer size="10485760" chunk-size="262144" fill-size="524288"/>
        </profile>
     </profiles>
     ...
</transcoding>

Nach einem Neustart von Mediatomb funktioniert mit diesen Einstellungen auch das Streamen von MKV Dateien.

Hinweis: Mediatomb's Beispiel-Konfigurationdatei beinhaltet bereits Transcodierungseinstellungen für Flash Video Dateien (.flv) und Ogg-Container mit Hilfe von VLC. Wer diese Formate verwenden möchte sollte sich die Transkodieruns-Einstellungen näher ansehen!

Server Name setzen

Der Servername kann im Abschnitt server durch ändern des Elements name angepasst werden.

Setzen des servernamens  
XML
1
2
3
4
5
<server>
    ...
    <name>Mein Name</name>
    ...
</server>

Web-Interface-Port festlegen

Das Mediatomb Webinterface verwendet Standardmäßig einen zufällig ausgewählten Port der sich bei jedem Start ändert. Daher empfiehlt es sich diesen fest einzustellen. Dies funktioniert mit Hilfe des Elements port im Abschnitt server

Setzen des Web-Interface Ports  
XML
1
2
3
4
5
<server>
    ...
    <port>9955</port>
    ...
</server>

Hinweis: Alle Medienserver benötigen zusätzlich zu eventuellen Web-Interfaces auch den Port 1900!

Sony Playstation 3 Support

Mediatomb unterstützt auch Sony's aktuellste Spielekonsole. Durch erweitern der Protokoll-Informationen kann auch die Playstation 3 mit Mediatomb sprechen.

Erweiterte protokollinformationen  
XML
1
<protocolInfo extend="yes"/>

Ordnerstruktur ändern

Wem die von Mediatomb mitgelieferte Ordnerstruktur nicht gefällt, der kann diese ebenfalls frei anpassen. Dies funktioniert über die Datei import.js und mit Hilfe von JavaScript. Um diese Funktion nutzen zu können, muss allerdings Scripting erst in der Konfigurationsdatei aktiviert werden.

Hierzu muss der Part virtual-layout in der config.xml wie folgt abgeändert werden:

Scripting für Dateiimport aktivieren  
XML
1
2
3
4
5
...
    <virtual-layout type="js">
        <import-script>/pfad/zum/import.js</import-script>
    </virtual-layout>
...

Im Anschluss daran lässt sich auf Basis der bereits mitgelieferten import.js Datei eine eigene Struktur für den Medienserver festlegen.

Im Mediatomb Wiki sind bereits einige Scripts vorhanden die weiter verwendet werden können.

Weitere Konfiguration

Neben den oben aufgezeigten Möglichkeiten lässt sich Mediatomb noch weiter Konfigurieren. Hierzu zählt zum Beispiel die Authentifizierung für Benutzer am Webinterface, oder aber auch wie bestimmte Formate übertragen ("Transcribed") werden sollen.

Weitere Informationen hierzu bietet der Abschnitt "Configuration File" der Mediatomb Dokumentation (englisch).

Weitere Informationen

Über den Autor: Christopher Korn
Christopher Korn arbeitet seit mehr als 4 Jahren für die Landeshauptstadt München im Bereich Software Administration und IT Service Management.
Profilseite betrachten