Radio-Automation LibreTime: Weiterentwicklungen aus der Sourcefabric-Nutzergemeinschaft

Geschrieben von Steffen Schultz 1 Kommentar
Kategorisiert in : Software Schlüsselwörter : Audio, Icecast, OpenSource, Streaming, Webradio

Vor einigen Jahren berichtete ich über AirTime, eine Browser-basierte Automationslösung zur Verwaltung von Webradio-Stationen, welche ich seit geraumer Zeit auch für mein freies Radioprojekt einsetze. Leider stellte sich bald heraus, dass die von mir damals angesprochenen Probleme, wie etwa ein fehlender Auto-DJ, nicht in die frei verfügbare Edition integriert werden würden. Stattdessen blieben erweiterte Features der kostenpflichtigen Pro-Variante vorbehalten, welche jedoch nicht zur Installation auf eigenen Servern zur Verfügung steht, sondern durch einen von Sourcefabric verwalteten Cloud-Dienst vertrieben wird. In einem Statement aus dem letzten Sommer wurden hauptsächlich fehlende Ressourcen angegeben, die zum Aktualisieren der freien AirTime-Version nötig wären. Als Alternative wurde angeregt, dies entweder mit einer Kickstarter-Kampagne zu finanzieren, oder die bestehende Codebasis auf Github zu forken, um sie unter einem neuen Projekt und unter Regie der Community weiterzuentwickeln.

Letzteres geschah dann auch: Nachdem weitere Monate ohne Fortschritte ins Land gingen und nach einem offenen Brief an die Community fanden sich Entwickler, um schon bald erste Fortschritte unter dem Namen LibreTime zu präsentieren. Nicht nur implementierte man neue Funktionen wie etwa den bereits erwähnten Auto-DJ, sondern kümmerte sich auch um jede Menge kleinerer Fehler im Code. Und sollte sich Sourcefabric entschließen, die Entwicklung an AirTime wieder aufzunehmen, ist man seitens LibreTime gern zur Zusammenarbeit bereit.

Die ersten Alpha-Versionen sind bereits verfügbar, sollten wohl jedoch besser noch nicht in den Produktiveinsatz geschickt werden. Auch wenn ich den Fork selbst noch nicht getestet habe, mach der Entwicklungsstand schon jetzt einen vielversprechenden Eindruck.

Kurztipp: Streaming-Server mit Uptime Robot überwachen

Geschrieben von Steffen Schultz 1 Kommentar
Kategorisiert in : Software Schlüsselwörter : Icecast, Streaming, Tipp

Wenn man einen eigenen Server betreibt, ist natürlich auch das Wissen über die Zuverlässigkeit sehr wichtig. Um über Ausfälle benachrichtigt zu werden, nutze ich den Dienst Uptime Robot und bin damit sehr zufrieden. Bereits in der Gratis-Variante lassen sich Features nutzen, die man anderswo nur gegen Geld bekommen würde. Es lassen sich bis zu 50 Monitore anlegen, die dann alle 5 Minuten geprüft werden. Fällt einer der Monitore aus, wird eine Benachrichtigung an die zuvor hinterlegten Alert-Kontakte gesendet. Hierbei können E-Mails, Twitter-Direktnachrichten, SMS oder Pushbenachrichtigungen auf Smartphones und Tablets gesendet werden. Gegen einen geringen Aufpreis lässt sich das Prüfintervall auch auf bis zu eine Minute herabsetzen.

Uptimerobot bietet zahlreiche Möglichkeiten, den Status eines Dienstes oder ganzer Server zu überwachen, darunter HTTP- und Ping-Abfragen sowie Keyword-Alerts. Vor allem die Keyword-Alerts sind nützlich, um den Status bestimmter Dienste oder Webseiten zu prüfen. Hier geht es nicht so sehr darum, ob ein Server ausfällt, sondern ob sich der Status eines laufenden Prozesses ändert. Ein Anwendungsfall hierfür ist die Überwachung eines Streaming-Servers auf Source-Verbindungen hin, also ob jemand auf diesem Server sendet oder nicht. Um einen solchen Monitor einzurichten, geht man wie folgt vor:

  1. Im Dashboard auf "Add new monitor" klicken.
  2. "Friendly name": Ein Name für den Monitor, z. B. Sendestream.
  3. "URL (or IP)": Die Adresse zum Streaming-Server inklusive Port. Soll ein Icecast-Server überwacht werden, auf welchem mehrere Mountpoints laufen, empfiehlt es sich, den Mountpoint an die URL anzuhängen, z. B.: http://server:Port/status.xsl?mount=/Mountname.mp3. Auf diese Weise wird nur dieser eine Mountpoint berücksichtigt.
  4. "Keyword": Hier wird ein Schlüsselwort eingetragen, auf das der Robot anspringen soll. Es muss eine Zeichenkette sein, welche nur dann auf der Webseite zu sehen ist, wenn der Stream aktiv ist oder inaktiv, je nachdem, welches Ziel man verfolgt. Beispiele für Icecast wären "Currently playing" oder "Stream started". Letzteres empfiehlt sich dann, wenn der Icecast-Mountpoint eine Fallback-Datei angegeben hat, da bei solchen Mountpoints auch dann noch "Currently playing" als leerer Wert angezeigt wird, wenn niemand darauf sendet.
  5. "Alert when": Hier wählt man aus, wann der Robot eine Benachrichtigung senden soll - Schlüsselwort existiert oder existiert nicht. Im Icecast-Beispiel ist die Schaltfläche "Keyword Exists" am sinnvollsten.
  6. Nun noch die Alert-Kontakte anhaken und den Monitor speichern.

Ist der Streaming-Server online, aber kein Sende-Client verbunden, erfolgt zeitnah eine Benachrichtigung und es kann schnell eingegriffen werden, um den Sendebetrieb wieder aufzunehmen.

Airtime: Radioautomation auf Basis von Liquidsoap

Geschrieben von Steffen Schultz keine Kommentare
Kategorisiert in : Software Schlüsselwörter : Linux, OpenSource, Streaming, Webradio

Auch wenn ich zum Jahresende meine Mitarbeit bei SLANG Radio aufgeben muss, habe ich mich in den vergangenen Wochen in einer Testumgebung mit der von Sourcefabric entwickelten und komplett Browser-basierten Radio-Automation Airtime befasst. Hierbei handelt es sich um eine All-in-one-Lösung, welche theoretisch ohne händische Eingriffe den kompletten Betrieb einer Radiostation realisieren kann. Man könnte Airtime auch als eine eierlegende Wollmilchsau für den Radiomacher bezeichnen. Doch wie so oft kommt es gerade bei Allround-Software auf die Details an, bei denen es an mancher Stelle noch Verbesserungsbedarf gibt - aber dazu später mehr.

Aufbau und Installation

Im Backend von Airtime kommt eine Playout-Engine zum Einsatz, welche auf Liquidsoap basiert, als Datenbank wird standardmäßig auf PostgreSQL gesetzt. Des Weiteren ist ein Media-Monitor enthalten, der automatisch neu hinzugekommene Dateien im Dateisystem überwacht und sie in die Bibliothek einliest. Das Frontend wurde in PHP realisiert und sollte problemlos auf einem Apache-Webserver lauffähig sein. Das Sendesignal kann an lokale oder externe Icecast- und Shoutcast-Server (vermutlich nur Shoutcast 1.X) gestreamt werden, lässt sich aber auch über eine vorhandene Soundkarte wiedergeben.
Airtime läuft unter Linux und kann je nach Distribution relativ einfach auch von Leihen installiert werden. Wem eine Standardkonfiguration ausreicht, kann sich für Debian-basierte Systeme einen Auto-Installer als Deb-Paket herunterladen, welcher dann alle weiteren benötigten Pakete herunterlädt und die Konfiguration anpasst. Natürlich lässt sich Airtime auch von Hand installieren, um bereits im System vorhandene Konfigurationen nicht zu gefährden oder um von der Standardkonfiguration abzuweichen. Diese Variante werden vor allem sicherheitsbewusste Administratoren vorziehen, da Airtime an einigen Stellen keine sehr restriktive Konfiguration aufweist und einige Dienste sogar unter dem Root-Benutzer laufen lässt. Begründet wird dies damit, dass man es den Nutzern so einfach wie möglich machen möchte, ihr eigenes Radio an den Start zu bringen. Möchte man sich aber gar nicht selbst mit der Pflege eines Airtime-Systems befassen, bietet Sourcefabric unter der Bezeichnung Airtime Pro auch eine Managed-Hosting-Lösung an.

Die Funktionen

Nach dem ersten Anmelden präsentiert sich der Startbildschirm als weitgehend inhaltslose Ansicht, da noch keine Sendungen geplant sind. Wurden bereits Sendungen eingetragen, sieht man hier die gerade laufenden sowie noch ausstehende Songs und kann letzte Änderungen von Hand vornehmen. Alle Optionen zum Planen einer Sendung sind schnell über das Menü im oberen Seitenbereich erreichbar und sinnvollerweise so angeordnet, dass sich alle Aufgaben nacheinander abarbeiten lassen. Zuerst Medien importieren, danach in der Bibliothek Playlisten, Smart-Blöcke oder Webstreams anlegen und schließlich im Kalender die gewünschte Sendung planen. Im Menü System lassen sich u. a. die Airtime-Einstellungen und Ausgabe-Streams bearbeiten sowie Benutzer und zusätzliche Medien-Ordner verwalten. Auch an die rechtliche Seite wurde gedacht, denn im Menü Verlauf können gespielte Songs nachvollzogen und z. B. als Report für Verwertungsgesellschaften ausgedruckt werden. Im Hilfe-Menü findet sich schließlich noch der Link zum Benutzerhandbuch, in welchem alle Optionen ausführlich beschrieben sind. Die gesamte Bedienung wird durch Javascript für Echtzeit-Aktualisierungen unterstützt, ist dabei aber auch von Screen-Reader-Nutzern weitgehend hervorragend nutzbar.

Airtime kann sowohl automatisierte als auch Live-Sendungen abwickeln. Dazu stellt das System 3 verschiedene Inputs bereit, deren Status im Seitenkopf angezeigt wird. Als geplante Wiedergabe wird die reine Sende-Automation bezeichnet, während Show-Source und Master-Source für externe Eingänge gedacht sind, also Live-Sendungen. Dabei ist die Master-Source der Sende-Eingang mit höchster Priorität und kann für spontane Live-Sendungen ohne Kalender-Planung verwendet werden, während die Show-Source ein geplantes Live-Streaming ermöglicht. Ein in den Einstellungen konfigurierbares Crossfading sorgt dafür, dass die Übergänge zwischen Live- und Automationsbetrieb sauber klingen und es zu keinen Knacksern kommt, wie etwa bei einer manuellen Icecast-Mountpoint-Konfiguration.
Der Automationsbetrieb lässt sich sehr variabel gestalten. Sind genügend Songs in der Bibliothek, lassen sich ohne großen Aufwand mit sogenannten Smart-Blöcken dynamische oder statische Playlisten erstellen, die nach verschiedenen Kriterien gestaltet werden können. Natürlich lassen sich Playlisten auch von Hand mit Songs füllen. Zu beachten ist, dass Airtime die ID3-Tags zur Verwaltung der Musik verwendet. Es sollte also nicht nur auf eine korrekte UTF8-Beschriftung der Dateien geachtet werden, sondern auch auf möglichst vollständige Tags, damit sich die Musikstücke schnell wiederfinden lassen. Wer seine Playlisten nach Themen anlegt, muss also die ID3-Tags nutzen, um vorher die Musik entsprechend zu kennzeichnen (Album, Genre, Kommentar etc). Stehen diese Informationen nach einmaliger Fleißarbeit aber zur Verfügung, lassen sich in Windeseile die gewünschten Playlisten erstellen.

Die kleinen Kleinigkeiten

Im Großen und Ganzen ist Airtime eine sehr gelungene Automationslösung, die es bei richtiger Konfiguration mit kommerziellen Produkten aufnehmen kann. Manche Funktionen lassen sich aber noch nicht in der Standardkonfiguration realisieren, sodass Airtime sicher nicht für jedes Radio geeignet sein dürfte. So fehlt z. B. die Möglichkeit, das Sendesignal mit einem Compressor/Limiter zu bearbeiten. Stattdessen setzt Airtime automatische Replaygain-Tags, um die Lautstärke der Songs auf gleichem Level zu halten. Was für den Automationsbetrieb durchaus in Ordnung klingt und ohnehin jeder matschigen Radio-Kompression vorgezogen werden sollte, stellt sich spätestens bei den Live-Sendungen als Problem heraus. Hier muss der Moderator selbst dafür Sorge tragen, dass sein Sendesignal angepasst wird. Anderenfalls könnte man das Signal durch einen externen Prozessor leiten, was jedoch bei niedrigen Bitraten zu Lasten der Klangqualität gehen kann, da Airtime ohnehin schon die eingehenden Streams intern neu kodiert.
Ein weiteres Problem ist der recht primitive Crossfader, der einen sauberen Übergang zwischen den Songs ermöglichen soll. Zwar können Crossfading, Fade-In und Fade-Out konfiguriert werden, doch fehlt ein sogenannter Gap-Killer, um Stille am Ende eines Tracks dynamisch durch Einblenden des nächsten Songs auszugleichen. Der integrierte Stille-Erkenner zum Setzen der Cue-Points wirkt leider nur unzureichend, sodass es schwer ist, die richtige Crossfading-Einstellung zu finden. In meinem Test hat sich aber eine Dauer von 3 Sekunden als die am saubersten klingende Lösung herausgestellt. Unter Umständen lässt sich mit einem Audio-Trimmer hier noch mehr herausholen, was ich allerdings nicht näher getestet habe.
Bislang noch nicht realisiert, aber laut eines Blogeintrags für zukünftige Versionen geplant sind wiederkehrende Shows mit Inhalten aus Smart-Blöcken, sodass nicht jeden Tag aufs Neue die Automation für Musikstrecken programmiert werden muss.

Alles in allem ist Airtime aber eine durchaus brauchbare Automationslösung, deren Entwicklung noch längst nicht abgeschlossen sein dürfte und sicher die ein oder andere Problemstelle noch beseitigt wird. Schade nur, dass ich meinen Testsender wohl nie in den Regelbetrieb schicken können werde.

Icecast 2.4 verfügbar

Geschrieben von Steffen Schultz keine Kommentare
Kategorisiert in : Software Schlüsselwörter : Icecast, OpenSource, Streaming

Nach fast zwei Jahren Entwicklungszeit hat die Xiph.ORG-Foundation jetzt eine neue Version des freien Streaming-Servers Icecast freigegeben. Neben vielen Bugfixes und einigen internen Änderungen dürften die wichtigsten Neuerungen wohl die Unterstützung der Formate Ogg Opus und WebM sein sowie ein komplett überarbeitetes Web-Interface, das nicht nur ein besseres Rendering auf Mobilgeräten sowie XHTML-Kompatibilität verspricht, sondern auch einen HTML5-Audioplayer für unterstützte Audioformate mitbringt. Konfigurationsseitig ist es nun möglich, Standard-Werte für alle Mountpoints festzulegen. Konkret bedeutet dies, dass sich z. B. auch für dynamisch erstellte Mountpoints ohne eigene Konfiguration in der Icecast.xml bestimmte Werte voreinstellen lassen, so beispielsweise die Hörer-Authentisierung mittels Benutzernamen und Passwort.

Das komplette Changelog findet sich in den News der Projekt-Homepage sowie in der aktuellen Dokumentation. Icecast 2.4 ist als Quellcode-Paket und Win32-Build verfügbar. Aktualisierte Binärpakete für Linux könnten je nach Distribution noch eine Weile auf sich warten lassen.

Liquidsoap, eine vielseitige Radioautomation

Geschrieben von Steffen Schultz keine Kommentare
Kategorisiert in : Software Schlüsselwörter : Icecast, Linux, OpenSource, Shoutcast, Streaming, Windows

Mein Projekt der letzten Woche: Den Streaming-Server des Webradios, für welches ich arbeite, nach dem Ausscheiden unseres bisherigen Admins von Windows auf Linux umzustellen. Eine Herausforderung, die ich gern angenommen habe, bietet sie uns doch die Möglichkeit, den Server ohne sehende Hilfe komplett in Eigenregie zu administrieren. Als unerwartet schwierig erwies sich dabei die Aufgabe, einen halbwegs brauchbaren Transcoder zu finden, um unseren Haupt-Stream serverseitig in eine für mobile Nutzung geeigneten Stream herunterzukonvertieren. Unter Windows nutzten wir dafür bislang eine etwas unelegante Lösung, bei der zunächst ein auf dem Server installiertes Winamp den Stream abspielte und per Shoutcast-Plugin neu kodiert zum Server zurücksendete. Später nutzten wir dann den inzwischen nicht mehr offiziell verfügbaren Oddsock-Transcoder, der zum Schluss aber nur noch auf wackligen Füßen stand und alle paar Tage mal neu initialisiert werden musste.

Nach längerer Suche stieß ich dann auf das Projekt Savonet / Liquidsoap. hierbei handelt es sich grob gesagt um eine Automationssoftware für Webradios, die im Detail jedoch so einiges unter der Haube hat. "Liquidsoap" ist eigentlich auch keine Software im herkömmlichen Sinn, sondern eher eine eigene Skriptsprache. Das Stream-Transcoding, für welches ich "Liquidsoap" momentan einsetze, ist dabei noch vergleichsweise einfach zu bewerkstelligen. Die "Flüssigseife" kann aber noch viel mehr. Das einfache Abspielen von Playlists ist damit ebenso möglich wie ein durchformatierter Programmplan, bei welchem zu unterschiedlichen Tageszeiten ganz bestimmte Playlisten zum Einsatz kommen. Durch zahlreiche Plugins ist die Zahl der unterstützten Dateitypen und Soundquellen stark erweiterbar. Wer seinen Sender ganz ohne Moderator betreiben möchte, kann sogar die Ansage der Songs von einer Sprachausgabe übernehmen lassen. Aber natürlich lassen sich auch Live-Shows in die Planung einbauen. Gestreamt wird das fertige Programm dann entweder über die Soundkarte des Systems oder an einen Streaming-Server wie Shoutcast oder Icecast.

"Liquidsoap" kann von der Projektwebseite als Quellcode heruntergeladen werden, sollte sich auf Linux-Systemen aber auch bequem aus den Paketquellen installieren lassen. Für Windows gibt es eine vorkompilierte Version.

Artikel-Feed (RSS) dieser Tag