Stand: Februar 2009
Letzte Änderung: 16. Feb. 2009
Author: Lutz Wagner
in der Compilation für eComstation und OS/2 | ||||||||||||||||
|
|
Vor kaum einer halben Generation geriet diese trotz allem recht befriedigende Grundordnung ins Wanken: Musik wurde digitalisiert und die Tonträger stammten aus dem Umfeld der Personal Computer. Auch die Abspielgeräte fanden sich auf dem PC. Neu war eigentlich nur der konkrete Ort: Nicht mehr der Wohnbereich, sondern dort, wo der PC steht, war als Ort des Musikhörens bestimmt.
Das schaffte Konflikte: Wer will schon zum entspannten Easy-Listening sich auf den harten Bürostuhl klemmen? Oder andersherum: Welche durchgestylte Wohnzimmerlounge möchte sich schon gern durch ein Büro-Arbeitsgerät verunstaltet sehen?
Die Lösung erleben wir diese Tage: Seit Beginn des 3.Jahrtausends existiert die Technik des "Streaming". Hierdurch vereinigt sich die Mobilität eines MP3-Players mit der Vielfalt und Datenkonsistenz einer zentral verwalteten Musiksammlung.
Und das Schönste: Der eCS-User muß bei dieser Technik nicht hinten anstehen!
Wir sprechen von 'Streaming', wenn ein Server Media-Daten an einen Client 'sendet', wobei der Client die Daten bereits beginnt abzuspielen, bevor die Datei in Gänze übertragen ist.
Wer es ausführlich wissen will, schlage bei Wikipedia nach.
Media-Daten sind typischerweise
Im Ergebnis stellt sich für den Benutzer (Hörer) dasselbe Erlebnis ein, wie beim Senden von Rundfunk über Radiowellen. Der wesentliche Unterschied (außer dem Übertragungsmedium selbst) besteht darin, dass beim Rundfunk der Sender seine Wellen nur einmal abstrahlt und alle Hörer ('Clients') bedienen sich in beliebiger Anzahl aus diesem Angebot. Hingegen muß der Sender eines Internet-Radios für jeden zusätzlichen Hörer eine neue Direkt-Verbindung (Peer-to-Peer) auf TCP/IP-Basis eröffnen, was nicht nur theoretisch zu Bandbreiten-Problemen führen kann.
Gemeinsam ist beiden Radio-Formen aber, dass alle auf einen bestimmten Sender eingestellten Radios immer dasselbe Musikstück hören.
Diese Gemeinsamkeit hört aber auf, wenn der Hörer (Client) mit einem UPnP-Server verbunden ist (Internet-Radios senden nicht im UPnP-Protokoll).
Innerhalb der Streaming-Technologie stellt das UPnP-Protokoll eine fortgeschrittene Variante dar: der aktive Teil ist der Client, er bestimmt, was der Sender (UPnP-Server) ihm bitte senden soll. Allerdings ist diese Art des Streamens nur für lokale Netzwerke (LAN) geeignet, nicht für 'echte' remote Verbindungen wie sie das IP-Radio darstellt.
Beim UPnP-Streaming ist es also der Client, der einen 'Sendewunsch' an den Server schickt (bezüglich eines Musikstücks, eines Films oder einer Playliste) und der Server 'sendet' genau diese entsprechende Mediendatei an den Client. Andere Clients, die mit demselben Server verbunden sind, empfangen andere Inhalte.
|
|
MediaTomb (zu deutsch: Medien-Gruft) ist ein Open-Source-Projekt, das von Paul Smedley für OS/2 und eCS portiert wurde. Es ist ein Streamig-Server, der eine Vielzahl von Clients bedienen kann, u.a. auch Sony's Playstation-3.
Die Installation ist einfach (ist auch im Paket beschrieben in readme.os2):
x:\tmp x:\mediatomb\homeDesweiteren ist es sinnvoll, einige Programm-Objekte für den Mediatomb-Start sowie das Handbuch und das Web-UI anzulegen.
Nach Ausführen des o.a. Installations-Scriptes braucht man jetzt nur den Mediatomb-Ordner öffen und auf das darin befindliche Programm-Objekt "Mediatomb Streaming Server" zu doppelklicken.
Um die Vorgänge zu verdeutlichen, wird im folgenden beschrieben, wie man *ohne* das Installations-Script vorgehen würde:
Um den MediaTomb zu starten, eine Kommandozeile öffnen, in das Verzeichnis x:\mediatomb\bin\ gehen und dort eingeben:
mediatomb --ip <eigene ip-adresse>Die eigene IP-Adresse kennt man meistens. Falls nicht, schaut man im TCP/IP-Settings-Notebook nach, oder - falls man sich per DHCP mit seinem Router hat verbinden lassen - ermittelt man seine aktuelle IP-Adresse mit dem Befehl
netstat -a(oder überläßt es dem o.a. Installations-Script, das sich die IP-Adresse automatisch besorgt.)
Nicht wundern ....:
Es kann passieren, dass der MediaTomb beim ersten Mal mit einer Fehlermeldung abbricht ('check your internet-connection').
Ich habe die Erfahrung gemacht, dass man den Start-Aufruf bisweilen ein-, zweimal wiederholen muß, bis es klappt.
Nach dem erfolgreichen Start schreibt der MediaTomb auf der Kommandozeile eine Mitteilung, über welche IP-Adresse die Konfiguration vorzunehmen ist. Diese Adresse kopiert man in die URL-Zeile seines Browsers und man erhält das Web-UI (User-Interface), um den MediaTomb zu konfigurieren. Eleganter ist es, das per Installations-Script erzeugte Web-URL-Objekt zu starten.
Konfigurieren heißt im Wesentlichen: Hinzufügen der Medien-Dateien (*.mp3 etc.), die man am Client hören / sehen will. Dazu wählt man den Button 'filesystem' und man erhält in einer klassischen Baumstruktur einen Blick auf seine Festplatte. Man wählt eine Datei aus und klickt auf das "+"-Icon, um diese Datei hinzuzufügen. Man kann auch ganze Verzeichnisse mit einem Klick hinzufügen: einfach indem man auf das "+"-Icon auf der Verzeichnis-Ebene klickt.
Alternativ zu dieser interaktiven Methode ist es auch möglich, beim Starten des Mediatomb mittels des Kommandozeilen-Parameters
-a
Super-einfach!
Soweit so gut. Aber im konkreten Praxis-Einsatz gibt es einige Probleme mit dem MediaTomb:
Mittels TVFS definiert man sich ein neues Laufwerk (z.B. z:) und mappt alle Verzeichnisse, die Media-Dateien enthalten
und die sich auf verschiedenen anderen Laufwerken
befinden, dort hinein. Außerdem muß man natürlich noch das MediaTomb-Verzeichnis auf das TVFS-Laufwerk mappen.
Das hört sich vielleicht etwas verwirrend an. Schauen wir uns ein Beispiel an:
Probleme mit dem MediaTomb
Das ist der Unix-Architektur geschuldet, die ja keine Laufwerksbuchstaben kennt.
Für jemanden, der alle seine Medien-Dateien auf einem Laufwerk gespeichert hat, ist dieses
Problem keines: Er muß dann nur auch den Mediatomb auf genau diesem Laufwerk installieren.
In den meisten Fällen aber wird man seine Medien-Dateien über verschiedene Laufwerke verteilt haben,
dann stellt die erwähnte Unix-Architektur einen Engpass dar.
LÖSUNG:
Ein über 10 Jahre altes Produkt kommt hier zu späten Ehren: Das Toronto Virtual File System (TVFS).
Zu beziehen über hobbes.
In OS/2 erzeugte Playlisten enthalten i.d.R. eine volle Pfadspezifikation zu der jeweiligen Musikdatei,
also inkl. Laufwerksbuchstaben. Das verträgt Mediatomb nicht. Man muß also - bevor man eine m3u-Liste in
den Mediatomb einfüttert - das x: entfernen.
Mehr dazu weiter unten.
Das Toronto Virtual File System
Das TVFS muß - wie alle 'Installable File Systems' mittels eines IFS-Befehls in der config.sys eingetragen werden.
Näheres zu der TVFS-Installation ist dort beschrieben.
Ohne TVFS würde der MediaTomb gar keine Media-Dateien erkennen, da er nur "sein" Laufwerk sieht.
Um diese Beispiel-Situation mit TVFS zu lösen, gehen wir wie folgt vor:
E:\MeineMP3
F:\MeineMPEG
G:\MehrMedia
Eine Kommandozeile öffen.
TVFS starten:
x:\tvctl -Dwf9999
Virtuelles Laufwerk Z: anlegen:
x:\tvmount z:
Media-Verzeichnisse in das virtuelle Laufwerk mappen:
x:\tvlink -rb z:\MeineMP3 e:\MeineMP3
x:\tvlink -rb z:\MeineMPEG f:\MeineMPEG
x:\tvlink -rb z:\MehrMedia g:\MehrMedia
Das MediaTomb-Verzeichnis in das virtuelle Laufwerk mappen:
x:\tvlink -rwb z:\MediaTomb d:\mediatomb
Zum Schluß noch das erforderliche tmp-Verzeichnis erstellen:
x:\tvlink -rwb z:\tmp d:\tmp
Dabei ist x: irgendein Laufwerksbuchstabe der Kommandozeile, von der man gerade arbeitet.
Nun können wir den MediaTomb starten: Dazu gehen wir nach d:\mediatomb\bin und geben ein
mediatomb --ip 192.168.1.101192.168.1.101 ist ein Beispiel! Die tatsächliche eigene IP-Adresse muß man sich besorgen!
Der MediaTomb wird nun starten und eine URL nennen, die wir im Browser eintippen, um die Konfiguration zu starten (s.o.).
Leider gibt es ein weiteres Problem mit Playlisten, die wieder einmal aus der Ecke der abweichenden Unix-Architektur stammen, der hier bereits erwähnten Unkenntnis über Laufwerksbuchstaben:
Ich selbst habe nur mit m3u-Listen Erfahrung gesammelt. Eine Playliste im m3u-Format hat dieses Aussehen:
Vorweg immer die Kopfzeile:
#EXTM3UDanach für jeden Titel zwei Zeilen in dieser Form (Beispiel):
#EXTINF:203,I Believe - Elmore James E:\MeineMusik\Elmore James\Soul, Disco, Reggae, Blues Vol-2.14\I Believe.MP3Das Problem stellt das 'E:' in der Pfad-Angabe zu der MP3-Datei dar sowie die 'falschen' Slashes. Die Lösung ist schnell gefunden: Ein kleines Rexx-Programm schreiben, um das 'E:' zu eliminieren sowie alle '\' durch '/' zu ersetzen:
/* Rexx: Konvertieren m3u-Playlist aus OS/2- in das MediaTomb-Format: */ nok = RxFuncAdd("SysLoadFuncs", "RexxUtil", "SysLoadFuncs") ;rc = SysLoadFuncs(); m3u_file = "MeinePlayliste.m3u"; ++ hier Dateinamen einsetzen ! ++ NewLines.0 = 0; do while lines(m3u_file) > 0 Rec = linein(m3u_file); if substr(Rec,2,1) = ":" then Rec = translate( right(Rec, length(Rec)-2), "/", "\" ); /* Zeile in die Ausgabe-Tabelle einstellen: */ a = NewLines.0 +1; NewLines.a = Rec; NewLines.0 = a; end; ok = stream(m3u_file,"c","close"); ok = SysFileDelete(m3u_file); /* alte Datei löschen */ do i = 1 to NewLines.0 /* neue Datei erstellen: */ ok = lineout(m3u_file,NewLines.i); end; ok = stream(m3u_file,"c","close"); exit;
Welche Anpassungen im TVFS-Falle genau vorzunehmen sind, kann nicht allgemeingültig gesagt werden. Es ist abhängig von der Art, wie man mittels TVFS reale Verzeichnisse auf das virtuelle Laufwerk gemappt hat.
Falls jemand in seinem konkreten Fall Unterstützung benötigt, kann er/sie mich gern ansprechen:
Im o.a. TVFS-Beispiel wäre z.B. keine weitere Pfadanpassung erforderlich.
Anders dagegen in diesem Beispiel, wo derselbe Verzeichnisname auf zwei verschiedenen realen
Laufwerken vorkommt:
x:\tvlink -rb z:\MeineMP3_E e:\MeineMP3 x:\tvlink -rb z:\MeineMP3_F f:\MeineMP3 x:\tvlink -rb z:\MeineMP3_G g:\MeineMP3In diesem Fall müssten in der m3u-Playliste alle Referenzen zu MP3-Dateien geändert werden von 'MeineMP3' auf 'MeineMP3_E' bzw. MeineMP3_F bzw. MeineMP3_G, je nach Quell-Laufwerk.
|
|
Ich habe noch eine andere - lästige - Erfahrung gemacht:
Wenn man in der '-a' - Option (zum Hinzufügen ganzer Verzeichnisse) einmal schreibt:
-a /MeineMusik/Teil1und einen Tag später:
-a /meinemusik/teil1erzeugt Mediatomb in seiner Datenbank zwei verschiedene Pfade. Das ist verwirrend und führt zu aufgeblähter Datenbank.
Man sollte folglich auch darauf achten, gleiche Verzeichnisnamen auf verschiedenen Laufwerken in derselben Groß/Kleinschreibung zu benennen.
Allerdings gibt es keinen Fehler, wenn man Dateien ohne Tags hinzufügt. Man findet sie nur nicht wieder, jedenfalls nicht unter den üblichen Suchbegriffen wie Artist, Album, Jahr oder Genre. Vielmehr muß man in der Oberfläche seines Clients unter 'PC-Filesystem' nachschlagen und gezielt nach einem Titel suchen. Das ist sicherlich nicht Sinn der Sache.
Also: Immer die Tags sauber einpflegen, bevor man eine MP3-Datei einspeichert!
Diejenigen, die ihre MP3-Sammlung mit CDMagic verwalten, sind da fein raus: CDMagic pflegt die Tags automatisch beim CD-Rippen (via freedb) oder beim analogen Recorden. Dateien, die per Import in CDMagic eingepflegt werden, behalten ihre Tags, können aber durch eine eingebaute Funktion auf die CDMagic-Standard- Werte gesetzt werden.
Für Leute mit einem 'chaotischen' (ungepflegten) MP3-Bestand gibt es ein Rexx-Script CDM_SetIDTags.cmd. Das ist aus CDMagic abgeleitet und läuft unverändert auch nur in einer Verzeichnis-Struktur, wie sie bei CDMagic besteht, kann aber leicht an andere Verzeichnis-Strukturen angepasst werden. Ein wenig Rexx-Kenntnisse braucht man allerdings.
Man muß aber klar sagen, dass man mit Mediatomb Probleme kriegt, wenn man 'ungepflegte' MP3-Dateien dort verwalten will.
Seltsam nur, dass dieses Verzeichnis ständig leer bleibt. Ganz im Gegensatz zu dem TEMP-Verzeichnis aus der config.sys: Dieses schwillt unauffällig an, schwillt an, schwillt an - bis es in meinem Fall einmal die stattliche Anzahl von 164.385 Dateien enthielt ! Diese Anzahl Dateien überforderte sogar meinen recht performanten Athlon64 3500+. Ich habe darin die Ursache gefunden für sporadisch auftretende 'Hänger' des Mediatomb.
Also: Von Zeit zu Zeit mal des Temp-Verzeichnis leeren. Aber das richtige ...
|
Obgleich auf der Mediatomb-Homepage eine lange Liste der verschiedensten Streaming-Clients aufgeführt ist, habe ich selbst nur Erfahrung mit einem einzigen gesammelt: dem Freecom Musicpal. Es handelt sich um ein Gerät mit dualer Funktion: Es ist Internet-Radio und Streaming-Client in einem.
Der Freecom Musicpal
Das Gerät selbst kann ich eigentlich nur loben: Es ließ sich sehr einfach installieren und auch die Bedienerführung ist schnell begriffen und leicht gemerkt: Es gibt im Wesentlichen nur ein großes Dreh-Rad zum Einschalten und Lautstärke-Anpassen und ein zweites großes Dreh-Rad, mit dem man durch Auswahllisten (z.B. von Titeln, Alben oder Artisten) scrollt und mittels Draufdrücken den gewünschten Eintrag auswählt.
Ein Quantensprung (nach unten!) in Sache Bedienerkomfort allerdigs ist das kleine ca. 3 Zoll große schwarzweiß-Display, auf dem sich alle Bediener-Aktion abspielt. Gut, ein Streming-Client ist eben kein PC, dennoch vermisse ich schmerzlich die Übersichtlichkeit und die Auswahl-Vielfalt einer PC-Grafikoberfläche.
Desweiteren ist festzustellen, dass Geschwindigkeit keine Hexerei ist ... Die Zeit, die vergeht, bis eine gewünschte Auswahl-Liste (z.B. Liste der Artisten, die mit M beginnen) auf dem häßlichen Bildschirm erscheint, kann in die Größenordnung von Minuten gehen.
Die Langsamkeit ist möglicherweise auf das WLAN zurückzuführen, höchstwahrscheinlich würde sich das Verhalten bei drahtgebundener Verbindung verbessern. In meinem Fall ist das aber keine Option, die mir zur Verfügung steht.
Dem WLAN ist möglicherweise auch zuzurechnen, dass das Abspielen von Musikstücken bisweilen (nicht häufig, aber doch störend) sekundenlang unterbrochen wurde. Wahrscheinlich liegt es nicht am Server, denn ich habe immer darauf geachtet, keine weiteren, parallellaufenden Prozesse auf dem Server-PC laufen zu haben.
Auf längere Sicht gesehen hat sich für mich persönlich jedoch die Gesamtheit an kleinen Widrigkeiten, wie
vorstehend geschildert, soweit als störend erwiesen, dass ich beschlossen habe, auf den "modernen Schnickschnack" zu verzichten und mich
wieder meinem guten alten Wohzimmer-PC (s. Projekt
MOPS) zuzuwenden. Jedenfalls solange es um das H”ren
von MP3-Dateien geht. Wenn ich meinen Medien-Konsum um den Bereich Video (MPGs etc.) erweitern sollte, komme ich
möglicherweise auf die Streaming-Technik zurück.
|