[[Vorlage(Getestet, focal)]] {{{#!vorlage Wissen [:Pakete_installieren: Installation von Programmen] [:Editor: Einen Editor öffnen] [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis(2)]] [https://www.icecast.org Icecast2] {en} ist ein quelloffener Streaming-Server, der derzeit das [:Vorbis: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 [#SourceClients Source-Client] und die Zuhörer verbinden sich auf dem selben Port mit dem Mountpoint. = Installation = Folgendes Paket muss installiert [1] werden: {{{#!vorlage Paketinstallation icecast2, universe }}} = 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]: {{{#!vorlage Befehl sudo systemctl start icecast2 }}} [[Bild(./icecast2webface_241.png, 200, right)]] == 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. {{{ # Begrenzungen # Benutzer und Passwörter # Yellow Pages Einstellungen # übrige Server-Einstellungen }}} == Begrenzungen == Begrenzungen dienen im wesentlichen der Bandbreiten-Beschränkung. {{{ 4 # Maximale Zuhörerzahl 1 # Maximale Anzahl gleichzeitig verbundener Quellen 5 # Anforderungen, die der Server gleichzeitig verarbeitet 524288 # Warteschlangengröße 30 # Verbindungstrennung bei Timeout zum Client in Sekunden 15 # Verbindungstrennung bei Timeout der Metadaten in Sekunden (?) 10 # Verbindungstrennung bei Timeout zum Source-Client in Sekunden 1 # Buffern bei Verbindung 65535 # Buffergröße }}} == 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. {{{ hackme # Passwort, mit dem sich der Benutzer source verbindet. hackme # Passwort, mit dem sich Relay-Server verbinden. admin # Der Benutzername des Administrators der Weboberfläche. hackme # Das Passwort des Administrators der Weboberfläche. }}} == 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. {{{ 15 http://dir.xiph.org/cgi-bin/yp-cgi # Beispiel Yellow Page Server }}} == Server-Einstellungen == {{{http://''deine.domain.de'' # Der Hostname ist der Computername des Systems oder seine IP-Adresse. 8000 # Der Port auf dem Moderator und Zuhörer zum Stream eines Mountpoints verbinden. :: # Zugriff auch mit IPv6 ermöglichen. Fehlt dieser Eintrag, ist ein Zugriff nur via IPv4 möglich. }}} == Webserver == Der Webserver sorgt dafür, dass das Webinterface erreichbar ist. {{{1 # Webserver an/aus /usr/share/icecast2 # Basisverzeichnis für den Webserver /var/log/icecast2 # Protokolldatei des Webservers /usr/share/icecast2/web # Wurzelverzeichnis des Webservers /usr/share/icecast2/admin # Wurzelverzeichnis des Webserver-Admins # Alias für den Standard-Mountpoint }}} == Logging und Sicherheit == {{{ access.log # Name der Zugriffsprotokoll-Datei error.log # Name der Fehlerprotokoll-Datei 4 # 4 Debug, 3 Informationen, 2 Warnungen, 1 Fehler 10000 # Maximale Größe einer Protokoll-Datei 0 }}} [[Anker(SourceClients)]] = 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. {{{#!vorlage Tabelle <-4 tablestyle="width: 95%;" rowclass="titel">Source-Clients im Überblick +++ Client Input Stream Format Bedienoberfläche +++ [:Darkice:] ALSA, OSS, Abspielliste, jack Ogg Vorbis, MP3, aac, MP2 [:Darkice: Darksnow] +++ Ices0 ALSA, OSS, Abspielliste MP3 - +++ [:stream2ip:] PulseAudio Ogg Vorbis integriert +++ [:Mixxx:Mixxx - Digital DJ Interface] (ab Version 1.9.0) DJ, Abspiellisten, jack, ALSA Ogg Vorbis, MP3 integriert +++ [:MPD:Music Player Daemon] ALSA, OSS, jack, Abspiellisten, DJ Ogg Vorbis, MP3 [:MPD:MPD-Clients] +++ [:VLC:] Abspielliste Ogg Vorbis, MP3, aac, MP2 integriert +++ }}} [[Bild(./icecast-mit-vlc.png, 300 align=right)]] == 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 = {{{#!vorlage Befehl sudo systemctl start icecast2 # Icecast starten sudo systemctl stop icecast2 # Icecast anhalten sudo systemctl restart icecast2 # Icecast neu starten }}} = Links = * [https://www.icecast.org Icecast2] {en} - Projekt-Seite * [:Internetradio:] -Übersicht * [:Internetradio/Funktionsweise:] - Hintergrundwissen # tag: Internet, Multimedia, Netzwerk, Server, Internetradio