Universal Plug-and-Play oder kurz UPnP ist eigentlich eine feine Sache. Möchten Sie beispielsweise einen Film auf dem Fernseher anschauen, der noch nicht auf dem am TV-Gerät angeschlossenen Wohnzimmer-Media-PC liegt, sondern auf dem Rechner im Arbeitszimmer, erspart Ihnen die Technik das langwierige Umkopieren via Netz oder gar USB-Stick. Stattdessen starten Sie auf dem Rechner mit dem Film einfach einen UPnP-Server und geben den Film zum Streamen frei. Der Client im Wohnzimmer entdeckt die Freigabe und spielt das Gewünschte über einen UPnP-fähigen Player ab. So funktioniert das zumindest in der Theorie.

UPnP und DLNA

Im UPnP-Forum, einer 1999 gegründeten Industrie-Initiative, haben sich rund tausend Anbieter aus dem IT- und Hardware-Bereich zusammengeschlossen, um einen technischen Standard aufzusetzen, der Multimediadaten der passenden Abspielsoftware bekannt macht. Dabei dürfen die abzuspielenden Medien auf einem anderen Rechner liegen als das Abspielgerät. Egal ob Multimediaplayer, Flatscreen-TV oder Smartphone – sie alle suchen mittlerweile dank UPnP im lokalen Netzwerk nach abspielbaren Inhalten. Der Standard soll nun die Medien und die zugehörige Abspielsoftware im LAN automatisch miteinander verbinden – im Idealfall muss der Anwender dazu nicht in den Prozess eingreifen.

Dazu basiert UPnP auf einem lokalen Peer-to-Peer-Netzwerk, das aus Clients, Kontrollpunkten und Servern besteht, die sich über ein gemeinsames Protokoll unterhalten. Letzteres beruht auf offenen Internetstandards wie XML, SSDP oder HTTPU und macht die UPnP-fähigen Geräte im Netzwerk miteinander bekannt. Diese holen sich zunächst selbstständig eine IP-Adresse und kündigen dann ihre Existenz im (W)LAN an. Während die Server ("UPnP AV MediaServer") Inhalte anbieten, spielen die Clients ("UPnP MediaRenderer") diese ab. Sie prüfen dazu, welche Funktionen der Server anbietet, und bieten eine Oberfläche an, um ihn zu steuern. Sogenannte Kontrollpunkte ("UPnP AV MediaServer ControlPoints") verbinden Clients und Server: Sie sind in der Lage, die Freigaben auf den Servern zu entdecken und zu lesen.

TIPP

Läuft auf dem Rechner mit dem Server eine Firewall, kann es sein, dass die Server-Freigaben nicht sichtbar werden. In diesem Fall geben Sie die beiden von UPnP genutzten Ports 1900/udp und 2869/tcp frei.

Im Zusammenhang mit UPnP taucht häufig auch der Begriff DLNA auf. Das Kürzel bezeichnet die Digital Living Network Alliance [1], ein 2003 von Sony und Intel gegründetes Industriegremium. Die Organisation vergibt in Form eines Logos eine Art Gütesiegel für Multimedia-Hardware, die bestimmte Richtlinien erfüllt, die "Home Networked Device Interoperability Guidelines". Diese liegen seit 2006 in Version 1.5 vor und lassen sich nur von Mitgliedern der DLNA oder zahlenden Interessenten einsehen. Anhand der Richtlinien können DLNA-Mitglieder bei Prüfstellen verschiedene Tests mit Geräten vornehmen lassen, die dann im Erfolgsfall das DLNA-Siegel erhalten [2]. Das besagt bei genauerem Hinsehen allerdings lediglich, dass die entsprechend zertifizierten Geräte reibungslos miteinander kommunizieren können. Da DLNA-Endgeräte jedoch nur ein Minimum an Multimedia-Formaten unterstützen müssen (JPEG, LPCM, MPEG-2), gibt es keine Garantie, dass sich das Gewünschte zuhause dann auch wirklich streamen lässt [3]. Hier gilt es die ins Auge gefassten Geräte vor der Anschaffung genau auf ihre tatsächliche Formatunterstützung hin abzuklopfen.

Gerade für Linux stehen überraschend viele UPnP-AV-Server als Software zur Verfügung – einige quelloffen, andere kosten Geld. Welche Features die Server mitbringen und wie sie sich im Vergleich zu kommerziellen Konkurrenten und Servern für andere Betriebssystemen einordnen, das zeigt eine große Übersichtstabelle bei Wikipedia [4]. Wir konzentrierten uns beim Test auf die GPL-lizenzierten Kandidaten Rygel, Mediatomb und Ushare. Als Plattform diente uns serverseitig Ubuntu 11.10, wo sich alle drei einfach über das Software-Center installieren lassen. Auf der Client-Seite kam ebenfalls Ubuntu mit verschiedenen UPnP-Clients zum Einsatz, daneben testeten wir eine freie Android-App namens UPnPlay [5].

UPnP als Mehrwert

Zwar konzentriert sich dieser Artikel auf die Fähigkeit von UPnP, Multimedia-Dateien anzubieten, aber UPnP steuert mittlerweile auch Router und setzt das Internet Gateway Device Protocol (IGD) um. Dieses automatisiert Portfreigaben, wenn bestimmte Anwendungen sie verlangen. Das ist nicht ganz risikolos: Meist trifft man auf die Empfehlung, die UPnP-Steuerung für Freigaben im Router besser zu deaktivieren. Das Firefox-Add-on Foxbox [10] verwendet das UPnP-Protokoll zum Beispiel, um die öffentliche IP-Adresse von Fritzbox-Routern auszulesen und zu erneuern. Seit neuestem verknüpft UPnP auch Drucker in Netzwerken miteinander.

Rygel: Server

Rygel [6] befindet sich bereits seit Längerem in der Entwicklung. Sie starten den Server über die Eingabe rygel auf der Kommandozeile. Mangels einer benutzerspezifischen Konfiguration verwendet Rygel zunächst die systemweite Datei /etc/rygel.conf.

Gemäß der dort getroffenen Angaben sucht der Server in Ubuntus Standardverzeichnissen nach Bildern (~/Bilder), Musik (~/Musik) und Videos (~/Videos). Wollen Sie die Voreinstellungen ergänzen, kopieren Sie die Konfigurationsdatei in Ihr Home-Verzeichnis und passen die Kopie mithilfe eines beliebigen Texteditors den eigenen Vorstellungen an.

Dazu ergänzen Sie im Bereich [MediaExport] die mit uris= beginnende Zeile (Abbildung 1) um die Namen der gewünschten Medien-Ordner. Soll Rygel beispielsweise auch das Verzeichnis ~/Downloads einbinden, muss die Zeile folgendermaßen lauten:

uris=@MUSIC@;@VIDEOS@;@PICTURES@;$HOME/Downloads;
Abbildung 1: Rygel richten Sie über eine Konfigurationsdatei ein. Dort ergänzen Sie unter anderem zusätzliche Verzeichnisse, die Sie im Netzwerk teilen wollen.

Im Anschluss an die Änderungen starten Sie den Server neu. Rygel prüft nun, welche Dateien sich in den Verzeichnissen befinden, und gibt eine Meldung aus, sobald er alle erfasst hat (Abbildung 2). Dabei lauert allerdings eine kleine Falle: Kopieren Sie bei laufendem Server neue Dateien in einen der Medien-Ordner, erfasst Rygel das zwar, doch ein UPnP-Client am anderen Ende der Versorgungskette bekommt davon erst einmal nichts mit. Sie müssen Rygel erst neu starten, damit auch die Clients die Änderung bemerken.

Abbildung 2: Nach dem Start durchsucht Rygel die vorgegebenen Verzeichnisse nach Medien.

Haben Sie keine Lust, die Konfigurationsdateien manuell zu bearbeiten, installieren Sie einfach ein grafisches Frontend, das beim Einrichten hilft. Dazu spielen Sie das Paket rygel-preferences ein und rufen dann das gleichnamige Programm auf. In einem weitgehend selbsterklärenden Fenster verwalten Sie nun die Rygel-Freigaben (Abbildung 3). Damit Änderungen auch greifen, müssen Sie Rygel jedoch auch in diesem Fall nach Abschluss der Konfiguration manuell neu starten.

Abbildung 3: Alternativ konfigurieren Sie den UPnP-Server auch mit Hilfe einer grafischen Oberfläche.

Rygel: Clients

Zwar behaupten einige Anwendung unter Linux, dass sie UPnP unterstützen, im Praxistest entpuppt sich das aber mitunter als Übertreibung. Dass es zumindest grundsätzlich funktioniert, zeigt eine Android-Anwendung namens UPnPlay, die Rygels Freigaben (und auch die der anderen Server) ohne große Mucken in der jeweils dafür vorgesehenen Anwendung abspielt: Bilder im Bildbetrachter, Musik im Audioplayer und Videos im Videoabspieler. Weniger souverän agierten die getesteten Desktop-Lösungen.

Der Multimediaplayer Totem beispielsweise lässt sich über ein Framework namens Coherence mit UPnP-Fähigkeiten ausstatten, wozu Sie die Pakete python-coherence und totem-plugins-extra installieren. Dann rufen Sie in Totem den Menüpunkt Bearbeiten | Plugins auf, setzen dort ein Häkchen bei Coherence DLNA/UPnP-Client (Abbildung 4) und starten den Player neu. Wählen Sie nun in Totem aus dem Aufklappmenü ganz rechts den Eintrag Coherence DLNA/UPnP-Client, sollten die UPnP-Freigaben im rechten Bereich erscheinen.

Während Totem im Test Audio- und Video-Dateien abspielte, weigerte es sich, Bilder anzuzeigen. Unter Ubuntu 11.10 funktionierte die Zusammenarbeit mit Coherence nicht, unter Ubuntu 11.04 hingegen schon. Hier spielte Totem im Test die Audio-Dateien von Rygel nach dem Aufrufen zwar recht zügig ab, beim Öffnen einer großen Liste gab der Player jedoch seinen Geist auf. Zudem hängte sich die Software auch gelegentlich beim Abspielen von Musikstücken auf und zeigt Bilder nicht an.

Abbildung 4: Das Coherence-Plug-in verwandelt Totem in einen UPnP-Player – zumindest unter Ubuntu 11.04. Unter 11.10 fand der Player die Erweiterung zum Testzeitpunkt nicht.

Auch das Mediacenter XBMC zeigte Bilder nicht an – und das gilt für beide von uns getesteten Versionen unter Ubuntu 11.04 und 11.10, die wir aus einem PPA installierten. Das Abspielen von Musik klappte mit XBMC nur eingeschränkt. Unter Ubuntu 11.04 brauchte das Mediacenter rund eine Minute, bevor sie das nächste Musikstück abspielte, während der Wartezeit fror XBMC komplett ein. Auch unter Ubuntu 11.10 pausierte die Software beim Abspielen von Musikstücken deutlich zu lange (Abbildung 5).

Abbildung 5: XBMC aus dem PPA legte beim Abspielen von Musikstücken über UPnP jeweils eine sehr lange Kaffeepause ein.

Zudem spielte XBMC unter Ubuntu 11.04 zwar MPEG4-Formate brav ab, jedoch keine Filme mit der Endung .mov. Das liegt wohl daran, dass Rygel als Ausgabeformate zurzeit nur MP3, MPEG TS und PCM unterstützt. Die XBMC-Version von Ubuntu 11.10 stürzte beim Versuch, Videos abzuspielen, komplett ab. Grund war hier aber vermutlich der fehlende 3D-Treiber für die verbaute ATI-Karte. Sowohl im Fall von Totem als auch von XBMC besteht also Verbesserungspotenzial, obwohl die letztgenannte Software sicher besser mit Rygel kooperiert.

Auch VLC kann offiziell UPnP-Streams abspielen. Mit Rygel als Server funktionierte die in Ubuntu 11.10 integrierte Version aber eher schlecht als recht und zeigte die UPnP-Ressourcen nicht an.

Ein auf Java basierender UPnP-Player namens Eezupnp machte hingegen eine gute Figur, spielte jedoch nur Musik ab. Sie entpacken das Softwarearchiv von der Webseite [7], wechseln in den neuen Unterordner und rufen dann die Anwendung im Terminal mittels des Kommandos ./CP auf. Der Player zeigt links die erkannten Ressourcen an, die Sie markieren und rechts in eine Wiedergabeliste schieben (Abbildung 6). Ungewöhnlich erscheint die Fähigkeit von Eezupnp, die Titel auf Wunsch auch lokal zu speichern: Das konterkariert den Sinn von UPnP, kann aber interessant werden, wenn es sich um Freigaben auf fremden Rechnern handelt.

Abbildung 6: Eezupnp funktionierte im Zusammenspiel mit allen Servern sehr gut, spielt allerdings nur Musik ab.

Ushare: Server

Ushare [8] richtet sich über das Verzeichnis /etc/init.d/ als eigener Dienst ein, den Sie mit administrativen Rechten starten müssen (Listing 1, Zeile 1). Geben Sie dabei allerdings keine Verzeichnisse zum Teilen an, erscheint nach dem Start nur die lapidare Meldung No shares available.... In diesem Fall stoppen Sie den Dienst wieder (Listing 1, Zeile 2) und rekonfigurieren ihn über ein Textinterface (Listing 1, Zeile 2).

Listing 1

$ sudo service ushare start
$ sudo service ushare stop
$ sudo dpkg-reconfigure ushare

Dabei geben Sie zunächst den Namen für die Freigabe ein (Abbildung 7). Im der nächsten Maske wählen Sie eine Netzwerkkarte aus, über die der Dienst läuft. Abschließend geben Sie – getrennt durch Kommata – noch die Verzeichnisse an, die Ushare verteilen soll.

Abbildung 7: Ushare lässt sich über eine textbasierte Benutzerschnittstelle einrichten. Neben der Netzwerkkarte, welche die Daten verteilt, geben Sie auch die freizugebenden Verzeichnisse an.

Ushare: Clients

Beim Zusammenspiel von Ushare mit den bereits im Wechselspiel mit Rygel getesteten Clients zeigt sich, wie unterschiedlich die Fähigkeiten von UPnP-Servern ausfallen können.

Der VLC-Client beispielsweise funktionierte unter Ubuntu 11.04 und 11.10 zusammen mit Ushare plötzlich nahezu tadellos – lediglich Bilder zeigte er nicht an, aber das können auch die anderen Clients nicht. Seine UPnP-Fähigkeiten versteckt VLC allerdings etwas verschämt. Um sie zu aktivieren, drücken Sie nach dem Start der Anwendung [L], um die Wiedergabeliste aufzurufen, wählen links Lokales Netzwerk und darunter Universal Plug&Play. Rechts erscheinen dann die Freigaben von Ushare (Abbildung 8).

Abbildung 8: Ästhetisch hat die VLC-Standardoberfläche nichts zu bieten, spielt aber die von Ushare angebotenen Audio- und Videodateien ohne zu meckern ab.

Auch bei XBMC ließen sich Änderungen beobachten: Die Version unter Ubuntu 11.10 stürzte weiterhin ab (was an den proprietären Treibern lag), zeigte nach wie vor keine Bilder an, spielte nun aber Musik ohne auffällige Pausen ab. Auch die MOV-Datei, die Rygel offenbar nicht ausliefern konnte, tauchte nun problemlos im XBMC von 11.04 auf. Zudem spielte XBMC hier die Dateien von Ushare mit einer deutlich geringeren Verzögerung ab, die bei 10 bis 15 Sekunden pro Song lag.

Die Totem-Version unter Ubuntu 11.10 erkannte das Coherence-Plugin nicht, und so blieb der Player hier außen vor. Unter Ubuntu 11.04 dagegen spielte Totem Musikstücke fast ohne Hänger ab und schien sich generell mit Ushare bestens zu verstehen. So erkannte es die MOV-Datei und gab sie wieder, auch MPEG-4-Dateien liefen problemlos.

Die sonst vorbildliche Android-App UPnPlay patzte hier beim Abspielen der Videos: Sie erkannte ein Flash-Video gar nicht und versuchte zwei andere Videos mit dem Audioplayer abzuspielen. Das gelang zwar, ist aber nicht Sinn der Sache. Lediglich eine MOV-Datei erkannte UPnPlay als Video, spielte sie aber nicht ab. Bilder und Musik verarbeitete die Android-App im Zusammenspiel mit Ushare hingegen korrekt.

Mediatomb: Server

Mediatomb [9] bringt als einziger der drei Server im Test eine browserbasierte Oberfläche mit und lässt sich auf diese Weise recht komfortabel bedienen. Mediatomb hängt sich als Dienst im System ein und startet auch automatisch, wenn Sie den Rechner neu booten. Um Mediatomb später komplett zu beenden, genügt es auch nicht, den Browser mit dem Interface zu schließen: Sie müssen den zugehörigen Dienst mittels sudo service mediatomb stop explizit beenden.

Allerdings bietet der Server die Dateien erst dann im LAN an, wenn Sie mediatomb explizit aufrufen. Erst bei dieser Gelegenheit startet die Software auch die webbasierte Oberfläche an, die entsprechende URL findet sich in der Kommandozeilenausgabe (Abbildung 9). Übersehen Sie diesen Zwischenschritt, erhalten Sie im Browser lediglich die Meldung MediaTomb UI is disabled. Check your configuration.

Abbildung 9: Nach dem Start über die Kommandozeile zeigt Mediatomb eine URL an, die Sie in den Browser eingeben, um das Web-Interface zu erreichen.

Um die Ordner freizugeben, die Sie veröffentlichen wollen, klicken Sie im Browser-Interface von Mediatomb auf Filesystem und suchen dann die entsprechenden Verzeichnisse heraus, deren Inhalte im rechten Bereich des Fensters erscheinen (Abbildung 10). Wollen Sie ein komplettes Verzeichnis indizieren, klicken Sie rechts oben neben dem Verzeichnisnamen auf das Pluszeichen.

Soll Mediatomb den Ordner regelmäßig auf neuen Dateien hin abklopfen, verwenden Sie das Symbol mit den zwei kreisförmigen Pfeilen. Einzelne Dateien ergänzen Sie hingegen über die Pluszeichen rechts daneben – mehr gibt die Oberfläche auch nicht her. Klicken Sie anschließend auf Database, so erscheinen dort die gerade gewählten Dateien und Ordner. Auch hier finden Sie rechts oben hilfreiche Symbole, die diesmal jedoch dabei helfen, die Medien wieder zu entfernen.

Abbildung 10: In Mediatomb verwalten Sie die Freigaben bequem in einem Browser-Interface.

Mediatomb: Clients

Auch im Zusammenspiel mit Mediatomb patzte UPnPlay beim Abspielen der Videos und zeigte nur ein MPEG-Video an – Musik und Bilder stellte die Android-App hingegen problemlos dar. Die Java-Applikation Eezupnp gab sich auch im Zusammenspiel mit Mediatomb keine Blöße, sondern spielte die Musik brav ab.

Bei Videos fiel XBMC unter Ubuntu 11.04 positiv auf, da es auch ein Flash-Video abspielte. Zwischen den Musiktitel pausierte die Anwendung allerdings wieder ebenso lange wie beim Einsatz von Rygel, was den Player in dieser Beziehung unbrauchbar macht. Auch Bilder zeigte XBMC unter Ubuntu 11.04 nicht an. Die XBMC-Variante von Ubuntu 11.10 reagierte ebenfalls wie zuvor: Sie stürzte beim Abspielen von Videos ab, hatte mit der Musik wenig Probleme, zeigte aber keine Bilder an.

Während VLC unter Ubuntu 11.04 zwar die Verzeichnisse, aber nicht die darin enthaltenen Inhalte anzeigte, spielte VLC unter Ubuntu 11.10 alle von Mediatomb angebotenen Audio- und Videodateien problemlos ab. Bilder ließen sich dagegen nicht anzeigen.

Auch Totem spielte – zumindest unter Ubuntu 11.04 – alle Filme problemlos ab. Es gab zwar kleine Pausen zwischen den abgespielten Musikstücken, davon abgesehen kam die Software aber auch mit der Musiksammlung gut zurecht. Bilder ignorierte sie hingegen schlicht.

Fazit

Funktioniert UPnP, ist es zweifellos eine feine Sache, denn es spart lange Kopiervorgänge und macht Mediensammlungen im Handumdrehen netzwerkweit verfügbar. In der Praxis weist das Konzept jedoch einigen Schwächen auf, und das nicht nur unter Linux. Wie in unserem Test mit Ubuntu funktioniert mal die eine, mal die andere Client/Server-Kombination besser. Es gilt also eine Paarung zu finden, die sich möglichst optimal ergänzt.

In unserem Test verursachte das Streamen von Musik im MP3-Format die wenigsten Probleme, mit dem Anzeigen von Bildern standen hingegen alle Anwendungen auf Kriegsfuß. Lediglich die Android-App UPnPlay reichte die Grafiken an die richtige Anwendung weiter, patzte andererseits aber teilweise beim Abspielen von Filmen. Abhängig von den Fähigkeiten des Servers spielten die UPnP-Clients mal alle, mal nur bestimmte Formate ab. Einige Clients weigerten sich komplett, die im LAN geteilten Dateien anzuzeigen.

Als eine der problemlosesten Kombinationen erwies sich in unseren Test das Duo Ushare/VLC. Auch mit Mediatomb kommt VLC recht gut zurecht. Im Zusammenspiel mit Rygel dürfte XBMC die erste Wahl darstellen, sobald die Software beim Zeigen von Filmen nicht mehr abstürzt. Wollen Sie über UPnP einfach nur Musik hören, installieren Sie am besten Eezupnp: Es erledigt diese Aufgabe unspektakulär und zuverlässig – und im Zusammenspiel mit allen drei Servern. 

Glossar

SSDP

Das Simple Service Discovery Protocol dient im Netz zur Suche nach UPnP-fähigen Geräten.

HTTPU

Eine Erweiterung von HTTP 1.1, die als Transportprotokoll UDP statt TCP verwendet.

Infos

[1] Digital Living Network Alliance: http://www.dlna.org

[2] DLNA-Zertifizierung: http://tinyurl.com/lu0212-dlna-cert

[3] DLNA-Tücken (Cnet.de): http://tinyurl.com/lu0212-cnet-dlna

[4] UPnP-Server-Vergleich (Wikipedia): http://tinyurl.com/lu0212-upnp-server

[5] UPnPLay: http://tinyurl.com/lu0212-upnplay

[6] Rygel: http://live.gnome.org/Rygel

[7] Eezupnp: http://eezupnp.de

[8] Ushare: http://ushare.geexbox.org

[9] Mediatomb: http://mediatomb.cc

[10] Foxbox: https://addons.mozilla.org/de/firefox/addon/foxbox/

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 5 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

Kommentare