Eigene Radiostation: Icecast
Sie wollten schon immer Ihren eigenen Radiosender haben?
Mit Icecast können Sie Ihr Programm über das Internet in die ganze
Welt senden. Mit etwas Konfigurieren können auch Sie den Äther beschallen.
Icecast ist das Linux-Gegenstück zum Programm Shoutcast. Mit diesen Programmen kann man per Internet-Streaming Musik (bzw. audio-Dateien) übers Internet versenden und somit wie eine Radiostation wirken, mit dem Vorteil, daß man weltweit gehört werden kann.
Die Musik wird bei diesen beiden Programmen im MP3-Format verschickt und hat dabei normalerweise eine Datenrate von 32 oder 64 kBps.
Diese niedrige Rate ist notwendig, um einen ungestörten Hörgenuß zu gewährleisten, denn die Empfängerprogramme (also mp3-player, die Internet-Streaming unterstützen) können somit mehrere Sekunden im Zwischenspeicher halten, und somit einige Sekunden ohne Datenfluß ohne Musikunterbrechung überbrücken.
Streaming im Intranet
Aber wer will denn schon gleich einen kleinen Radiosender aufbauen?
Ein anderer Einsatzbereich liegt darin, ein lokales Netzwerk, welches normalerweise
auch eine viel bessere Übertragungsrate besitzt als das Internet, mit Musik zu versorgen.
So ist es z.B. möglich, sich vom Server im Keller, der gut mit mp3-Dateien bestückt ist,
die Musik in das gesamte Netzwerk zu verteilen. Die Playlist muß nur von einer einzelnen
Person zusammengestellt werden oder kann wie bei einer Jukebox von allen Netzteilnehmern
ausgesucht werden (siehe IceDJ).
Installation
Die Installation des Programms verläuft recht unkompliziert, solange man keine
ausgefallenen Dinge anstellen will.
Zuerst sollte man das Programm Icecast aus dem Internet laden. Die Homepage von Icecast
befindet sich unter http://www.icecast.org/.
Dort sollte man sich die neueste Version des Programms herunterladen (als Sourcecode) und danach
entpacken:
>> tar zxvf icecast-1.x.x.tar.gz -C /tmp >> cd /tmp/icecast-1.x.x/Das Kompilieren des Programms geschieht einfach durch die Befehle
>> ./configure >> makeZum Installieren des Paketes muß man als root den Befehl
>> make installausführen. Dieser Befehl kopiert die benötigten Dateien in das /usr/local/icecast Verzeichnis.
Zur Konfiguration von Icecast dient die Datei /usr/local/icecast/etc/icecast.conf. Die wichtigsten zu konfigurierenden Variablen sind
| Auszüge aus der Datei icecast.conf |
# --zuerst einige Angaben zum Server und Betreiber # #Der Ort, an dem der Server steht location Musik vom Mars #die e-mail-adresse des Betreibers rp_email webmaster@home.de #Die url der zur Musik gehörenden Web-Seite server_url http://www.linuxnetmag.de [...] #--Man kann den icecast-Server auch über das Netz administrieren, # diese Funktion wird per Passwort geschützt #normale clients sollen sich nicht einloggen können client_password not_used #Bei den restlichen Passwörtern sollte man #das Standardpasswort unbedingt ändern! encoder_password meinpasswort admin_password meinpasswort oper_password meinpasswort [...] #Der Port, unter dem icecast erreichbar sein soll port 8010 #Der host-name des Rechners server_name mein.rechner.de |
Alle anderen Werte sollten vernünftige Voreinstellungen besitzen.
Nun kann man es wagen und Icecast das erste mal starten (als root und auf Port 8010):
>> /usr/local/icecast/bin/icecast -P 8010Icecast belohnt Sie, wenn alles richtig konfiguriert wurde mit einer Ausgabe der folgenden Art:
| Ausgabe von Icecast |
[09/Jan/2000:16:38:37] Icecast Version 1.3.0 Starting.. [09/Jan/2000:16:38:37] Using stdin as icecast operator console [09/Jan/2000:16:38:37] Tailing file to icecast operator console [09/Jan/2000:16:38:37] Server started... [09/Jan/2000:16:38:37] Listening on port 8010... [09/Jan/2000:16:38:37] Using [ronny.ziegler.de] as servername... [09/Jan/2000:16:38:37] Max values: 20 clients, 10 clients per source, 10 sources, 5 admins -> [09/Jan/2000:16:38:37] [Bandwidth: 0.000000MB/s] [Sources: 0] [Clients: 0] [Admins: 1] [Uptime: 0 seconds] -> |
Diese Ausgabe stellt auch gleichzeitig eine Konsole zur Verfügung, mit der
man Icecast auch während des Betriebes konfigurieren kann.
Mittels der Eingabe von help erhält man eine Auflistung der verfügbaren
Befehle.
shout
Bisher spielt Icecast aber noch keine Musik, und dafür ist das Programm auch gar nicht gedacht.
Shout übernimmt diese Aufgabe (befindet sich auch unter /usr/local/icecast/bin/). Dabei kann
shout durchaus auf einem beliebig anderen Rechner im Netzwerk gestartet werden. Durch
diese Aufteilung von Streaming-Server und Musik-Datenbank ist es möglich, die anfallende Arbeit zwischen
verschiedenen Rechnern aufzuteilen. Während der Icecast-Server schon genug mit dem Verteilen der Musik
an alle seine Clients zu arbeiten hat, kann ein weiterer Rechner dafür genutzt werden, als
Datenbank zu funktionieren oder, falls man auch Live senden will, die Musik in Echtzeit in MP3-Dateien
umzuwandeln.
Folglich benötigt Shoutcast mehrere Angaben, die dem Programm beim Starten als Optionen
mitgeteilt werden müssen.
- Der Server, auf dem icecast läuft. Wenn shout auf dem selben Rechner läuft wie icecast, dann reicht ein localhost, ansonsten wird der Name oder die IP-Nummer benötigt
- Das Passwort, das einen berechtigt, Dateien an Icecast zu übertragen (in der icecast.conf unter admin_password eingestellt)
- Der Port, unter dem Icecast sendet (Portnummer 8010 in unserem Beispiel)
- Als letztes das Verzeichnis, aus welchem die mp3-Dateien liegen
Alles zusammen lautet der Aufruf von Icecast dann folgendermaßen:
>> /usr/local/icecast/bin/shout localhost -P meinpasswort -e 8010 /tmp/mp3/*Sollte alles funktionieren, beginnt shout mit der Übertragung der Musik an icecast:
| Ausgabe von shout |
Playing /tmp/mp3/Alice_in_Fashionland.mp3 [2:38] Size: 2219520 Bitrate: 112000 (28455 bytes/dot) [...................................... |
Icecast zeigt dann in der Konsole an, daß er die Verbindung akzeptiert:
| Ausgabe von Icecast |
-> [09/Jan/2000:17:37:57] Accepted encoder on mountpoint /monkey from localhost. 2 sources connected -> [09/Jan/2000:17:37:57] Assigning listeners from pending source 3 -> [09/Jan/2000:17:37:57] Kicking source 3 [localhost] [Lost all clients to new source] [encoder], connected for 10 minutes and 19 seconds, 824214 bytes transfered. 2 sources connected -> [09/Jan/2000:17:37:57] Kicking all 0 clients for source 3 -> |
Musik anhören
Somit wird jetzt die Musik von Icecast auf dem Port 8010 für alle Streamig-fähigen
Mp3-Player angeboten. Als nächstes muß man noch den Player dazu bringen, die Verbindung zu Icecast aufzubauen.
Bei freeamp reicht ein Start über die Konsole:
>>freeamp http://mein.server.de:8010Das Programm nimmt automatisch die Verbindung mit icecast auf. Die besten Ergebnisse beim Hören von Internet-Radio liefert momentan unter Linux immer noch xmms. Nur muß man für dieses Programm per Hand eine Playlist erstellen, in der der icecast-Server auch aufgeführt ist:
| playlist.pls |
[playlist] numberofentries=1 File1=http://mein.server.de:8010 |
Lädt man diese Datei dann mit xmms, kann man auch mit diesem Programm Internet-Radio hören.
Für alle Windows-Benutzer sollte man einen Link auf seine Homepage stellen, die unter Windows beim Klick auf den Link automatisch den eingestellten Mp3-Player startet und Kontakt mit dem Icecast-Server aufnimmt.
Dafür benötigen Sie in Ihrer HTML-Seite folgenden Code:
| HTML-code |
<a href="shoutcast-playlist.pls"><img src="tunein.gif" Border=0></a> |
und eine Datei shoutcast-playlist.pls im selben Verzeichnis, die genauso aufgebaut ist, wie die Playlist für xmms.
| shoutcast-playlist.pls |
[playlist] numberofentries=1 File1=http://mein.server.de:8010 |
Somit ist Ihre Internet-Radio-Station fertig. Aber die Möglichkeiten von Icecast sind mit unserem
kleinen Exkurs noch lange nicht aufgebraucht. Bisher übetragen wir ja erst die Lieder, die sich in
einem Verzeichnis befinden. Icecast kann man aber auch für Live-Übertragungen benutzen und die Daten in
Echtzeit verschicken. Es unterstützt natürlich auch Playlisten und viele weitere nützliche Dinge, die
alle den Rahmen dieses Artikels sprengen würden.
Links:
Homepage icecast: http://www.icecast.org/
Anmerkungen zu diesem Artikel
Eigene Anmerkung eintragen