SHOUTcast-Server

Aus TuxBoxWIKI
Version vom 16. November 2005, 18:23 Uhr von W-sky (Diskussion) ("3." natürlich auch)
Wechseln zu: Navigation, Suche


Allgemeines

Um die Audio-Ausgabe eines PC mit der DBox2 abzuspielen, bietet sich die Verwendung des SHOUTcast-Streamings an, das von Neutrinos Audioplayer störungsfrei und in perfekter Qualität wiedergegeben werden kann.

Sinnvoll ist dies z.B. in folgenden Situationen: Im Haus/in der Wohnung soll überall die gleiche Musik laufen (zentraler Audioprogramm-Server); es sollten Audiodateien über die DBox2 wiedergegeben werden, welche der Audioplayer nicht versteht (z.B. auch DRM-geschütztes Material); es sollen Playlisten-Funktionen von Winamp zum Einsatz kommen (z.B. Überblenden, Sortieren nach Stil); es soll das gleiche Internet-Radio auf verschiedenen Geräten im lokalen Netz abgespielt werden, ohne die Internet-Anbindung damit mehrfach zu belasten; u.s.w.

Doch gleich vorweg, damit es am Ende keine langen Gesichter gibt: Eine 100% synchrone Wiedergabe auf dem PC und auf einer oder mehrerer Boxen ist sehr schwierig. Siehe Bemerkung am Ende des Artikels.


Voraussetzungen

Es ist gar nicht so aufwendig, wie es zuerst erscheint. Um die Ausgabe des PC mittels Shoutcast auf die DBox2 zu spielen, benötigt man nur zwei Programme:

  • DSP-Plugin für Winamp oder Mac OS X, Linux, FreeBSD
  • Shoutcast-Server

Beide gibt's auf http://www.shoutcast.com/download/broadcast.phtml#plugdownload zum Download. Die Installation ist in beiden Fällen völlig unkompliziert.


Wie es geht

a) Shoutcast-Server (DNAS)

Der DNAS, "Distributed Network Audio Server" oder kurz Server ist gewissermaßen der Verteiler des Shoutcast-Streams, welcher von dem DSP-Plugin als Quelle (siehe 2.) geliefert wird. Dadurch ist es möglich, dass mehrere Clients (Empfänger) bedient werden können, die Zahl ist theoretisch nur von der zur Verfügung stehenden Leistung und Bandbreite abhängig. Weil eine direkte Verbindung eines Clients zum Ausgabe-Plugin nicht vorgesehen und möglich ist, wird der Server auch benötigt, wenn die Ausgabe nur an einen Empfänger gehen soll (beispielsweise eine DBox2 mit Audioplayer).

Üblicherweise läuft der Server auf einem entfernten System mit einer dicken Internet-Anbindung, die größten davon werden "Cluster" genannt. Genauso gut kann er aber auf jedem Standard-PC im Heimnetzwerk laufen und problemlos auch auf demselben PC wie die Quelle.


Konfiguration

Der Server ist bewusst ganz schlicht gehalten, sodass er auf nahezu jeder Plattform eingesetzt werden kann - das heißt: Die Konfiguration erfolgt über eine .ini-Textdatei, Änderungen werden durch Programm-Neustart übernommen. Ändern sollte man aber nur das Passwort, später vielleicht noch die Werte MaxUser oder PortBase.

Bemerkung des Autors über ein Problem am Rande: Die Ini-Datei wird über die Links und mit dem Button im Serverfenster mit dem Windows-Notepad geöffnet, damit wird sie bei mir aber ohne Zeilenumbrüche und damit unlesbar angezeigt. Wenn ich sie mit meinem bevorzugten Texteditor "Textpad" öffne, ist alles o.k.

Dann starten, und wenn in einem Ausgabefenster die entsprechende Meldung kommt, ist der Server aktiv. Wenn das Fenster geschlossen wird, verbleibt das Programm bei Windows im System Tray.


b) DSP-Plugin (Winamp-Version)

Wie schon erwähnt, stellt das DSP-Plugin die SHOUTcast-Quelle dar. In der Voreinstellung wird damit die Ausgabe von Winamp abgegriffen. Es ist aber auch möglich, die Gesamt-Ausgabe der Soundkarte auszuwählen (inklusive analoger Quellen). Wenn das Plugin aktiviert wird, erscheint ein Einstellungs- und Statusfenster, das ebenfalls geschlossen werden kann und dann im System Tray verbleibt.


Konfiguration

Im ersten Tab Main wird der aktuelle Status in Echtzeit angezeigt. Dann, ausnahmsweise mal von rechts nach links: Input dient zur Auswahl der Audioquelle (Winamp oder Soundkarte), Encoder zur Auswahl der MP3-Einstellungen. Da 320 kBit/s in einem Heimnetzwerk ein Klacks sind, bietet sich an, keine Kompromisse bei der Qualität einzugehen und "320kbps, 44.100kHz, Stereo" auszuwählen, selbst wenn nur MP3 etc. mit niedrigerer Bitrate abgespielt werden sollen. Denn resampled werden die Daten auf jeden Fall, und bei 320 kBit/s ist der Verlust minimal. AAC+ versteht die Box nicht, macht aber auch gar nichts, denn so toll ist AAC+ nicht. Also: Encoder 1 auf Typ MP3 Encoder und 320kbps, die weiteren Encoder benötigen wir (noch) nicht.

Das Tab Output bietet die vielfältigsten Einstellungsmöglichkeiten. Oben wird Output 1-5 ausgewählt (uns unteressiert hier aber nur Output 1). Der untere Bereich zeigt die Einstellungen Connection oder Yellowpages an. Die vorgegebenen Connection-Einstellungen Address: localhost, Port: 8000 und Encoder: 1 bleiben unverändert, unter Password muss das bei der Server-Konfiguration gewählte Passwort eingegeben werden. Yellowpages betrifft die Anzeige des Sendernamens und der Daten im SHOUTcast-Verzeichnis auf http://www.shoutcast.com - denn per Voreinstellung ist der Sender gleich auch online! Soll das nicht so sein oder wenn eine Firewall es unmöglich macht, den Haken bei "Make this server public" entfernen. Enable Title Updates sollte aber an sein.

Sofern das noch nicht der Fall ist, jetzt die Wiedergabe in Winamp starten und auf Connect klicken. Wenn alles korrekt war, erscheinen im Server-Fenster entsprechende Meldungen, die Anzeige läuft und das Streaming kann beginnen!


c) DBox2 / Audioplayer

Auf der DBox2 oder in einem gemounteten Verzeichnis muss nun nur noch eine .url-Datei angelegt werden (z.B. "Mein Radio in 320.url"), in der die Adresse des Streams in folgendem Format steht:

icy://<IP-Adresse>:8000

Wobei <IP-Adresse> natürlich zu ersetzen ist mit der lokalen IP-Adresse des PC, auf dem der Server läuft, z.B. 192.168.0.2 oder 192.168.193.167 oder was auch immer.

(Weitere Informationen zu Shoutcast-URLs und die Verwendung im Audioplayer in dem Artikel SHOUTcast.)

Die Datei mit dem Audioplayer von Neutrino auswählen, und das war's! Es müsste die Musik vom PC zu hören sein. (Achtung, nur über die analogen Ausgänge der Box.)


Und jetzt richtig!

Qualität optimieren

Der MP3-Encoder kennt noch einen Parameter QualityMode, der in dem File dsp_sc.ini im Plugin-Verzeichnis von Winamp steckt. Voreingestellt ist der Wert 9 für schnellste, d.h. am wenigsten den Prozessor belastende Berechnung. Mit dem Wert 1 erhält man die beste Qualität, aber die CPU-Belastung für die MP3-Encodierung steigt auf mindestens das Doppelte - was bei PCs im GHz-Bereich dennoch kaum auffällt.


Stream freigeben

Eigentlich steht nun kaum noch etwas dem entgegen, den eigenen "Heim-Sender" auch gleich im Internet einem milliardengroßen Publikum vorzustellen, oder einem Freud zu erlauben, sich einzuklinken. Ein Häkchen bei Make this server public und eine treffende Beschreibung in den Feldern darunter genügen, bzw. der Freund benötigt sogar nur Deine aktuelle IP-Adresse im Internet und die Portnummer. Dazu sind aber folgende Punkte zu beachten:

Private Internet-Anschlüsse haben fast immer einen deutlich niedrigeren Up- als Downstream, z.B. 2 MBit/s Down- und nur 256 kBit/s Upstream. Damit könnte natürlich unmöglich unser "HiFi/High End"-Stream mit 320 kBit/s übertragen werden, sondern bestenfalls einer mit 224 kBit/s. Und dann kann sich auch nur 1 Hörer zuschalten. Reduziert man die Stream-Bitrate entsprechend, wären bei Telefonqualität vielleicht 10 Hörer möglich, oder mit AAC+ und mittlerer Qualität maximal 5. Um mehr Hörer im Internet erreichen zu können, muss ein Serverdienst angemietet, oder der Server auf einem Rechner mit SDSL- oder noch besserem Anschluss installiert werden.


Verschiedene Streams

Es ist aber problemlos möglich, zwei oder mehrere Shoutcast-Streams von derselben Quelle zu erzeugen, z.B. einen mit 320 kBit/s für die Box(en) im eigenen Netz, und einen mit 192 kBit/s für den Nachbarn oder einen Freund im Internet (so bliebe bei einem 2M/256k-Anschluss genug Up-Bandbreite für Webzugriffe etc.). Dazu muss eine zweite Server-Konfigurationsdatei mit einer anderen Portnummer (z.B. 8010) geschrieben werden; allgemein üblich für Shoutcast sind die Ports 8000-8900, wobei die Portnummer+1 automatisch für die Quelle reserviert ist - d.h. Port 8001 ist vergeben, wenn der erste Stream auf Port 8000 läuft. Der Wert MaxUser in der Server-Konfiguration muss unbedingt auf einen realen Wert gesetzt werden, denn wenn sich nur 1 Hörer mehr zuschaltet, als die Bandbreite der Internet-Anbindung zulässt, werden alle keinen 100%igen Empfang mehr haben. Schließlich ist noch bei LogFile ein anderer Name einzugeben, damit man für die Server getrennte Logfiles erhält. Speichern nicht vergessen, und dann den Server ein zweites Mal starten, wobei der Name der neuen Konfigurationsdatei als Argument übergeben werden muss (in der Shell oder über die Verknüpfungseigenschaften). Die CPU-Last ist minimal, auch wenn jetzt 2 Server auf dem PC aktiv sind; mehr Prozessorlast entsteht erst, wenn beim DSP-Plugin ein zweiter Output für Port 8010 eingestellt und aktiviert wurde, doch auch auf einem mittelschnellen PC liegt die CPU-Last dann bei nur maximal rund 20%.


Firewall

Wichtig ist evtl. auch noch, den oder die Ports in der Firewall zu öffnen, sonst kann kein Rechner von außerhalb darauf zugreifen; im Server-Fenster erscheint dann auch die Fehlermeldung, dass yp.shoutcast.com den Sender nicht prüfen konnte. Wenn die Ports offen sind und der Stream läuft, ist der Sender innerhalb weniger Minuten in der Liste auf http://www.shoutcast.com!


Bemerkung: Der Ton ist nicht synchron

In manchen Fällen führt möglicherweise folgendes kleines Problem, das nicht verschwiegen werden soll, nicht zum gewünschten Ergebnis: Es ist nämlich so gut wie unmöglich, die Wiedergabe auf dem PC und der Box synchron zu machen. Das Encoding bedingt eine kleine Verzögerung, und Server und vor allem der Client buffern, sodass die Ausgabe deutlich verzögert ist.

Wenn der Ton synchron sein soll, weil z.B. PC und DBox2 in nebeneinander liegenden Räumen sind und es keine "Echos" geben soll, muss das Winamp, das als Quelle dient, am besten mit dem "NULL" Output-Plugin stummgeschaltet, und eine zweite Instanz von Winamp auf dem PC gestartet werden, welche die Daten vom selben Server, mit der selben Adresse wie bei der Box abspielt. So lässt sich schon eine große Zeitnähe realisieren. Für das "Finetuning" muss dann der Streaming Pre-Buffer des MPEG-Input-Plugins des abspielenden Winamp so lange justiert werden, bis Synchronität erreicht ist.

Der große Haken an der Sache: Schon beim nächsten Wiedergabestart ist nichts mehr synchron. Auch in einem kleinen Home-LAN spielt wohl der Zufall eine zu große Rolle, als dass sich das "ein Mal für immer" perfekt abstimmen ließe.

Neue Erkenntnisse zu diesem Thema sind sehr erwünscht...


Weiterführende Links



Review-KandidatDieser Artikel befindet sich derzeit im Reviewprozess. Hilf mit, ihn zu verbessern! Falls du bei weiteren Artikeln helfen willst, findest du hier eine Auswahl offener Artikel.