Eigene Radiostation mit Airtime, Mixxx und Icecast

Eigene Radiostation mit Airtime, Mixxx und Icecast

Mit aktueller OpenSource-Software ist es zwischenzeitlich einfach möglich, eine eigene kleine Radiostation zu betreiben. Im Folgenden wird die Installation und Konfiguration von Airtime als Broadcast-Server, Icecast als Streaming-Server und Mixxx als Client für DJs und Moderatoren beschrieben. Airtime und Icecast wird dabei auf einem Ubuntu-Server installiert. Mixxx ist für die Betriebssysteme Linux, Windows und Mac OS X erhältlich. Vorraussetzung ist auf dem Ubuntu-Server ein bereits laufender Apache. Nach der Konfiguration dieser Softwarepakete können eigene Radioshows und DJs eingeplant werden, die mit Mixxx live streamen können. In diesem Artikel wird nur auf die technischen Belange eingegangen. Über die rechtlichen Belange zum Betrieb einer Webradiostation muss man sich vor der Inbetriebnahme des Senders an entsprechenden Stellen informieren.

Icecast

Icecast ist zuständig für die Verteilung des von einem DJ oder einer Broadcast-Software gelieferten Audiostreams an die Zuhörer. Icecast2 ist bereits in den Ubuntu-Quellen vorhanden und kann mit

sudo apt-get install icecast2

installiert werden. Die Konfiguration erfolgt anschließend in der Datei /etc/icecast2/icecast.xml. Die Konfigurationsdatei von Icecast2 ist sehr gut dokumentiert. Folgende Parameter sollten angepasst werden:

Option Beschreibung
source-password Passwort, mit dem sich DJs oder der Broadcast-Server mit Icecast verbinden
admin-user Benutzername für den Admin-Zugang zur Icecast-Webseite
admin-password Passwort für den Admin-Zugang
hostname Hostname, unter dem der Icecast-Server erreichbar ist

In der Standardinstallation unter Ubuntu wird Icecast2 nicht automatisch gestartet. In der Datei /etc/defaults/icecast2 kann der automatische Start eingeschaltet werden. Von Hand wird der Service mit

service icecast2 start

gestartet. Anschließend ist der Icecast-Server unter der Adresse http://:8000/ erreichbar.

Icecast Weboberfläche

Icecast Weboberfläche

Airtime

Mit Airtime werden Shows verwaltet. DJs können nach dem Hochladen von Musikstücken Playlists zusammenstellen. Manager können das Programm und DJs für Shows einplanen. Airtime eignet sich also dazu, vorproduzierte Shows zu einer bestimmten Zeit automatisch auszusenden. Seit kurzem steht eine neue Airtime-Version zur Verfügung, die das Streamen an einen Icecast- oder Shoutcast-Server beherrscht. Leider ist Airtime nicht in den Ubuntu-Quellen enthalten. Vom Hersteller werden aber entsprechende Pakete bereitgestellt. Das aktuelle Paket erhält man immer unter http://apt.sourcefabric.org/misc/airtime-easy-setup.deb. Dieses Paket ist nicht schon das komplette Airtime, vielmehr installiert es weitere Quellen für apt, so dass Airtime mit Hilfe der Paketverwaltung installiert werden kann. Airtime wird dann mit folgenden Kommandos installiert:

sudo dpkg -i airtime-easy-setup.deb
sudo apt-get update
sudo apt-get install airtime

Leider setzt Airtime auf die Datenbanksoftware PostgreSQL, welche mit obigen Befehlen automatisch mitinstalliert wird. Eine Umstellung auf das bei vielen Webservern bereits vorhandene MySQL scheint momentan nicht möglich zu sein. Die Konfiguration von Airtime wird anschließend mit dem Befehl

sudo dpkg-reconfigure airtime

ausgeführt. Mit Airtime werden ein paar weitere Services installiert, die für den Betrieb der Broadcast-Software erforderlich sind. Leider musste ich feststellen, dass nach der Standardinstallation zumindest ein Service von aussen erreichbar ist. Der Service monit lauscht in der ausgelieferten Konfiguration an der öffentlichen Adresse des Broadcast-Servers und ist dadurch von aussen z.B. mit einem Webbrowser erreichbar. Um das zu ändern editiert man alle Dateien im Verzeichnis /etc/monit/conf.d, die airtime im Namen haben. Um monit nicht mehr von aussen zugänglich zu machen, editiert man die Zeile

set httpd port 2812

und fügt hinten eine Beschränkung auf localhost an:

set httpd port 2812 and use the address localhost

Damit wird monit angewiesen, nur noch auf der localhost-Adresse 127.0.0.1 zu lauschen.

Anschließend ist die Airtime-Weboberfläche unter der Adresse http:/// zu erreichen. Nach dem Login mit dem Benutzernamen admin und dem zuvor im Konfigurationsschritt festgelegten Passwort erhält man vollen Zugriff auf die Airtime-Weboberfläche.

Airtime Startseite

Airtime Startseite

Mixxx

Mit Mixxx steht eine OpenSource-Lösung für DJs zur Verfügung. Mixxx hat dazu zwei Decks, die anhand der BPM synchronisiert werden können. Außerdem lassen sich Samples für Jingles oder andere Einblendungen hinterlegen. In den Einstellungen werden die Parameter zum Verbinden mit dem Icecast-Server festgelegt:

Mixxx Stream Einstellungen

Mixxx Stream Einstellungen

Unter Host wird der Hostname eingetragen, auf dem der Icecast-Server läuft. Bei Password wird das Passwort eingestellt, welches man oben im ersten Schritt als Source-Passwort in der Icecast-Konfiguration festgelegt hat.

Möchte man Titelinformationen über das gerade gespielte Lied zu den Zuhörern übertragen, muss als Streamingformat MP3 gewählt werden. Soweit mir bekannt ist, unterstützt das OGG-Format diese Übertragung von Titelinformationen nicht.

Innerhalb von Mixxx kann mit der Taste “L” eine Verbindung zum Streaming-Server hergestellt oder auch wieder getrennt werden. Nach dem Starten eines Titels bei aktiver Verbindung zum Streaming-Server ist anschließend der Stream mit obigen Konfigurationsparametern unter der Adresse http://:8000/live zu hören.

Tipps

Automatische Stream-Umschaltung

Da DJs und der Broadcast-Server nicht in den gleichen “Eingang” in Icecast streamen können, die Zuhörer aber ein laufendes Programm empfangen und auf keinen Fall einen Streamwechsel durchführen müssen sollen, muss eine Lösung für das Umschalten von Broadcast zu Live-DJ gefunden werden. Eine einfache Möglichkeit ist die Nutzung des Failovers in Icecast. Dazu sind in der Icecast-Konfiguration weitere Mount-Punkte einzutragen:

<mount>
  <mount-name>/airtime_128</mount-name>
  <hidden>1</hidden>
</mount>

<mount>
  <mount-name>/live</mount-name>
  <fallback-mount>/airtime_128</fallback-mount>
  <fallback-override>1</fallback-override>
  <hidden>1</hidden>
</mount>

<mount>
  <mount-name>/stream</mount-name>
  <fallback-mount>/live</fallback-mount>
  <fallback-override>1</fallback-override>
  <hidden>0</hidden>
</mount>

Über den “Eingang” airtime_128 wird der Broacaster Airtime angeschlossen, über live schalten sich die DJs auf und für die Zuhörer wird die Streamadresse http://:8000/stream veröffentlicht.

Icecast Mountpoints

Icecast Mountpoints

Wenn sich nun ein Zuhörer auf stream verbindet (auf dem nie etwas eingespeist wird), sorgt der Failover-Mechanismus von Icecast dafür, dass der Zuhörer automatisch mit live verbunden wird, auf dem eventuell gerade ein DJ einspeist. Sollte aktuell auch kein DJ verbunden sein, wird weiter zu airtime_128 verbunden, auf dem der Broadcaster sein Programm einspeist. Sobald sich ein DJ aufschaltet, wird automatisch wieder auf live zurückgeschaltet. Ein Streamwechsel bei den Zuhörern ist so nicht erforderlich.


Siehe auch