Tim Jansen's Blog (deutsch)


2006/01/26

Die UPnP AV Architektur (Teil 2)


(Teil 1, Teil 2, Teil 3)

Hier ist der zweite Teil meiner Einführung in die UPnP AV Architektur. Nachdem es im ersten Teil um UPnP ging, komme ich nun endlich zu den eigentlichen Funktionen des AV Standards. Ich plane ausserdem noch einen dritten Teil, in dem es um existierende und angekündigte Geräte gehen wird und vor allem darum, wie diese UPnP benutzen.

Der UPnP Audio/Video Standard

Der UPnP AV Standard dient dazu, dass Geräte über das Netzwerk Medien wie Musik, Videos und Bilder austauschen können. Die Medien können in Echtzeit gestreamt werden, beispielsweise wenn man sich per UPnP einen Film ansieht, der anderswo auf einem Server liegt. Es gibt aber auch die bislang kaum genutzte Möglichkeit, Medien von einem Gerät auf das andere zu kopieren. Beispielsweise könnte eine mit WLAN ausgestattete Kamera automatisch ihre Bilder auf einen Server kopieren, sobald sie im Netzwerk ihres Besitzers ist. Ebenso flexibel ist UPnP bei der Frage, wer von wo aus die Geräte bedient. Sowohl die teilnehmenden Geräte, als auch externe Programme oder Fernbedienungen, können theoretisch zur Steuerung benutzt werden.

Aufbau der Architektur

Das UPnP Modell kennt drei Rollen: das MediaServer Gerät, das MediaRenderer Gerät und den Control Point. Wenn man ein Stück UPnP-fähiger Hard- oder Software hat, dann nimmt diese gewöhnlich ein oder zwei dieser Rollen ein. Hier die Rollenverteilung im Detail:
  • MediaServer: Der MediaServer ist das Gerät, das die Medien bereithält. Wichtigster Service des MediaServers ist der Content Directory Service (CDS). Der CDS erlaubt es einem Control Point, die Medien des Servers in Verzeichnis-Form zu durchsuchen. Genau wie in einem Dateisystem gibt es Ordner, hier Container genannt, und Dateien, die im CDS Items heissen. Items können die für Medien üblichen Metadaten wie Titel, Autor, Genre usw haben. Ausserdem kann ein CDS es dem Control Point erlauben, anhand der Metadaten nach Items zu suchen. Dies wird jedoch nicht von jedem MediaServer unterstützt. Ebenso gibt es die bislang wenig genutzte Fähigkeit, neue Items und Container anzulegen. Dazu kann der Control Point dem MediaServer befehlen, von einer bestimmten URL die Daten downzuloaden, was bei UPnP als Import bezeichnet wird. Auch die andere Richtung ist möglich, genannt Export, bei dem der UPnP Server eine Datei per HTTP an eine URL schickt.
    Der zweite Service des MediaServers ist der ConnectionManager. Mit diesem kann man herausbekommen, mit welchen Geräten der MediaServer gerade verbunden ist und welche Formate und Protokolle er für MediaRenderer bereitstellen kann. Zusätzlich kann ein MediaServer den optionalen AVTransport Service zur Verfügung stellen. AVTransport erlaubt klassische HiFi-Kommandos wie 'Play', 'Pause' oder das Springen innerhalb eines Titels. Das ist vor allem gedacht für Geräte, die nicht mit Dateien arbeiten, sondern mit Quellen wie CDs oder Videobändern. Im Normallfall wird der AVTransport Service aber vom MediaRenderer implementiert, und der MediaServer verzichtet auf AVTransport.
  • MediaRenderer: MediaRenderer sind für die Anzeige oder Wiedergabe der Medien zuständig. Beispiele für reine MediaRenderer wären Monitore oder Lautsprecher, die statt den üblichen Eingängen aber Ethernet oder WLAN benutzen würden. Die Geräte, die man derzeit kaufen kann, sind keine reinen MediaRenderer, sondern zugleich auch Control Points. Der Media Renderer hat bis zu drei Services. Wie der MediaServer muss der MediaRenderer einen ConnectionManager Service haben, mit dem man seine Verbindungen kontrollieren kann. Ausserdem hat er den RenderingControl Service, mit dem Einstellungen wie Lautstärke und Kontrast gemacht werden können, je nach Art des Gerätes. Der dritte Service ist optional, und zwar der bereits erwähnte AVTransport Service für die Steuerung der Wiedergabe.
  • Control Point: Der Control Point repräsentiert die Benutzeroberfläche und kommuniziert dazu mit MediaServer und MediaRenderer. Um einen Titel zu spielen sucht man mit dem Control Point normalerweise durch den CDS des MediaServers bis man den Titel gefunden hat. Wenn man ihn dann abspielen will, wird der Control Point mit den ConnectionManagern von MediaServer und MediaRenderer Kontakt aufnehmen und die beiden davon überzeugen, dass der MediaRenderer den Titel vom MediaServer spielt. Drückt der Benutzer auf die Pause-Taste oder benutzt eine andere Funktion zur Veränderung der Wiedergabe, wird der Control Point das entsprechende Kommando an den jeweiligen AVTransport Service senden. Ebenso können Einstellungen wie Lautstärke und Helligkeit vom Control Point mit dem RenderingControl Service verändert werden.


Transport und Formate

Die eigentliche Kommunikation zwischen MediaRenderer und MediaServer wird von UPnP nicht direkt festgelegt. Die UPnP-Spezifikation macht keinerlei Vorgabe darüber, wie die Medien von Server zu Renderer transportiert werden sollen, noch welche (Audio-, Video- etc) Formate zu unterstützen sind.
Es ist letztenendes die Aufgabe des Control Points, die unterstützten Formate der beiden Geräte abzugleichen und ein passendes auszuwählen. Und es ist Aufgabe des Besitzers, sich nur solche Geräte anzuschaffen, die miteinander klarkommen, indem sie mindestens ein gemeinsames Format verstehen. Die Spezifikation benutzt in den meisten Beispielen HTTP als Protokoll, und ich habe auch noch von keinem UPnP-Gerät gehört, das mit HTTP nicht zurechtkommt. HTTP ist zwar nicht unbedingt optimal zum Streamen von Medien, aber es ist simpel und funktioniert in den meisten Fällen gut genug.
Das zweite in der Spezifikation beschriebene Protokoll ist RTSP. RTSP ist im Gegensatz zu HTTP fürs Streaming konzipiert, ist aber auch deutlich komplizierter und funktioniert im Gegensatz zu HTTP nicht mit jedem File-Format.
Da nicht jeder MediaRenderer jedes Format versteht, kann ein MediaServer laut UPnP-Spezifikation auch Medien in Echtzeit in ein anderes, vom MediaRenderer verstandenes Format transkodieren. Das ist vor allem bei Audio-Daten eine relativ einfache Lösung für das Formatchaos, wird bei Videos aber derzeit noch sehr viel Rechenleistung benötigen.

Digital Living Network Alliance (DLNA)

Die DLNA ist ein weiteres Firmenkonsortium, welches Interoperabilitätsrichtlinien festlegt und Geräte zertifiziert. Die beiden ersten Geräteklassen, für die Richtlinien herausgegeben wurden, sind Digital Media Server und Digital Media Player. Beide basieren auf dem UPnP AV Standard, und geben unter anderem das Minimum der zu unterstütztenden Transportprotokolle und Formate an. So müssen alle DLNA-zertifizierten Geräte LPCM (unkomprimierte) Audiodaten verarbeiten können. Als Mindest-Videoformat ist MPEG2 vorgeschrieben. Mit einem transkodierendem Server sollte man daher jedes mögliche Format in guter Qualität auf einem DLNA-Gerät konsumieren können, jedenfalls wenn es nicht einen Haken gäbe: die meisten Server können derzeit entweder gar nicht transkodieren, oder verstehen nur wenige Formate. Langfristig sind die DLNA Richtlinien aber sicherlich eine gute Idee.


zu Teil 3.



This page is powered by Blogger. Isn't yours? Creative Commons License
All text in this blog is licensed under a Creative Commons License.
(Images containing screenshots etc are excluded)