Icecast Konfigurations-Datei
Die Icecast Konfigurations-Datei gliedert sich in mehrere große Bereiche die wir hier näher erläutern. Das Einsetzen eines Icecast Servers erfordert zwar mehr Aufwand und ein technisches Hintergrundwissen, bringt dafür aber eine Vielzahl von Möglichkeiten mit, die ein Shoutcast Server nicht bietet.

Limits



<limits>
<clients>100</clients>
<sources>2</sources>
<threadpool>5</threadpool>
<queue-size>102400</queue-size>
<client-timeout>30</client-timeout>
<header-timeout>15</header-timeout>
<source-timeout>10</source-timeout>
<burst-on-connect>1</burst-on-connect>
<burst-size>65536</burst-size>
</limits>

Die Einstellungen sind die Default Einstellungen und sollten nur geändert werden, wenn Sie die Folgen absehen können.

clients
Maximale Anzahl an gleichzeitigen Hörern. Die Begrenzung zählt für den Server, nicht für den einzelnen Mountpoint.

sources
Maximale Anzahl an gleichzeitigen Sources (Sender).

threadpool
Anzahl an Threads, die zum Handeln der Verbindungen eingesetzt werden können. Je mehr Traffic, desto höher sollte der Wert sein.

queue-size
Maximale Größe (in Bytes) von einem (Hörer) Queue.

client-timeout
Wird noch nicht verwendet.

header-timeout
Sollte eine Verbindung nicht ordnungsgemäß zustande kommen, wird die Verbindung nach der eingestellten Zeit getrennt.

source-timeout
Sollte eine Source Verbindung nicht ordnungsgemäß zustande kommen, wird die Verbindung nach der eingestellten Zeit getrennt.

burst-on-connect
Um die Zeit beim start des Streams zu verkürzen, können die ersten Daten beschleunigt an den Client übertragen werden.

burst-size
Hier kann die größe der Datenmenge, die beim Burst gesendet werden, noch verändert werden.

Authentifizierung



<authentication>
<source-password>hackme</source-password>
<relay-user>relay</relay-user>
<relay-password>hackme</relay-password>
<admin-user>admin</admin-user>
<admin-password>hackme</admin-password>
</authentication>

Hier werden die Zugangsdaten zum Icecast verwaltet. Das Thema Listener Authentication wird an anderer Stelle behandelt.

source-password
Der Username für die Source verbindung ist "source", dazu benötigen Sie das source-password.

relay-user
Um den Stream relayen zu dürfen, benötigen Sie als Default User "relay" und Passwort das relay-password.

relay-password
Das Passwort für einen Relay

admin-user
Hier wird der Username des Admins angegeben.

admin-password
Username und Passwort für alle Administrativen Dinge.

YP Directory



<directory>
<yp-url-timeout>15</yp-url-timeout>
<yp-url>http://dir.xiph.org/cgi-bin/yp-cgi</yp-url>
</directory>

Wie auch beim SHOUTcast hat der Icecast ein öffentliches Verzeichnis, in dem man sein Radio listen lassen kann, sobal man online geht.

yp-url-timeout
Hier trägt man ein, wielange der Icecast versuchen soll einen YP Server zu erreichen.

yp-url
Hier kommt die URL zuim YP Server rein.

Server Einstellungen



<hostname>localhost<hostname>
<-- <port>8000</port> -->
<-- <bind-address>127.0.0.1</bind-address> -->
<-- You may have multiple <listen-socket> elements -->
<listen-socket>
<port>8000</port>
<bind-address>127.0.0.1</bind-address>
</listen-socket>
<listen-socket>
<port>8001</port>
<bind-address>127.0.0.1</bind-address>
<shoutcast-compat>1</shoutcast-compat>
</listen-socket>
<fileserve>1</fileserve>
<shoutcast-mount>/live.nsv</shoutcast-mount>


Hier werden die Standart Werte des Icecast Server festgelegt.

port
auf welchem Port soll der Icecast lauschen.

bind-address

Hier können Sie die IP Adressen Ihres Icecast angeben, aud ie er reagieren soll. Wenn keine angegeben wird, werden alle verfügbaren benutzt.

shoutcast-compat
Ist für die Kompatibilität zum SHOUTcast nötig. Der Icecast verhält sich dann nach außen hin wie ein SHOUTcast.


fileserve
Pfad zu den statischen OnDemand Files.

shoutcast-mount
Wenn SHOUTcast Clients sich verbinden, sollen die auf den angegebenen Mount Point verwiesen werden. Das ist nötig, da diese keinen Mount Point angeben.

Relay Einstellungen



<master-server>127.0.0.1</master-server>
<master-server-port>8001</master-server-port>
<master-update-interval>120</master-update-interval>
<master-username>relay</master-username>
<master-password>hackme</master-password>
<relays-on-demand>0</relays-on-demand>
<relay>
<server>127.0.0.1</server>
<port>8001</port>
<mount>/example.ogg</mount>
<local-mount>/different.ogg</local-mount>
<username>joe</username>
<password>soap</password>
<relay-shoutcast-metadata>0</relay-shoutcast-metadata>
<on-demand>0</on-demand>
</relay>


Dieser Bereich beschreibt die Einstellungen als Relay Server.

Master Relay



Nachfolgend finden Sie ein Diagramm, was den Aufbau von Relays darstellt.


|-----| |-----|
| | all mountpoints | | /mount1
| | <------------------- | | /mount2.ogg
|-----| |-----| /mount3
Icecast 2 Icecast 2
Server 1 Server 2
(RELAY SERVER) (MASTER SERVER)

configured with
<master-server>
settings


Die Realy Server benutzen die gleiche Konfiguration, wie der Master Server.

master-server
Hier kommt die IP Adresse des Master Servers rein.

master-server-port
Hier kommt der Port des Master Servers rein.

master-update-interval
Update Intervall zwischen Master und Relay.

master-username
Hier wird der Username des Relay angegeben, wie er oben im Master Server eingetragen wurde.

master-password
Hier wird das Passwort des Relay angegeben, wie es oben im Master Server eingetragen wurde.

relays-on-demand
Eine "1" bedeutet, es wird nur relayed, wenn auch Hörer vorhanden sind, bei "0" (default) wird immer relayed.

Mountpoint Relay


Das folgende Diagramm zeigt, wie man nur spezielle Mount Points relayed.

|-----| |-----|
| | /mount3 | | /mount1
| | <------------------- | | /mount2.ogg
|-----| |-----| /mount3
Icecast 2 Icecast 2/Shoutcast/Icecast
Server 1 Server 2
(RELAY SERVER) (REMOTE SERVER)

configured with
<relay>
settings


<relay>
<server>127.0.0.1</server>
<port>8001</port>
<mount>/example.ogg</mount>
<local-mount>/different.ogg</local-mount>
<username>joe</username>
<password>soap</password>
<relay-shoutcast-metadata>0</relay-shoutcast-metadata>
<on-demand>1</on-demand>
</relay>


server
Hier kommt die IP Adresse des Master Servers rein.

port
Hier kommt der Port des Master Servers rein.

mount
Hier kommt der Mount Point rein, der relayed werden soll. Wenn Sie einen SHOUTcast relayen wollen, muß das "/" sein.

local-mount
Hier benennen Sie den Namen des Mount Points auf dem Relay Server.

username
Hier wird der Username des Relay angegeben, wie er oben im Master Server eingetragen wurde.

password
Hier wird das Passwort des Relay angegeben, wie es oben im Master Server eingetragen wurde.

relay-shoutcast-metadata
Wenn Sie einen SHOUTcast relayen, können Sie hier bestimmen, ob die Meta Daten (Liedtitel u.s.w.) ebenfalls relayed werden sollen. Mit "1" ja, mit "0" wird nicht relayed.

on-demand
Eine "1" bedeutet, es wird nur relayed, wenn auch Hörer vorhanden sind, bei "0" (default) wird immer relayed.

Mount Einstellungen



<mount>
<mount-name>/example-complex.ogg</mount-name>
<username>othersource</username>
<password>hackmemore</password>
<max-listeners>1</max-listeners>
<max-listener-duration>3600</max-listener-duration>
<dump-file>/tmp/dump-example1.ogg</dump-file>
<intro>/intro.ogg</intro>
<fallback-mount>/example2.ogg</fallback-mount>
<fallback-override>1</fallback-override>
<fallback-when-full>1</fallback-when-full>
<public>1</public>
<stream-name>My audio stream</stream-name>
<stream-description>description</stream-description>
<stream-url>http://some.place.com</stream-url>
<genre>CLASSical</genre>
<bitrate>64</bitrate>
<type>application/ogg</type>
<subtype>vorbis</subtype>
<hidden>1</hidden>
<burst-size>65536</burst-size>
<mp3-metadata-interval>4096</mp3-metadata-interval>
<authentication type="htpasswd">
<option NAME="filename" value="myauth"/>
<option NAME="allow_duplicate_users" value="0"/>
</authentication>
<on-connect>/home/source-start</on-connect>
<on-disconnect>/home/source-end</on-disconnect>
</mount>

Dieser beschäftigt sich mit den Mount Points für Hörer und Sender.

mount-name
Hier wird der Name des Mount Points angegeben.

username
Hier wird der Username angegeben, den der Sender/Source benutzen muß.

password
Hier wird das Passwort angegeben, das der Sender/Source benutzen muß.

max-listeners
Anzahl maximaler gleichzeitiger erlaubter Hörer.

max-listener-duration
Durchschnittliche Zeit, die Hörer zum Stream verbunden sein dürfen.

dump-file
Optional kann ein Dump File angegeben werden, wo der Stream sozusagen mitgeschnitten wird.

intro
Hier kann ein Intro angegeben werden. Jeder Hörer der zum Stream sich verbindet, wird erst diesen hören.

fallback-mount
Sollte ein Mount Point offline sein, werden die Clients auf diesen hier angegeben weitergeleitet.

fallback-override
Hier kann man zulassen, daß User vom fallback-mount wieder auf den Source Stream geleitet werden, wenn dieser online ist.

fallback-when-full
Mit "1" werden alle Clients auf den fallback-mount geleitet, wenn die maximale Hörerzahl des Mount Points erreicht wurde.

no-yp (deprecated)
Hier kann man einzelne Mount Points ausschließen vom Listing im YP Verzeichnis.

public
Die Einstellung ist notwendig, wenn man im YP verzeichnis gelistet sein möchte. Die YP Server können ein Listing verweigern, wenn der Icecast zuwenig Informationen (s.o.) zur Verfügungen stellt.

stream-name
Gibt den Streamnamen vor, kann aber vom Sender/Source überschrieben werden.

stream-description
Gibt die Stream Beschreibung vor, kann aber vom Sender/Source überschrieben werden.

stream-url
Geben Sie hier die URL/Domain zu Ihrer Webseite an.

genre
Geben Sie hier das Genre Ihre Musikrichtung an. Freie Texte sind möglich, sollten sich aber an Standart Genres halten, da YP Verzeichnisse Sie danach auch listen. Die Anzahl an Genres spielt keine Rolle, es werden aber sicherlich in der Praxis nur eine gweisse Anzahl zugelassen sein, übertreiben Sie es also nicht.

bitrate
Hier kann die Bitrate des Mount Points in kbps angegeben werden. Der Sender/Source kann diese überschreiben.

type
Hier wird der Mime Type des Streams angegeben. Das können z.B. folgende sein: MPEG, AAC, AACP und OGG. Es gibt aber auch noch eine Reihe weiterer Formate.

subtype
Die Angabe hier wird nur benötigt, wenn z.B. bei vorbis/theora dem YP Verzeichnis das genaue Format (z.B. OGG) mitgeteilt werden soll.

burst-size
Hier kann die größe der Datenmenge, die beim Burst gesendet werden, noch verändert werden.

mp3-metadata-interval
Der Intervall, indem Meta Daten sich upaten. Die Einstellung betrifft auch die SHOUTcast Kompatibilität.

hidden
Hier können Mount Points von den xsl Dateien ausgenommen werden. Sie werden dann nicht auf der Status Seite angezeigt.

authentication
Dieser Bereich befasst sich mit der Authentifizierung von Hörern. Genauer wird nochmal hier darauf eingegangen.

on-connect
Nur für Linux/Unix Systeme, hier kann ein Programm angegeben werden, was beim Connect gestartet wird. Der Mount Point wird ebenfalls übermittelt. Unter Windows Systemen steht diese Option nicht zur Verfügung.

on-disconnect
Nur für Linux/Unix Systeme, hier kann ein Programm angegeben werden, was bem beenden der Verbindung gestartet wird. Der Mount Point wird ebenfalls übermittelt. Unter Windows Systemen steht diese Option nicht zur Verfügung.

Pfad Einstellungen



<paths>
<basedir>./</basedir>
<logdir>./logs</logdir>
<pidfile>./icecast.pid</pidfile>
<webroot>./web</webroot>
<adminroot>./admin</adminroot>
<alias source="/foo" dest="/bar"/>
</paths>

Dieser Bereich befasst sich mit den Pfadangaben, die für den Icecast benötigt werden.

basedir
Das Hauptverzeichnis (Root) vom Icecast. Unter Windows nicht verfügbar.

logdir
Das Verzeichnis, in dem die Logdateien angelegt werden.

pidfile
Die Datei, die dem System zeigt, das bereits ein Dienst läuft.

webroot
In diesem Verzeichnis liegen z.B. auch die OnDemand Files.

adminroot
Das Vezeichnis, über das man per Webinterface den Icecast administrativ verwalten kann.

alias source="/foo" dest="/bar"
Hier kann man mehrere Mount Points auf einen einzigen umleiten.

Log Einstellungen



<logging>
<accesslog>access.log</accesslog>
<errorlog>error.log</errorlog>
<playlistlog>playlist.log</playlistlog>
<loglevel>4</loglevel>
<-- 4 Debug, 3 Info, 2 Warn, 1 Error -->
</logging>

In diesem Bereich geht es um die allgemeinen Log Einstellungen.

accesslog
In dieser Logdatei werden alle Zugriffe auf den Icecast geloggt.

errorlog
Alle Fehler werden hier geloggt. Gerade bei Problemen mit der Installation und dem Starten vom Icecast finden Sie hier nütliche Informationen, die Ihnen weiterhelfen.

playlistlog
Hier kann man die gespielten Lieder mitloggen lassen.

logsize
Geben Sie hier an, wie groß ein Logfile werden darf. Diese Option sollte unbedingt angegeben werden. Bei Linux/Unix Systemen können Sie problemlos bis zu 100MB gehen. Optimal wäre aber nicht mehr als 10MB. Diese Richtlinie stellt nur eine Empfehlung dar!

logarchive
Hier kann man alte Logfiles mit einem Timestamp (Zeitangabe) versehen, um nicht alte Logfiles zu überschreiben. Achten Sie aber dann darauf, diese Logfiles auch mal manuell zu löschen, da die sich sonst ganz schön ansammeln können. Die Grenze ist nur die Ihrer Festplattenkapazität, könnte aber ihr System stark beeinträchtigen.

loglevel
Mit dem Loglevel können Sie bestimmen, wieviel Meldungen im Logfile enthalten sein sollen. Je höher, desto schneller wächst auch ihr Logfile an.


  • loglevel = 4 - Fehler,Warnungen,Infos und Debug

  • loglevel = 3 - Fehler,Warnungen und Infos

  • loglevel = 2 - Fehler und Warnungen

  • loglevel = 1 - Fehler



Sicherheit



<security>
<chroot>0</chroot>
<changeowner>
<user>nobody</user>
<group>nogroup</group>
</changeowner>
</security>

Dieser Bereich betrifft die Server seitigen Sicherheitseinstellungen. Sie sollten soweit wie möglich auch umgesetzt werden.

chroot
Hier können Sie das hauptverzeichnis des Icecast chrooten. Es sist somit nicht möglich, in überliegende Verzeichnisse zu gelangen.

changeowner
Geben Sie hier den Benutzer an, unter dem der Icecast laufen soll.

Es empfiehlt sich, einen eigenen System User ohne Shell anzulegen, und nur mit diesem den Icecast zu starten. In der Manpage SU finden Sie, wie Sie diesem User für den einen Aufruf eine Shell geben können.
zuletzt geändert: 17.05.2014
© MusicGoal 2006 - | Impressum | Datenschutzerklärung