Icecast2
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 20.04 Focal Fossa
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
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 |
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
Links¶
Icecast2 🇬🇧 - Projekt-Seite
Internetradio -Übersicht
Internetradio/Funktionsweise - Hintergrundwissen