staging.inyokaproject.org

Icecast2

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Icecast2 🇬🇧 ist ein quelloffener Streaming-Server, der derzeit das Ogg Vorbis- und MP3-Format unterstützt. Verschiedene Source-Clients können zum Icecast2 Server senden und fast jeder AudioPlayer kann den Stream empfangen. Icecast2 kann auch als Relay-Server für andere Icecast-, Icecast2- Server verwendet werden.

Damit mehrere Radio-Sendungen auf einem Server gesendet werden können, sind die Streams auf einem Icecast-Server in Mountpoints organisiert. Der Moderator/DJ als Source-Client und die Zuhörer verbinden sich auf dem selben Port mit dem Mountpoint.

Installation

Folgendes Paket muss installiert [1] werden:

  • icecast2 (universe)

Befehl zum Installieren der Pakete:

sudo apt-get install icecast2 

Oder mit apturl installieren, Link: apt://icecast2

Benutzung

In der Datei /etc/icecast2/icecast.xml müssen mindestens die Passwörter und der Hostname angepasst werden [2]. Weitere Einstellungen sind im Folgenden und in der Datei kommentiert.

Abschließend muss der Eintrag ENABLE=false in der Datei /etc/default/icecast2 auf ENABLE=true geändert werden [2].

Nun kann der Server gestartet werden [3]:

sudo systemctl start icecast2 

./icecast2webface_241.png

Webinterface

Das Webinterface ist jetzt ebenso auf dem Port 8000 zu erreichen, wie der voreingestellte Mountpoint /stream. Das Webinterface bietet Statistiken und eine einfache Möglichkeit, die Metadaten zum Stream im Betrieb zu aktuallisieren.

Zur Administration über das Webinterface wird das in der Konfiguration festgelegte Passwort des Benutzers admin benötigt.

Konfiguration

Auf Grundlage der Datei /etc/icecast2/icecast.xml kann man in einem Texteditor mit Root-Rechten schnell eine neue Konfiguration des Icecast2-Servers erstellen, natürlich können beliebig viele Konfigurationen erstellt und unter verschiedenen Namen gespeichert werden [4].

Allgemeiner Aufbau

Der einfachste Aufbau der Konfigurationsdatei ergibt sich ohne die Angabe eines Mountpoint, da der Standard-Mountpoint /stream vordefiniert ist.

<icecast>
 # Begrenzungen
 # Benutzer und Passwörter
 # Yellow Pages Einstellungen
 # übrige Server-Einstellungen
</icecast>

Begrenzungen

Begrenzungen dienen im wesentlichen der Bandbreiten-Beschränkung.

<limits>
  <clients>4</clients> # Maximale Zuhörerzahl
  <sources>1</sources> # Maximale Anzahl gleichzeitig verbundener Quellen
  <threadpool>5</threadpool> # Anforderungen, die der Server gleichzeitig verarbeitet
  <queue-size>524288</queue-size> # Warteschlangengröße
  <client-timeout>30</client-timeout> # Verbindungstrennung bei Timeout zum Client in Sekunden
  <header-timeout>15</header-timeout> # Verbindungstrennung bei Timeout der Metadaten in Sekunden (?)
  <source-timeout>10</source-timeout> # Verbindungstrennung bei Timeout zum Source-Client in Sekunden
  <burst-on-connect>1</burst-on-connect> # Buffern bei Verbindung
  <burst-size>65535</burst-size> # Buffergröße
</limits>

Benutzer und Passwörter

Damit nur die Moderatoren den Stream zum Server senden können, bedient man sich des Benutzers source, dessen Zugriff ebenso passwortgeschützt ist wie der des Webadministrators.

<authentication>
 <source-password>hackme</source-password> # Passwort, mit dem sich der Benutzer source verbindet.
 <relay-password>hackme</relay-password> # Passwort, mit dem sich Relay-Server verbinden.
 <admin-user>admin</admin-user> # Der Benutzername des Administrators der Weboberfläche.
 <admin-password>hackme</admin-password> # Das Passwort des Administrators der Weboberfläche.
</authentication>

Yellow Pages

Mit der Veröffentlichung der Metadaten zum Stream in den Yellow Pages wird die Internet-Station für die Hörer leicht auffindbar.

<directory>
 <yp-url-timeout>15</yp-url-timeout>
 <yp-url>http://dir.xiph.org/cgi-bin/yp-cgi</yp-url> # Beispiel Yellow Page Server
</directory>

Server-Einstellungen

<hostname>http://''deine.domain.de''</hostname> # Der Hostname ist der Computername des Systems oder seine IP-Adresse.

<listen-socket>
 <port>8000</port> # Der Port auf dem Moderator und Zuhörer zum Stream eines Mountpoints verbinden.
 <bind-address>::</bind-address> # Zugriff auch mit IPv6 ermöglichen. Fehlt dieser Eintrag, ist ein Zugriff nur via IPv4 möglich.
</listen-socket>

Webserver

Der Webserver sorgt dafür, dass das Webinterface erreichbar ist.

<fileserve>1</fileserve> # Webserver an/aus
 <paths>
  <basedir>/usr/share/icecast2</basedir> # Basisverzeichnis für den Webserver
  <logdir>/var/log/icecast2</logdir> # Protokolldatei des Webservers
  <webroot>/usr/share/icecast2/web</webroot> # Wurzelverzeichnis des Webservers
  <adminroot>/usr/share/icecast2/admin</adminroot> # Wurzelverzeichnis des Webserver-Admins
  <alias source="/" dest="/status.xsl"/> # Alias für den Standard-Mountpoint
</paths>

Logging und Sicherheit

<logging>
 <accesslog>access.log</accesslog> # Name der Zugriffsprotokoll-Datei
 <errorlog>error.log</errorlog> # Name der Fehlerprotokoll-Datei
 <loglevel>4</loglevel> # 4 Debug, 3 Informationen, 2 Warnungen, 1 Fehler
 <logsize>10000</logsize> # Maximale Größe einer Protokoll-Datei
</logging>

<security>
 <chroot>0</chroot>
</security>

⚓︎

Source-Clients

Verschiedene Source-Clients stehen dem Moderator oder DJ des Icecast2-Servers zur Verfügung. Aus dem Icecast-Projekt selbst stammt Ices, das ohne grafische Oberfläche auskommt und in zwei verschiedenen Versionen entwickelt wird. Die Software Darkice kann wie Ices über Konfigurationsdateien eingestellt werden oder über die grafische Bedienoberfläche Darksnow. Für gehobene Ansprüche stellt die Internet DJ Console eine komfortable Lösung bereit, die jedoch ein solides System und die in Tonstudio/Konfiguration beschriebenen Einstellungen vorraussetzt.

Source-Clients im Überblick
Client Input Stream Format Bedienoberfläche
Darkice ALSA, OSS, Abspielliste, jack Ogg Vorbis, MP3, aac, MP2 Darksnow
Ices0 ALSA, OSS, Abspielliste MP3 -
stream2ip PulseAudio Ogg Vorbis integriert
Mixxx - Digital DJ Interface (ab Version 1.9.0) DJ, Abspiellisten, jack, ALSA Ogg Vorbis, MP3 integriert
Music Player Daemon ALSA, OSS, jack, Abspiellisten, DJ Ogg Vorbis, MP3 MPD-Clients
VLC Abspielliste Ogg Vorbis, MP3, aac, MP2 integriert

./icecast-mit-vlc.png

Nutzung mit VLC

Am einfachsten lässt sich Icecast2 mit VLC nutzen, dazu klickt man im Hauptfenster auf "Medien" und dann auf "Stream". In den folgenden Dialogen wählt man zuerst die gewünschte Tondatei und trägt dann im "Stream-Output" Dialog die Server-Adresse, sowie das Passwort und den Nutzernamen (Standard: source) ein. Nun sollte VLC sich mit dem Icecast Server verbinden und die Tondatei als Stream abspielen

Start und Stopp-Befehle

sudo systemctl start icecast2 # Icecast starten
sudo systemctl stop icecast2 # Icecast anhalten
sudo systemctl restart icecast2 # Icecast neu starten 

Diese Revision wurde am 22. Dezember 2021 06:58 von noisefloor erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Multimedia, Netzwerk, Server, Internet, Internetradio