UPnP
Universal Plug and Play (UPnP) ist ein relativ offener Standard zur Ansteuerung von elektronischen Geräten in einem Netzwerk. Dabei wird grundsätzlich Art und Verwendung des Gerätes nicht eingeschränkt und reicht vom einfachen Finden eines Netzwerkdruckers bis hin zu Hausautomation, wie zum Beispiel das Steuern von Licht. UPnP verwendet hierfür gängige Protokolle wie TCP/IP, HTTP und XML.
Inhaltsverzeichnis |
Allgemeines
UPnP
UPnP definiert eine Reihe unterschiedlicher Geräteklassen, die bestimmte Aufgaben im Netzwerk übernehmen. Jedes davon durchläuft beim Verbinden mit dem Netzwerk eine Bekanntmachungsprozedur. Das Gerät wird dabei
- dem Netz beitreten,
- sich eine IP-Adresse besorgen (i.d.R. DHCP, aber auch AVAHI ist möglich),
- seinen Namen verkünden,
- seine Fähigkeiten preisgeben,
- andere Geräte im Netzwerk ausfindig machen und deren Fähigkeiten abfragen
- und vor Verlassen des Netzwerks unnötige Informationen bereinigen.
UPnP/DLNA unter Linux
libupnp [1] ist eine bereits häufig verwendete OpenSource C-Bibliothek. Die Entwicklungsumgebung enthält neben den notwendigen Funktionen zum Erstellen eines Servers bzw. eines Clients auch einen HTTP-Server, der bei der Bereitstellung der Streams verwendet werden kann.
gupnp [2] ist eine weitere Bibliothek, welche in C geschrieben ist. Sie bietet neben zusätzlichen Tools auch eine grafische Oberfläche, um gefundene Geräte und deren Eigenschaften anzeigen zu lassen. Die API ist vollständig objektorientiert.
libdlna [3] ist eine "Erweiterung" von UPnP und basiert auf libupnp. Da im DLNA-Standard lediglich vorhandene Protokolle genutzt werden und die unterstützten Streamingformate auf wenige reduziert worden, stellt es nicht wirklich eine Zugewinn dar. Die Bibliothek umfasst alle notwendigen Funktionen, um einen DLNA-kompatiblen Streaming Server nach DLNA-Standard Version 1.5 zu erstellen. Dabei werden folgende Formate unterstützt:
- Bilder: JPG, PNG
- Video: MPEG-1, MPEG-2, MPEG-4 Part 2, MPEG-4 Part 10 (a.k.a AVC/H.264)
- Audio: AC3, AMR, ATRAC3, LPCM, MP3, MPEG-4 (AAC), WMA
Andere Formate werden NICHT unterstützt und müssen notfalls mit ffmpeg umkodiert werden. Hierin besteht auch der große Nachteil an DLNA. Selbst wenn das Format an sich korrekt ist, existieren weitere Einschränkungen an das Medium. Zum Beispiel werden nur bestimmte Bitraten oder Auflösungen angeboten. Fällt zum Beispiel ein Video nicht in dieses eng gesteckte Raster, wird es unter Umständen beim Client nicht korrekt oder gar nicht abgespielt. Aus diesem Grund ist die Entwicklung an der Bibliothek eingestellt worden und der Autor auch kein weiteres Interesse an DLNA mehr hat.
Server
Hardware
Hardwarelösungen, welche einen Media Server bereitstellen
- Buffalo LinkStation: Multimedia Server mit DLNA-Zertifizierung
Software
Software, sowohl ClosedSource als auch OpenSource
- MythTV: OpenSource PVR-Software zum Ansehen und Aufnehmen von Fernsehübertragungen
- MiniDLNA: MiniDLNA (aka ReadyDLNA) mit dem Ziel kompatibel zu allen DLNA/UPnP-AV Clients zu sein
- uShare: UPnP/DLNA Media Server für GeeXBox.
- MediaTomb: Standalone Streaming Server mit sehr umfangreichen UPnP-Support.
- XBox Media Center (XBMC): Ein UPnP-Media Server ist seit Sep. 2007 enthalten.
- Windows Media Player 11: Medien werden über den integrierten Server automatisch im Netz angeboten.
- GMediaServer: Ein OpenSource-Media Server des GNU-Projekts
- Fuppes: FUPPES is a free, multiplatform UPnP A/V Media Server.
Client
Hardware
Hardwarelösungen mit UPnP oder DLNA-Unterstützung
- D-Link DSM-320 Media Player mit WLAN und UPnP-Unterstützung.
- D-Link DSM-520 HD-fähiger Media Player mit WLAN/LAN.
- Buffalo LinkTheater HD HD-fähiger DLNA-zertifizierter Media Player.
- Sony Playstation 3 HD-fähig, DLNA
Software
Softwareclients, die UPnP zur Medienfindung nutzen.
- MythTV: OpenSource PVR-Software zum Ansehen und Aufnehmen von Fernsehübertragungen
- CyberLink PowerDVD: kommerzieller Videoplayer für Windows
- Windows Media Player 11: Angebote werden schnell erkannt und nach Abfrage in die Medienbibliothek integriert.
- XBox Media Center (XBMC): UPnP Client ist bereits seit 2006 implementiert
- Nero Show Time: getestet mit Version 4.3.2, vdr/stremdev und Mediatomb, auch mit HDTV
- Totem: Gnome Video Player
- VLC: Video Lan Client
Dokumentationen
- Designing a UPnP AV Media Server Intel White Paper
- Designing a UPnP AV Media Renderer Intel White Paper
- Dokumentationen des UPnP-Forums offizielle White Papers, Beispiele und Schemavorlagen
Links
- libupnp Linux-SDK
- libdlna C-Bibliothek für DLNA Streaming Server V1.5
- gupnp objektorientierte C++-Bibliothek
- UPnP-Forum (offizielle UPnP-Seite)
- UPnP bei Wikipedia