Installieren von Icecast unter Linux für Ihr eigenes Streaming Radio


Linux
2024-01-01T14:01:22Z

Wollten Sie schon immer Ihren eigenen Radiosender starten, den Sie und Ihre Freunde genießen können? Das kannst du mit Icecast. In diesem Artikel werden wir ein einfaches Online-Streaming-Radio erstellen.

Icecast ist ein Open-Source HTTP / Standard-basierter Live Media Streaming Server, der von der Xiph.org Foundation entwickelt wurde. Er wird für alles verwendet, von kleinen Heimradio- und Jukebox-Projekten bis hin zu großen Internet-Radiosendern für Unternehmen und alles dazwischen. Alles, was Sie zum Start brauchen, ist ein Computer und ein angeschlossenes Mikrofon. Icecast ist für Linux/Unix und Windows verfügbar. Es gibt ähnliche Projekte, wie Shoutcast, Snapcast und AzuraCast. Wir werden hier Icecast verwenden, da es am besten geeignet und am einfachsten für einen DIY-Streaming-Radiosender einzurichten ist.

Die Lizenzanforderungen für den Betrieb eines Internet-Radiosenders variieren von Land zu Land. Wenn du vorhast, urheberrechtlich geschütztes Material zu streamen, musst du die entsprechenden Lizenzen von den Urheberrechtsbehörden einholen und/oder die ausdrückliche Erlaubnis des/der Urheberrechtsinhaber(s) einholen. Bitte informieren Sie sich in den Gesetzen Ihres Landes über die spezifischen Anforderungen. Weitere Informationen finden Sie auf der Wikipedia-Seite zum Thema Internetradio.

Installieren von Icecast

Sie können Icecast mit dem Paketmanager Ihrer Distribution herunterladen. Das ist die Methode, die wir in diesem Artikel verwenden werden.

Wie bei vielen Software-Projekten sollten Sie, wenn Sie die neueste Version von Icecast wollen, den Quellcode direkt von der offiziellen Website herunterladen und bauen oder das öffentliche Git-Repository klonen. Version 2.5 steht kurz vor der Fertigstellung und hat viele neue Funktionen, einschließlich einer kompletten Überarbeitung der Web-Oberfläche, ist aber noch nicht in den Distributionen enthalten.

Für Debian-basierte Distributionen installieren Sie das icecast2-Paket mit apt:

sudo apt install icecast2

Terminal window showing command to install Icecast onDebian

Für Redhat-Distributionen verwenden Sie dnf, um das icecast-Paket zu installieren:

sudo dnf install icecast

Terminal window showing command to install Icecast on Fedora

Erste Konfiguration

Du hast also Icecast installiert. Was nun? Debian-Distributionen führen nach der Installation ein Skript aus, das Ihnen bei der Konfiguration hilft. Drücken Sie im ersten Dialog die linke Pfeiltaste, um "Ja" auszuwählen und drücken Sie dann Enter:

Terminal window asking if you would like to configure Icecast on Debian

Da wir einen privaten Radiostream einrichten, geben wir bei der nächsten Aufforderung die LAN-IP des Rechners ein:

Terminal window asking for your address for Icecast on Debian

Ein Quell-Client ist das Programm, mit dem Sie Mediendateien (oder Live-Audio) an den Server streamen. Das Quell-Passwort dient zur Authentifizierung bei Icecast, damit Sie einen Stream starten können. Ich empfehle ein eindeutiges Passwort und nicht das Standardpasswort (das "hackme" lautet). Vielleicht so etwas wie:

Terminal window asking for a source password for Icecast on Debian

Relays sind in größeren Setups nützlich, um die Hörerlast auf mehrere Server zu verteilen. Wir werden hier keine Relais einrichten, also können Sie eingeben, was immer Sie wollen (aber auch hier empfehle ich, die Standardeinstellung zu ändern):

Terminal window asking for a relay password for Icecast on Debian

Zum Schluss werden wir nach dem Passwort für den Admin-Benutzer gefragt. Sie verwenden dieses, um auf den Admin-Bereich der Web-Oberfläche von Icecast zuzugreifen. Ändern Sie den Standardwert in etwas Eindeutiges:

Terminal window asking for an admin password for Icecast on Debian

Redhat-Distributionen kehren nach der Installation einfach zur Eingabeaufforderung zurück. Keine große Sache, wir werden die Dinge direkt in der Konfigurationsdatei einrichten, die sich unter "/etc/icecast.xml" befindet. Starten Sie Ihren bevorzugten Texteditor und machen Sie sich an die Arbeit:

Terminal window showing the vim command to edit icecast.xml on Fedora

Die Standardkonfiguration ist für die meisten einfachen Installationen wie die unsere gut durchdacht. Die Icecast-Entwickler empfehlen, so wenig wie möglich zu ändern und die Konfiguration später an die eigenen Bedürfnisse anzupassen.

Ändern Sie zunächst die Passwörter von den Standardeinstellungen:

Editor with icecast icecast.xml open, showing passwords to edit

Als nächstes ändern Sie die bind-address auf die LAN IP-Adresse Ihres Servers:

Editor with icecast icecast.xml open, showing bind-address to edit

Speichern Sie die Konfigurationsdatei und starten Sie Icecast neu, damit unsere Änderungen wirksam werden:

Terminal window showing the command to restart Icecast, applying new configuration

Lassen Sie uns überprüfen, ob alles funktioniert:

sudo systemctl status icecast.service

Terminal window using systemctl command to verify Icecast daemon is running

Großartig! Jetzt, wo Icecast läuft, können wir mit unserem Quell-Client beginnen.

Auswahl eines Quell-Clients

Es gibt 3 Hauptkomponenten des Icecast-Streamings: den Source-Client, den Icecast-Server und den Listener-Client. Sie sind alle unabhängig voneinander und können (und tun es oft auch) auf verschiedenen Rechnern arbeiten. Der Source Client spielt Ihre Musikdateien ab oder streamt Live-Audio zu Icecast. Icecast verteilt diesen Stream dann über das HTTP-Protokoll an die Hörer. Das funktioniert in etwa so:

Flowchart of Icecast stream

Die Wahl des richtigen Quell-Clients für dein Setup hängt von vielen Faktoren ab. Einige Fragen, die Sie bei Ihrer Entscheidung berücksichtigen sollten, sind:

  • Möchte ich vorab aufgenommene Ton-/Musikdateien streamen?
  • Möchte ich Live-Audio von Mikrofonen und Mischpulten streamen?
  • Möchte ich von einem Desktop/Laptop oder einem mobilen Gerät (oder beidem) senden?
  • Gibt es Einschränkungen oder Anforderungen in Bezug auf das Betriebssystem?

Es gibt eine nicht vollständige Liste von Quell-Clients auf der Icecast Apps Seite.

Für dieses Tutorial verwenden wir einen funktionsreichen und dennoch einfach zu bedienenden Quellcode-Client von Daniel Nöthen namens Broadcast Using This Tool (kurz BUTT - fragen Sie mich nicht, ob dieses Akronym beabsichtigt war oder nicht!). Wir werden BUTT benutzen, um von unserem Mikrofon zu Icecast zu streamen. BUTT ist für Linux, macOS und Windows verfügbar. Du kannst es von der offiziellen Download-Seite herunterladen.

Die Konfiguration ist ziemlich einfach. Wählen Sie im Hauptfenster die Schaltfläche "Einstellungen" und klicken Sie dann auf der Registerkarte "Haupt" unter "Servereinstellungen" auf die Schaltfläche "Hinzufügen". Es öffnet sich ein neues Fenster, in dem Sie Ihren Server konfigurieren können.

Wählen Sie einen Namen für die Konfiguration dieses Servers (es werden mehrere Serverkonfigurationen unterstützt) und wählen Sie die Optionsschaltfläche "Icecast". Geben Sie die IP-Adresse und den Port (Standardport ist 8000) Ihres Icecast-Servers sowie Ihr Quellpasswort ein. Fügen Sie unter "Icecast Mountpoint" die Endung .OPUS hinzu (das Hinzufügen einer Endung hilft einigen Listener-Clients zu erkennen, welcher Codec verwendet wird). Lassen Sie den "Icecast User" als Quelle und "Use legacy Icecast protocol" unmarkiert. Klicken Sie auf "Hinzufügen" und dann im übergeordneten Fenster auf "Speichern".

BUTT dialog window showing server settings

Der Testaufbau hier verwendet Nicht-TLS-Kommunikation auf Port 8000. Icecast unterstützt SSL/TLS-Verschlüsselung, aber die Erstellung von Zertifikaten liegt außerhalb des Rahmens dieses Tutorials. Ich empfehle dringend die Verwendung von TLS, wenn du deinen Stream von außerhalb deines privaten, lokalen Netzwerks zugänglich machen willst!

Okay, reden wir über den Ton! Ganz im Sinne von F/OSS werden wir Opus (ein völlig offener, lizenzfreier, äußerst vielseitiger und weithin unterstützter Audiocodec, ebenfalls von Xiph.org entwickelt) für unseren Stream verwenden.

Klicken Sie unter "Einstellungen" auf die Registerkarte "Audio". Stellen Sie "Samplerate" auf 48000Hz (für Opus erforderlich), vergewissern Sie sich, dass Ihr Mikrofon an das "Primäre Audiogerät" angeschlossen ist und stellen Sie "Streaming Codec" auf Opus ein:

BUTT dialog window showing audio settings

Gehen Sie schließlich zurück zur Registerkarte "Main" und klicken Sie auf "Save":

BUTT dialog window showing main settings and to save configuration

Von hier aus können Sie das Fenster "Einstellungen" schließen. Wenn Sie bereit sind, klicken Sie auf die Schaltfläche "Play", um Ihren Stream zu starten. Wenn Sie alles richtig konfiguriert haben, werden Sie in diesem Moment den ersten Radiostream Ihres Servers senden!

BUTT main window actively streaming to Icecast

Super! Loggen Sie sich nun in die Icecast Web UI unter "http://LAN_IP:8000/admin/" ein und geben Sie als Benutzernamen "admin" und Ihr konfiguriertes Icecast Admin Passwort ein:

Browser window asking for username and password to log into Icecast administration section

Wählen Sie "Mountpoint List" auf der Haupt-Admin-Seite:

Browser window showing Icecast administration section

Kopieren Sie den Hyperlink "M3U":

Browser window showing active Icecast mountpoints

Diesen Link, ohne die Erweiterung .M3U, werden Sie zum Abhören mit Ihrem Webbrowser verwenden.

Auswählen eines Listener-Clients

Listener-Clients erfordern im Allgemeinen nur sehr wenig Konfiguration. Dank HTML5-Audio können Sie einfach einen Webbrowser auf Ihre neue Stream-URL verweisen. Hier finden Sie eine Liste der von Browsern unterstützten HTML5-Audiocodierungsformate.

Verwenden Sie einen Webbrowser, fügen Sie die oben kopierte Stream-URL in die Adressleiste ein (entfernen Sie auch hier die Erweiterung .M3U) und drücken Sie die Eingabetaste.

Browser window playing Icecast stream in HTML5 audio player

Hörst du deinen Stream? Das ist Icecast bei der Arbeit.

Zusätzliche Konfiguration

Icecast hat viele erweiterte Funktionen. Einige von ihnen sind:

  • Mehrere gleichzeitige Streams auf einem einzigen Server
  • Ein "Fallback"-System, das Hörer programmatisch zwischen Mountpoints verschieben kann
  • Relay-Funktionalität, die Ihre Streams auf mehrere Server verteilt
  • "URL-Authentifizierung", Authentifizierung von Benutzern gegenüber einem dedizierten Server/Datenbank (v2.5)
  • Eingebaute chroot Fähigkeit
  • Veröffentlichung Ihres Streams im Icecast YP Verzeichnis
  • Shoutcast Kompatibilitätsmodus

Diese und weitere Funktionen sind in der offiziellen Icecast-Dokumentation sehr gut erklärt.

Sie können auch eine Portweiterleitung verwenden, um Ihren Stream von außerhalb Ihres lokalen Netzwerks zu erreichen.

Werbung für deinen Sender

Die Werbung hängt wirklich von der Art des Senders ab, den du erstellst. Wenn es nur zum Spaß ist, reicht es, einem guten Freund davon zu erzählen! Wenn du mehr Aufmerksamkeit willst: Ein Eintrag in das Icecast-Verzeichnis, eine hochwertige Website und eine umfassende Marketingkampagne in den sozialen Medien sind ein sicherer Weg, um online Aufmerksamkeit zu erregen.

Die wichtigste Information, die ich dir geben kann, wenn du deinen ersten Streaming-Radiosender aufbaust, ist: Hab Spaß! Das Ergebnis ist sehr lohnend und voller aufregender Momente, die Sie für immer in Erinnerung behalten werden.