|
LinuxNetMag #4
Druckversion
|
|
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.
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).
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://icecast.linuxpower.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
>> make
Zum Installieren des Paketes muß man als root den Befehl
>> make install
ausfü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 [email protected]
#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 8010
Icecast 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.
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
->
|
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:8010
Das 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://icecast.linuxpower.org/
Platz für Kommentare & Fragen:
(selbst eintragen)
|