LinuxNetMag
Eigene Radiostation: Icecast
Archiv | Home
Inhalt
   
LinuxNetMag #4

  Software
 Aktuell
kurz vorgestellt
 HTML
Web Preprozessor
HTML-Editoren
 Internetradio
eigene Radiostation
Web-Jukebox IceDJ
 Spiele
Rennspiele
Entwicklung: XTux
 Astronomie
Sternenkarten
Flug durch Sonnensystem
Doppelsterne simulieren
  
 

Hardware

Kernel kompilieren
Soundkarte als Oszilloskop
Grafikkarten im Vergleich
  
 

Netzwerk

Web-Seiten überprüfen
Samba Teil II
Chat für Ihre Homepage
FTP-Server & Clients
Modem-sharing
Links
  
 Wissen
Der Bootprozeß
Gimp-Kurs Teil 1
Gimp-Kurs Teil 2
  
 

Sonstiges

Mailing-Liste
Gästebuch
Artikelliste
Unterstützen Sie uns !
zurück zur Hauptseite



Druckversion


  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://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.

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: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)

 

Weitere Ausgaben Linux NetMag
[ #1 | #2 | #3 | #4 | Main ]