• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[HOWTO] Eigenes Internetradio mit Icecast

mca

Hacker
Diese Anleitung soll als Hilfestellung oder Inspiration zum Einrichten eines Icecast-Servers dienen. Viele Wege führen nach Rom, aber ich denke, ich beschreibe einen Weg, der verbunden mit ein wenig Eigeninitiative, zum Ziel führen sollte. Alle Programme, die ich hier vorstelle, sind ausreichend dokumentiert im www, meine Intuition war, eine kurze deutsche Zusammenfassung mit Konfigurationstipps zu schreiben. Wenn Ihr noch ewas dazu beitragt, wird daraus vielleicht sogar etwas Verlässliches.


Einleitung:

Um ein eigenes Internetradio zu betreiben, braucht man zum einen einen Icecast-Server, zu dem sich die Zuhörer verbinden, und zum anderen einen Source-Client (ices, darkice), der den Stream an den Server schickt.

Icecast-Server und Source-Client können auf dem selben PC laufen, müssen es aber nicht. Man kann den Source-Client überall im LAN oder www betreiben. In dieser Anleitung befinden sich aber Server und Source-Client auf dem selben PC.

Den Icecast-Server betreibt man immer als "normaler User", also nicht als root. Den Source-Client, also das Programm ices oder darkice, startet man immer als root.

Der (TCP-) Port, auf dem der Icecast-Server läuft, muss in der Firewall freigeschaltet werden. Das ist normalerweise Port 8000.




1.1. Icecast-Server installieren und konfigurieren
1.2. Icecast-Server starten

2. Live-Streamen vom Line-In der Soundkarte (OSS) mittels darkice (Ogg-Stream)

3.1. Streamen einer Ogg-Playlist mittels ices-2.0.1
3.2. Streamen einer Mp3-Playlist mittels ices-0.4

Es gibt noch viel mehr Möglichkeiten mit ices einen Stream zu erstellen, aber diese beiden Playlist-Verfahren sollten erstmal reichen.





1.1. Icecast-Server installieren:

Ich erkläre das Installieren anhand eines Beispiels, die Verzeichnisnamen musst Du natürlich ändern, da der User "du" bei Dir nicht existiert.

Geh zur Homepage: http://icecast.org/download.php und zieh dir das paket icecast-2.3.0.tar.gz nach /home/du . Konqueror öffnen - Rechtsklick auf das Archiv - Entpacken - Hier Entpacken. Öffne eine Konsole, wechsel in den neu entstanden Pfad und installier das Ganze:
Code:
cd /home/du/icecast-2.3.0
./configure
make
su
make install
Wenn dabei Fehler auftreten sollten, müssen pakete nachinstalliert werden. Du brauchst natürlich lame und libvorbis und die zugehörigen devel-pakete, aber mehr Tipps kann ich ausm Kopf nicht geben. Keine Fehler? Dann konfigurieren wir jetzt den Icecast-Server:
Du musst als root die Konfigurationsdatei /etc/icecast.xml bearbeiten. Ich empfehle den Editor kwrite. Hier die relevanten Stellen der Datei, ändert das nach Euren Wünschen:
<limits>
<clients>6</clients> ### Wievile Zuhörer gleichzeitig?
<sources>3</sources> ### Wieviele Source-Clients (Streams)? In diesem Beispiel 3, weil zwei Playlists und einmal Live-Streaming

<authentication>
<source-password>passwort</source-password> ### Diese Passwort wird benötigt von ices oder darkice
<relay-password>passwort</relay-password> ### Das sollte das selbe sein, ist es bei mir jedenfalls (bin überfragt)
<admin-user>admin</admin-user> ### Belass das bei "admin"
<admin-password>passwort2</admin-password> ### Diese Passwort benötigt der Icecast-Serverbetreiber (Also Du) zur Administration
<hostname>hostname.com</hostname> ### Hier Dein Hostname rein (ohne http://). LocalIP 2 Hostname zum Beispiel hier: http://msv.dk/ms592.asp

<listen-socket>
<port>8000</port> ### Den Port kannst Du ändern, musst Du aber nicht.
Ich habe nur die relevanten Zeilen rauskopiert, alle anderen Einstellungen in dieser Datei kann man so belassen, wie sie sind. Wenn jetzt der Port 8000 in der Firewall von Dir freigeschaltet wurde, kannst Du den Server starten:



1.2. Icecast-Server starten:

Starte den Icecast-Server nicht als root. Öffne eine Konsole als "normaler User" und starte den Server:
Code:
icecast -c /etc/icecast.xml
Teste den Server, indem Du folgende Adresse in Deinem Webbrowser eingibst: http://hostaname.com:8000/ . Wenn das klappt, teste noch die Admin-Rechte, indem Du folgende Adresse eingibst: http://hostname.com:8000/admin/ . Benutzer: admin, Passwort: passwort2 . Hier siehst Du Deine Server-Statistiken. Läuft alles? Dann erstell jetzt einen Audio-Stream:




2. Live-Streamen vom Line-In der Soundkarte (OSS) mittels darkice (Ogg-Stream):

Zum Streamen von der Soundkarte müssen folgende Vorraussetzungen erfüllt sein:
- Ein vorverstärktes Gerät (kein Plattenspieler ohne Mischpult) muss im Line-In der Soundkarte eingestöpselt sein.
- Der Kanal Line-In muss im Mixer (KAMix, gamix) geöffnet sein, und capture für Line-In muss aktiviert sein. Zum Testen empfehle ich krecord: einfach krecord starten und auf Ausschlag beim "Input-Level" achten. Das Input-Level sollte auch nicht permanent am roten Bereich hängen, dann eventuell die Lautstärke anpassen.

Ich erkläre das Installieren anhand eines Beispiels, die Verzeichnisnamen muss man natürlich ändern, da der User "du" bei Dir nicht existiert.

Geh zur Homepage: http://darkice.sourceforge.net/ und zieh das paket darkice-0.16.tar.gz nach /home/du . Rechtsklick drauf - Entpacken - Hier Entpacken. Öffne eine Konsole, wechsel in den neu entstanden Pfad, und kompillier das Ganze:
Code:
cd /home/du/darkice-0.16
./configure
make
An dieser Stelle benötigst Du auf jedem Fall libvorbis und libvorbis-devel.

So, jetzt konfiguriere darkice: Öffne die Datei /home/du/darkice-0.16/darkice.cfg mit einem Editor, und bearbeite folgende Einstellungen:
bufferSecs = 5 ### Verzögerung in Sekunden, 5 Sekunden sind OK.
device = /dev/dsp ### zweite soundkarte in yast: /dev/dsp1
sampleRate = 44100 ### 11025, 22050 oder 44100
channel = 2 ### 1 = mono, 2 = stereo
bitrate = 88 ### Bitrate des Ogg-Streams (Für DSL bis 6000 empfehle ich 88, das hat sich bewährt)
server = localhost ### Server auf dem selben PC? => localhost (ohne http://), ansonsten den Hostnamen, wo der Icecast-Server läuft.
port = 8000 ### port of the IceCast2 server, usually 8000
password = passwort ### Das Source-Passwort aus der /etc/icecast.xml
mountPoint = livestream.ogg ### Frei wählbarer Name des Mountpoints, aber NIEMALS die ogg-Endung vergessen.
name = Stream 1 Live ### Name
description = Leerer Stream 1 ### Beschreibung
genre = Pop ### Genre
Jetzt starte darkice als root. Öffne dazu eine Konsole:
Code:
cd /home/du/darkice-0.16/src/
su
./darkice -c /home/du/darkice-0.16/darkice.cfg
Wenn keine Fehlermeldung kommt, teste den Stream, indem Du erstmal auf Deine icecast-Statusseite gehst: http://hostname.com:8000/ . Du solltest den Stream jetzt sehen, und mit dem "Click to Listen" solltest Du auch reintunen können. Der Link hinter dem "Click To Listen" ist folgender: http://hostname.com:8000/livestream.ogg.m3u. Diese *.m3u-datei macht manchen Playern Probleme, in diesem Fall direkt den Mountpoint ansteuern, also das m3u am Ende einfach weglassen: http://hostname.com:8000/livestream.ogg .




3.0 Allgemein

Ogg-Dateien streamt man mit ices-2.0
Mp3-Dateien streamt man mit ices-0.4

Ogg-Dateien einer Playlist müssen einheitlich mono oder stereo sein.
Mp3-Dateien einer Playlist dürfen mono oder stereo sein.




3.1. Streamen einer Ogg-Playlist mittels ices-2.0.1

Ich erkläre das Installieren anhand eines Beispiels, die Verzeichnisnamen muss man natürlich ändern, da der User "du" bei Dir nicht existiert.

Geh zur Homepage: http://icecast.org/ices.php und zieh das Paket ices-2.0.1.tar.gz nach /home/du . Rechtsklick auf das Archiv - Entpacken - Hier Entpacken. Öffne eine Konsole, wechsel in den neu entstandenen Pfad, und kompillier das Ganze:
Code:
cd /home/du/ices-2.0.1/
./configure
make
An dieser Stelle benötigst Du auf jedem Fall libvorbis und libvorbis-devel.

Bevor Du ices-2.0.1 startest, erstellst Du eine Playlist-Datei namens /home/du/ices-2.0.1/playlist.txt, die Deine Ogg-Dateien beinhaltet. Schreib einfach die Dateinamen mit vollem Pfad untereinander rein. In der Playlist müssen mindestens zwei Lieder sein! Beispiel:
/home/du/musik/Britney.ogg
/home/du/musik/Justin.ogg
/home/du/musik/Pantera.ogg
So, jetzt konfiguriere ices: Öffne die Datei /home/du/ices-2.0.1/conf/ices-playlist.xml mit einem Editor, und bearbeite folgende Einstellungen:
<logpath>/home/du/ices-2.0.1</logpath> ### Pfad zur Log-Datei
<logfile>ices.log</logfile> ### Name der Log-Datei
<loglevel>3</loglevel> ### 1=error,2=warn,3=info,4=debug ; Wenn der der Stream ordentlich läuft, reicht level 3 (info)
<consolelog>1</consolelog> ### Ich empfehle, diese Option auf 1 zu setzen, damit der aktuelle Status direkt auf der Konsole zu lesen ist; nur Log-Datei => 0
<name>Stream 2 Playlist</name> ### Name
<genre>Pop</genre> ### Genre
<description>Leerer Stream 2</description> ### Beschreibung
<param name="file">/home/du/ices-2.0.1/playlist.txt</param> ### Pfad und Name der Playlist-Datei. Siehe weiter oben.
<hostname>localhost</hostname> ### Server auf dem selben PC? => localhost (ohne http://), ansonsten den Hostnamen, wo der Icecast-Server läuft.
<port>8000</port> ### Port vom Icecast-Server, normalerweise 8000
<password>passwort</password> ### Das Source-Passwort aus der /etc/icecast.xml
<mount>/oggplaylist.ogg</mount> ### Frei wählbarer Name des Mountpoints, aber NIEMALS die ogg-Endung vergessen.
<nominal-bitrate>88000</nominal-bitrate> ### Bitrate des Ogg-Streams (Für DSL bis 6000 empfehle ich 88000, das hat sich bewährt)
<samplerate>44100</samplerate> ### 11025, 22050 oder 44100
<channels>2</channels> ### 1 = mono, 2 = stereo ; Die Ogg-Dateien in der Playlist müssen tatsächlich mono oder stereo sein (Kontrollieren!)
Jetzt starte ices-2.0.1 als root. Öffne eine Konsole:
Code:
cd /home/du/ices-2.0.1/src/
su
./ices /home/du/ices-2.0.1/conf/ices-playlist.xml
Wenn keine Fehlermeldung kommt, teste den Stream, indem Du erstmal auf Deine icecast-Statusseite gehst: http://hostname.com:8000/ . Du solltest den Stream jetzt sehen, und mit dem "Click to Listen" solltest Du auch reintunen können. Der Link hinter dem "Click To Listen" ist folgender: http://hostname.com:8000/oggplaylist.ogg.m3u. Diese *.m3u-datei macht manchen Playern Probleme, in diesem Fall direkt den Mountpoint ansteuern, also das m3u am Ende einfach weglassen: http://hostname.com:8000/oggplaylist.ogg .




3.2. Streamen einer Mp3-Playlist mittels ices-0.4

Ich erkläre das Installieren anhand eines Beispiels, die Verzeichnisnamen muss man natürlich ändern, da der User "du" bei Dir nicht existiert.

Geh zur Homepage: http://icecast.org/ices.php und zieh das Paket ices-0.4.tar.gz nach /home/du . Rechtsklick auf das Archiv - Entpacken - Hier Entpacken. Öffne eine Konsole, wechsel in den neu entstandenen Pfad und kompillier das Ganze:
Code:
cd /home/du/ices-0.4/
./configure
make
An dieser Stelle benötigst Du auf jedem Fall lame und lame-devel.

Bevor Du ices-0.4 startest, erstellst Du eine Playlist-Datei namens /home/du/ices-0.4/playlist.txt, die Deine MP3-Dateien beinhaltet. Schreib einfach die Dateinamen mit vollem Pfad untereinander rein. In der Playlist müssen mindestens zwei Lieder sein! Beispiel:
/home/du/musik/Britney.mp3
/home/du/musik/Justin.mp3
/home/du/musik/Pantera.mp3
So, jetzt konfiguriere ices-0.4: Öffne die Datei /home/du/ices-0.4/conf/ices.conf.dist mit einem Editor, und bearbeite folgende Einstellungen:
<File>/home/du/ices-0.4/playlist.txt</File> ### Pfad und Name der Playlist-Datei. Siehe weiter oben.
<Randomize>0</Randomize> ### 1 = Shuffle der Playlist ; 0 = Playlist von oben nach unten abspielen
<BaseDirectory>/home/du/ices-0.4</BaseDirectory> ### Pfad zur Log-Datei
<Hostname>localhost</Hostname> ### Server auf dem selben PC? => localhost (ohne http://), ansonsten den Hostnamen, wo der Icecast-Server läuft.
<Port>8000</Port> ### Port vom Icecast-Server, normalerweise 8000
<Password>passwort</Password> ### Das Source-Passwort aus der /etc/icecast.xml
<Mountpoint>/mp3playlist</Mountpoint> ### Frei wählbarer Name des Mountpoints, bei Mp3-Streams IMMER OHNE ENDUNG.
<Name>Stream 3 Playlist</Name> ### Name
<Genre>Pop</Genre> ### Genre
<Description>Leerer Stream 3</Description> ### Beschreibung
<Bitrate>128</Bitrate> ### Bitrate des Mp3-Streams (Für DSL bis 6000 empfehle ich 128, niedriger ist bei Mp3 nicht zu empfehlen)
<Reencode>1</Reencode> ### Um den Stream auf 128 zu reduzieren, muss diese Option auf 1 stehen. Mp3-Bitrate des Originals beibelassen => 0
<Channels>2</Channels> ### 1 = mono, 2 = stereo
Jetzt starte ices-0.4 als root. Öffne eine Konsole:
Code:
cd /home/du/ices-0.4/src/
su
./ices -c /home/du/ices-0.4/conf/ices.conf.dist
Wenn keine Fehlermeldung kommt, teste den Stream, indem Du erstmal auf Deine icecast-Statusseite gehst: http://hostname.com:8000/ . Du solltest den Stream jetzt sehen, und mit dem "Click to Listen" solltest Du auch reintunen können. Der Link hinter dem "Click To Listen" ist folgender: http://hostname.com:8000/mp3playlist.m3u. Diese *.m3u-datei macht manchen Playern Probleme, in diesem Fall direkt den Mountpoint ansteuern, also das m3u am Ende einfach weglassen: http://hostname.com:8000/mp3playlist .



Zusammenfassung:

Die drei Streams sollten jetzt untereinander auf der benannten Stausseite zu sehen sein. ices und darkice benötigen kaum Ressourcen, man kann also ohne Bedenken mehrere Streams gleichzeitig laufen lassen. Den Icecast-Server kann man eigentlich immer im Hintergrund laufen lassen und gegebenenfalls einen Stream hinschicken.

Ich hoffe, der eine oder andere hat Lust auf Radio bekommen, und dass sich die Seite xiph.org mit Euren Streams füllt.

Diese Anleitung möchte überarbeitet werden...
 
Oben