Springe zum Inhalt

Airtime und Icecast verbinden

Im Zusammenspiel von Airtime, Mixxx und Icecast2 ist der Betrieb einer eigenen kleinen Radiostation mit Hilfe von OpenSource Software möglich. Im Folgenden soll auf die korrekte Konfiguration im Hinblick auf die Verbindung von Airtime zu Icecast eingegangen werden. Es werden Beispiele für den Betrieb auf  demselben oder unterschiedlichen Servern aufgezeigt.

Airtime

Airtime unterstützt das gleichzeitige Streamen an bis zu drei unterschiedliche Streams. Die Einstellungen der Streams werden über die Airtime-Verwaltungsoberfläche unter System -> Stream-Settings konfiguriert. Etwas unglücklich gelöst ist die Eingabe des Stream-Passwortes, denn dazu muss auf der Verwaltungswebseite unter dem jeweiligen Stream erst Additional Options angeklickt werden.

Falls Airtime und Icecast2 auf dem gleichen Server installiert sind, ist als Server am besten localhost anzugeben. Lokale Verbindungen werden von den meisten unter Linux installierten Firewalls nicht blockiert. Somit sind Probleme durch falsch angelegte Regeln in der Firewallsoftware ausgeschlossen.

Beim Betrieb von Airtime und Icecast2 auf unterschiedlichen Servern muss als Server natürlich der korrekte Hostname des Icecast2-Servers angegeben werden. Dieser muss auch vom Icecast2-Server korrekt in eine IP-Adresse auflösbar sein. Bei Servern im Internet wird das fast immer der Fall sein, bei einer Installation im Heimnetz wird eine im Heimnetz funktionierende DNS-Konfiguration benötigt. Hilfsweise kann man jedoch bei Server auch die IP-Adresse des lokalen Icecast2-Servers angeben.

Bei den erweiterten Optionen zum Stream werden die Zugangskennung zum Stream und  Metadaten eingegeben, die dann auch in den MP3- oder OGG-Metadaten an die Zuhörer weitergesendet werden. Der  Standard-Benutzername in Icecast2 für eine Quelle ist source. Das Passwort muss das gleiche sein, welches man in der Icecast2-Konfigurationsdatei /etc/icecast2/icecast.xml bei der Einstellung <source-password> eingestellt hat.

Im folgenden Bild werden die Stream-Einstellungen von Airtime für den Betrieb auf unterschiedlichen Servern dargestellt (da hier nur ein privater Testserver installiert ist, sind einige Informationen verpixelt):

Nach dem Speichern der Einstellungen (diese werden in /etc/airtime/liquidsoap.cfg gespeichert) versucht Airtime, sich mit dem Icecast2-Server zu verbinden. Bei erfolgreicher Verbindung wird (wie im Bild gezeigt) Connected to the streaming server angezeigt. Sollte die Verbindung nicht sofort hergestellt werden können, ist evtl. der Service airtime-playout neu zu starten.

/etc/init.d/airtime-playout restart

Der Status des Dienstes kann anschließend auf der Verwaltungswebseite von Airtime unter System -> Status abgefragt werden.

Die Logdateien von Airtime sind unter /var/log/airtime zu finden. Liquidsoap (der Teil von Airtime, der auch das Streaming übernimmt), erstellt dabei für die laufenden Skripte Logdateien unter /var/log/airtime/pypo-liquidsoap.

Icecast

Icecast2 wird komplett über die Datei /etc/icecast2/icecast.xml konfiguriert. Am besten wird die Datei mit einem Editor bearbeitet, der Syntaxhervorhebung unterstützt, um Fehler im XML zu vermeiden.

Zugangsdaten

Bei den Zugangsdaten wird das Passwort festgelegt, mit dem sich eine Source (also hier Airtime) mit dem Icecast2-Server verbinden darf. Bei Bedarf wird ein Passwort festgelegt, über das sich Relay-Server mit Icecast verbinden dürfen und ebenfalls der Benutzername und das Passwort für den Admin-Zugang werden festgelegt:

<authentication>
 <!-- Sources log in with username 'source' -->
 <source-password>xxxxxxxxxx</source-password>
 <!-- Relays log in username 'relay' -->
 <relay-password>yyyyyyyyyy</relay-password>
 <!-- Admin logs in with the username given below -->
 <admin-user>admin</admin-user>
 <admin-password>zzzzzzzzzz</admin-password>
</authentication>

Serveradresse und Port

Icecast2 lauscht standardmäßig auf dem TCP-Port 8000 auf allen Netzwerkinterfaces. Diese Einstellung funktioniert für den Betrieb in einem Heimnetzwerk oder auch im Internet. Bei einer Änderung des Ports muss dieser auch in die Airtime Streamkonfiguration übernommen werden.

Mount-Punkte

Ein einfacher Mount-Punkt kann mit

<mount>
 <mount-name>/airtime_128</mount-name>
</mount>

erstellt werden.  Damit wird der Mount airtime_128 erstellt (der Gleiche, der oben schon in der Airtime-Konfiguration angeben wurde).

Eine weitere Konfiguration mit unterschiedlichen Mount-Punkten für einen automatischen Failover zum Streamwechsel ist in den Tipps zum automatischen Streamwechsel (ganz unten auf der Seite) beschrieben.

Nach dem Neustart des Icecast2-Services mit

/etc/init.d/icecast2 restart

und dem Anmelden auf der Verwaltungswebseite von Icecast unter http://<icecast-server>:8000/admin/ werden die konfigurierten Mount-Punkte angezeigt. Sofern sich der Airtime-Server bereits mit dem Mount-Punkt verbunden hat, ist eine Übersicht ähnlich dieser zu sehen:

Die Logs von Icecast2 sind unter /var/log/icecast2 zu finden. Ein erfolgreicher Verbindungsaufbau von Airtime zu Icecast sieht dann in etwa so aus (aus error.log):

[2012-03-25 19:53:59] INFO connection/_handle_source_request Source logging in at mountpoint "/airtime_128"
[2012-03-25 19:53:59] INFO source/source_main listener count on /airtime_128 now 0
[2012-03-25 19:53:59] INFO admin/admin_handle_request Received admin command metadata on mount "/airtime_128"

Bei Einträgen wie

[2012-03-25 19:53:50] INFO connection/_handle_source_request Source (/airtime_128) attempted to login with invalid or missing password
[2012-03-25 19:53:56] INFO connection/_handle_source_request Source logging in at mountpoint "/airtime_128"

stimmen das konfigurierte Passwort in Icecast2 und Airtime nicht überein.

Bei weiteren Fragen zum Thema nicht zögern und die Kommentarfunktion hier im Blog verwenden.