Videolan schiebt von einem mulimedial aufgemotzen zentralen Linux-Rechner aus alle möglichen Formate ins lokale Netz. Auf den Clients muss nur noch ein Mediaplayer laufen.
Wenn Opa, Vater und Tochter unter einem Dach leben und ihre Freizeit verbringen und jeder einen eigenen Computer besitzt, wird es einerseits schnell eng auf der DSL-Leitung und andererseits braucht ein jeder PC eine komplette Hardwareausstattung: Opa hört den Deutschlandfunk über Internet, Papa schaut DVD und das Tochter des Hauses zappt mit einer TV-Karte durch die Kanäle.
Die optimale Lösung wäre ein zentraler Media Streaming Server im lokalen Netzwerk: Ein Rechner mit DVD-Laufwerk, TV-Karte und anderem Multimedia-Schnickschnack, der verschiedene Bild- und Tonquellen entgegen nimmt und sie allen Rechnern im LAN per Multicast oder HTTP-Stream verfügbar macht. Auf den Client-Rechnern braucht nur ein Mediaplayer laufen, der die URL des Streaming Server verabreicht bekommt. Genau das macht das hier vorgestellte Projekt Videolan.
Die für diese Aufgabe früher üblicherweise eingesetzten Windows Media Services 2003 oder die Real-10-Plattform werden damit weitgehend überflüssig. Videolan ist natürlich nicht nur für Generationen übergreifende Kleinfamilien geeignet: In Studentenwohnheimen, für Multimedia-Messeauftritte mit vielen Bildschirmen, in Schulungsfirmen und andernorts kann das Programm seine Dienste anbieten.
Französisches Doppel
Videolan [1] ist das Projekt mehrerer Studenten der École Centrale Paris [2] und inzwischen vieler Entwickler in der ganzen Welt. Es steht unter der General Public License. Videolan teilt sich aus evolutionären Gründen in zwei Projekte: Der Videolan Server VLS ist ein reiner, ziemlich highendiger Streaming Server für zuverlässige Bild- und Tonquellen in Formaten, wie sie professionelle Software oder DVDs und DVB-Kanäle produzieren. Es kann mehrere Quellen gleichzeitig lesen. VLS läuft nur unter Linux und Windows.
VLC dagegen, der Videolan Client, ist entwicklungsgeschichtlich ein Programm zum Empfangen, Dekodieren und Anzeigen von MPEG-Streams. Die aktuelle Formateliste unter [3] ist beeindruckend, denn das Programm kennt neben den Codecs MPEG-1, 2 und 4 auch DivX und Cinepak sowie die Containerformate AVI, Ogg, MOV, MP4, ASF, WMA, WAV und einige andere. Als Medien eignen sich neben Dateien Audio-CDs, DVDs, VCDs, DTS Audio CD, DVB-S/C/T sowie UDP, RTP, HTTP, FTP und MMS. Einzig die Real-Formate fehlen in der Liste.
VLC arbeitet wahlweise unter Linux, Windows, MacOS X, BeOS, vielen BSD-Abkömmlingen, Solaris, QNX, und mehrere Embedded Linux Varianten, zum Beispiel dem Yopy und Sharps Zaurus. Basis beim Bedienen ist ein Kommandozeilen-Tool. Darauf setzen mehrere Frontends aus unterschiedlichen Toolkits auf, von denen allerdings nur zwei aktiv entwickelt werden. Das WX-Windows-basierte Frontend ist nicht besonders ansehnlich, dafür aber das Skins Interface. VLC bringt zudem ein ein passendes Mozilla-Plugin mit. Konqueror kommt mit dem VLC-Plugin leider nicht zurecht.
Anders als es der Name vermuten lässt, haben die VLC-Entwickler ihrem Lieblingskind auch eine Serverfunktionalität eingepflanzt; es arbeitet auf Desktop-Rechnern bei Bedarf als Client und Server zugleich. Anders als VLS kann VLC nicht mehrere Quellen gleichzeitig lesen. Dieser Artikel konzentriert sich auf den VLC, der für die angepeilten Anwendungsfall mehr als ausreichend ist.
Was VLC als Client anzeigen kann, kann es zum großen Teil auch im Netz als Server streamen. Der Server unterstützt dabei UDP, RTSP und hat einen kleinen Webserver für HTTP-Streaming eingebaut. Er kann an einen einzelnen Client ausliefern (Unicast) oder per Multicast and eine Gruppe von Rechnern. Je nach Betriebssystem ist die Liste der unterstützten Features unterschiedlich.
Den Server einrichten
VLC-Pakete für recht viele Distributionen hält die Webseite des Projekts [1] zum Download bereit. Das Slackware-Paketformat fehlt in der Liste, die RPM-Pakete für Red Hat lassen sich aber ohne Probleme unter Slackware mit dem -nodeps-Schalter installieren. Das rund 11 MByte große Tar.gz-Archiv für die passende Distribution enthält alle notwendigen RPMs.
Nach deren Installtion fallen keine weiteren Konfigurationsarbeiten an. Der Benutzer startet den Server mit Optionen von der Kommandozeile – sind Geräte im Spiel muss er selbstverständlich entsprechende Rechte besitzen. Später kann man den VLC-Befehl in ein Systemstart-Skript dauerhaft einbinden. Die Syntax des Serveraufrufs kann recht komplex werden. Grundsätzlich folgt sie dem Schema:
vlc -vvv Medienquelle --sout Ausgabeziel
Als erstes Beispiel sollen eine DVD per HTTP Protokoll von allen Benutzern im Netzwerk abrufbar sein:
vlc -vvv dvdsimple:/dev/dvd --sout '#standard{access=http,mux=ts,url=192.168.0.97:8080}'
Der vordere Teil liest den Eingangs-Stream, indem er das DVD-Zugriffsmodul dvdsimple aufruft und es anweist auf das Gerät /dev/dvd zuzugreifen. die Option -vvv stellt einen relativ hohen “Geschwätzigkeitslevel” ein. Der hintere Teil steuert die Ausgabe über den in VLC eingebauten Mini-HTTP-Server, der für Clients auf der angegebenen IP-Adresse auf Port 8080 ansprechbar ist. Falls im Netzwerk ein DNS-Server Dienst tut, darf anstelle der IP Adresse der Hostname des Rechners stehen. Das Ausgeben erfolgt dank #standard ohne Veränderung des Eingangsstreams. Als Transportformat fungiert der MPEG-Transportstream. Abb. 2 zeigt, dass man per -loop-Option DVDs auch in Endlosschleife streamen kann.

-loop-Option kann man DVDs in Endlosschleife streamen.” width=”300″ height=”211″ />
Abbildung 2: Per-loop-Option kann man DVDs in Endlosschleife streamen.Opa hört Webradio
Die Verfahrensweise zum Streamen von Webradio, hier im zweiten Beispiel des Deutschlandfunks, ist sehr ähnlich. Einzige Änderungen sind das Transportformat OGG und der Webserver-Port. Der Programmaufruf lautet:
vlc -vvv http://62.153.249.30/live_dlf --sout '#standard{access=http,mux=ogg,url=192.168.0.97:8081}'
Sobald nun zwei oder mehr Anwender im Netz den Deutschlandfunk hören, stellt sich der Multiplikatoreffekt des Verfahrens ein. Denn das VLC-Eingangsmodul saugt den Audio-Stream nur einfach aus dem Internet und das Ausgangsmodul sorgt für das lokale Streaming.
Im Test gelang es sogar, VLC zwei Streams gleichzeitig übertragen zu lassen. Die Einschränkung ist, dass beide Streams nicht das gleiche Ausgabemodul benutzen. Man kann also beispielsweise nicht zwei Quellen auf einmal per HTTP im Netz verbreiten. Es ist aber möglich, eine DVD per HTTP und den Deutschlandfunk per UDP Broadcast ins lokale Netz zu senden, also Beispiel eins und zwei zu kombinieren:
vlc -vvv http://62.153.249.30/live_dlf --sout '#standard{access=udp,mux=ogg,url=192.168.0.255,sap=Deutschlandfunk}'
Das hier verwendete Kürzel SAP hat nichts mit einer großen deutschen Softwarefirma zutun, sondern steht für den in VLC eingebauten Stream-Ankündigungsserver. Der wertet den Stream mit Textinformationen auf, zum Beispiel einer Playliste. Als URL benutzt das Beispiel die Broadcast-Adresse des lokalen Netzwerks. In Summe kann VLC alle möglichen Eingangsformate auf die verschiedensten Ausgangsformate mit diversen Nebenbedingungen abbilden. Der Anwender muss sich nur durch die Dokumentation arbeiten und den passenden Programmaufruf zusammensetzen.
Alternative: Kaffeine
Auch der Xine-basierte Mediaplayer Kaffeine [7] kann seit Version 0.43 per HTTP ins Netzwerk streamen. Dazu wählt der Benutzer einfach den im Menüpunkt Abspielen | Netzwerkübertragung | Als Master definieren an. Allerdings kann Kaffeine nicht auf so viele Geräte wie VLC zugreifen. Dafür bietet es ein sehr komfortables Konqueror- und Mozilla-Plugin und besitzt eine integrierte Screenshot-Funktion.
Clients gibt es reichlich
An Mediaplayern für Linux und andere Betriebssysteme herrscht kein Mangel. Xine [4], Mplayer [5] oder der proprietäre Real-Player [6] sind einfach zu handhaben und arbeiten zuverlässig in jeder Umgebung. Programme für KDE sind Kaffeine – es fußt auf Xine – [7] oder die beiden Mplayer-basierten Kplayer [8] und KMPlayer (er kann zusätzlich Xine nutzen) [9]. Für Gnome eignen sich das Mplayer-Frontend Totem [10] oder Gxine [4]. Letzteres ist nicht an die Gnome-Bibliotheken gebunden und damit in allen Windowmanagern einsetzbar. Daneben ist der von der Firma Real geförderte, ambitionierte Helix-Player [11] mit GTK-Oberfläche einsetzbar, der als Basis für die zukünftigen Real-Player-Versionen dient.
Die Bedienung der Mediaplayer ist simpel: Bei Kaffeine beispielsweise wählt man im Dateimenü URL öffnen, trägt die Adresse des VLC-Rechners ein, und nach kurzem Puffern von Daten auf der Festplatte legen Bild, Ton oder beide gemeinsam los. Kleine Besonderheiten wie beim Gxine, der einen Media Resource Locator (MRL) statt einer URL sehen will (siehe Abb. 5), sind schnell erlernt.
VLC eignet sich natürlich auch als Client und ist bei Quellen aus dem Netz umfangreich konfigurierbar und sehr technisch gehalten – was nicht jedermanns Geschmack ist. Übersichtlicher ist das Mozilla-Plugin von VLC, das im Zuge der RPM-Installation in /usr/lib/mozilla-1.6 zu liegen kommt. Falls Mozilla oder Firefox woanders siedeln, muss man die Dateien aus den Unterverzeichnissen components und plugins in die tatsächlichen Browser-Verzeichnisse kopieren. Dann steht dem Videovergnügen nichts mehr im Wege. Nur die Knabbereien für den Videoabend im Netz müssen sie noch selbst kaufen.
Der Autor
Michael Stibane, oder kurz Stibs, arbeitet als freier Trainer für Webdesign und Linux und hilft bei LPI und MEPIS Linux fleißig mit. Wenn er nicht irgendwo in Sachsen unterrichtet, schraubt er sicher an einem Netzwerk, übt mit seiner Tochter für die Englischprüfung oder chattet bis in die Nacht auf freenode.net im Channel #mepis.
Glossar
-
Multicast
-
Beim Multicasting verschickt der jeweilige Sender seine Informationspakete im Netz einmal über speziell dafür reservierte IP-Adressen. Empfänger der Pakete sind alle Rechner, die sich zuvor für Multicast angemeldet haben. Darum belasten – anders als das Broadcasting – die so verschickten Daten nur die Verbindungswege im Netz, die wirklich zu einem Empfänger führen.
-
Codecs
-
Codecs sind die Algorithmen zur Kompression und Dekompression der multimedialen Daten, von denen es jede Menge mit den unterschiedlichsten Merkmalen gibt. DivX oder MPEG sind bekannte Vertreter dieser Gattung. Glücklicherweise gibt es die Mplayer-Seite [5], die alle wichtigen Codecs für Linux gebündelt ins Netz stellt.
-
Containerformate
-
Ein Stream besteht aus mehreren Komponenten, zum Beispiel Video und Audiodaten. Die Software bündelt beide, indem sie die Komponenten für den Transport über das Netzwerk zu einem Päckchen zusammenschnürt. Das funktioniert mit so genannten Transport- oder Containerformaten, beispielsweise Windows AVI oder Quicktime MOV. Auch MPEG gehört zu den Transportformaten, das sowohl Codec als auch Container ist und deshalb eigentlich als MPEG System bezeichnet wird.
Infos
[1] Videolan-Projektseite: http://www.videolan.org
[2] École Centrale Paris: http://www.ecp.fr
[3] Von VLC unterstützte Formate: http://www.videolan.org/vlc/features.html
[4] Xinehq, alternativer Client und Mediaplayer, der DVD-Subtitel unterstützt: http://xinehq.de
[5] Mplayer, die Webseite bietet Videocodecs zum Download: http://www.mplayerhq.hu
[6] Betagter Real-Player zum kostenlosen Download (5 MByte): http://germany.real.com/player/?&src=ZG.de.idx,ZG.de.rp.rp.hd.def
[7] Kaffeine: http://kaffeine.sourceforge.net
[8] Kplayer: http://kplayer.sourceforge.net
[9] KMPlayer: http://www.xs4all.nl/~jjvrieze/kmplayer.html
[10] Totem: http://www.hadess.net/totem.php3
[11] Der Open-Source-Player Helix dient als Basis für die zukünftigen Real-Player-Versionen: https://player.helixcommunity.org








