Wie richte ich einen Icecast-Server für die Übertragung von Audio in meinem Netzwerk ein?

63

Das Übertragen der Soundkartenausgabe als Internetradio-Stream ist eine zuverlässige Möglichkeit, Audio in einem Netzwerk zu streamen. Dies kann beispielsweise dazu verwendet werden, Audio in einem WLAN an einen anderen Computer oder ein anderes Gerät zu übertragen, das Internet-Radiostreams wiedergeben kann.

Ich fand jedoch keine einfache Schritt-für-Schritt-Anleitung zum Einrichten.

Takkat
quelle

Antworten:

75

Audioübertragung mit Icecast2


1. Installieren Sie Icecast2 Installieren Sie icecast2


2. Bearbeiten Sie die Icecast2-Konfiguration

Öffnen Sie die Datei /etc/icecast2/icecast.xmlals root in einem Editor. Aus Sicherheitsgründen sollten Sie Passwörter in den folgenden <authentication>Abschnitten einrichten :

<admin-user>admin</admin-user>
<admin-password>hackme</admin-password> 

Wenn Sie das geändert haben <source-password>oder <relay-password>dies auch auf der Quell- oder Relaisseite tun müssen. Das bedeutet, dass Sie den Standardwert beibehalten oder ihn in der Datei ices2.xml ändern (siehe unten). Dasselbe muss in den Ices- oder Darkice-Konfigurationsdateien durchgeführt werden.

Sie müssen auch den Hostnamen definieren, unter dem Ihr Stream erreichbar ist:

<hostname>localhost</hostname>

Lassen Sie es als localhost (Sie müssen dort keine aufgelöste IP angeben), wenn Sie nur in Ihrem lokalen Netzwerk streamen möchten. Der Standardport zum Abhören ist 8000. Ändern Sie ihn nur bei Bedarf.


3. Bearbeiten Sie die Standardeinstellungen

Öffnen Sie die /etc/default/icecast2Datei als root in einem Editor. Die letzte Zeile muss in geändert werden

ENABLE=true

Das ist alles für Icecast2. Natürlich gibt es noch viele weitere Einstellungen, mit denen Sie spielen können. In den Konfigurationsdateien finden Sie Erläuterungen zu den Parametern.

4. Starten / Stoppen Sie Icecast

Der Server wird mit den folgenden Befehlen gestartet und gestoppt:

/etc/init.d/icecast2 start
/etc/init.d/icecast2 stop

Während des Betriebs kann der Icecast-Server von jedem Browser aus verwaltet werden, http://localhost:8000/admin/nachdem Sie Ihre in Schritt 1 definierten Administratoranmeldeinformationen eingegeben haben . Weitere Dokumentation finden Sie auf Icecast.org .

Stream2ip ist ein grafisches Frontend zum schnellen Starten und Stoppen von Streams, bei denen bereits eine grundlegende Einrichtung für Ices2, Ices oder Darkice vorgenommen wurde.


Ices2 Installieren Sie ices2 zum Streamen von OGG Vorbis-Audio von einer lokalen Soundkarte

Informationen zum Einrichten von pulseaudio, um die Aufnahme von der Soundkarte zu ermöglichen, finden Sie im Hinweis zu Darkice weiter unten.

Erstellen Sie Verzeichnisse für Ices2

mkdir /var/log/ices   # in case you need logfiles.  
mkdir /etc/ices2      # for putting ices stuff in.  

Bearbeiten Sie die Ices2-Konfiguration .xml

Ices2 wird mit einer XML-Datei für die Einstellungen ausgeführt. Ausführliche Beispiele für Konfigurationen finden Sie in /usr/share/doc/ices2/examples/. Diese Dateien müssen bearbeitet werden, um Ihren Anforderungen zu entsprechen, und können an eine beliebige Stelle kopiert werden, am besten in Ihr Home-Verzeichnis. Abhängig von der Konfigurationsdatei verwendet Ices2 eine Wiedergabeliste im Ogg Vorbis- Format ( ices-playlist.xml) oder die Ausgabe von Ihrer Soundkarte ( ices-alsa.xml) als Streaming-Quelle für Icecast2.

In diesem Abschnitt müssen <input>Sie möglicherweise das Gerät austauschen, wenn Sie Ihr Soundsystem auf PulseAudio eingestellt haben. Bearbeiten Sie dazu die entsprechende Zeile zu:

<param name="device">pulse</param>

Der Name des Streams für den empfangenden Client wird im folgenden Abschnitt definiert.

<mount>/example1.ogg</mount>

Starten Sie das Streaming

Streams von Ihrer Soundkarte werden gestartet, indem Sie zuerst den Icecast2-Server und dann Ices2 mit den folgenden Befehlen ausführen:

/etc/init.d/icecast2 start
ices2 /home/user/somewhere/ices-pulse.xml # or any other name from .xml file

Empfänger einrichten

Auf der Empfängerseite stellt Ihr Radiosender Folgendes ein : <serverIP>:8000/example1.oggWo <serverIP>ist die IP Ihres Streaming-Servers, gefolgt von dem Port, den Sie in der Datei icecast.xml definiert haben (Standard 8000).

Beenden Sie das Streaming

Streams werden beendet, indem Ices2 beendet und / oder der Icecast2-Server gestoppt wird:

killall ices2
/etc/init.d/icecast2 stop

Ices für die Ausstrahlung von MP3-Wiedergabelisten

Das Senden einer Wiedergabeliste mit MP3-Dateien ist mit Ices2 nicht möglich. Wir müssen IceS installieren , das wir von der Quelle installieren müssen .

Nachdem Sie die Konfigurationsdatei mit Serveradresse, Passwort und Streaming-Eigenschaften eingerichtet haben (ein gut dokumentiertes Beispiel finden Sie in /usr/share/doc/ices/examples), können Sie MP3-Audiodateien von Wiedergabelisten (z. B. im .m3u-Format) über einen Icecast2-Server streamen.

/etc/init.d/icecast2 start
ices -c <path_to_config_file> -F <path_to_playlist>

Für weitere Optionen lesen Sie die Dokumentation in der recht aufwendigen Manpage von man ices.


Darkice Installiere darkice für Live-Streaming

Wir können die Ausgabe der lokalen Soundkarte als OGG Vorbis oder als MP3-Stream mit Darkice streamen . Um das Streaming der lokalen Soundkarte zu ermöglichen, müssen wir möglicherweise zuerst das Aufnahmegerät für Darkice in pulseaudio definieren. Dies kann mit Pavucontrol erfolgen Installieren Sie pavucontrol . In der Aufnahme wählen Sie die Registerkarte Monitor of <your soundcard>für die "ALSA - Plug-in [darkice]" .

Die Konfigurationsdatei (gut dokumentiertes Beispiel in /usr/share/doc/darkice/examples) muss an den Icecast-Server und die lokale Soundumgebung angepasst werden:

[general]
duration        = 0      # duration in s, 0 forever
bufferSecs      = 1      # buffer, in seconds
reconnect       = yes    # reconnect if disconnected

[input]
device          = default # or `pulse' for Pulseaudio
sampleRate      = 44100   # sample rate 11025, 22050 or 44100
bitsPerSample   = 16      # bits
channel         = 2       # 2 = stereo

[icecast2-0]
bitrateMode     = vbr       # variable bit rate (`cbr' constant, `abr' average)
quality         = 1.0       # 1.0 is best quality
format          = mp3       # format. Choose `vorbis' for OGG Vorbis
bitrate         = 256       # bitrate
server          = localhost # or IP
port            = 8000      # port for IceCast2 access
password        = hackme    # source password to the IceCast2 server
mountPoint      = mystream.mp3  # mount point on the IceCast2 server .mp3 or .ogg
name            = mystream

Nach dem Speichern dieser Konfiguration (z. B. in ~/music/darkice.cfg) führen wir zuerst den Icecast-Server aus und können dann die pulseaudio-Ausgabe von der lokalen Soundkarte streamen, indem wir Folgendes aufrufen:

/etc/init.d/icecast2 start
darkice -c ~/music/darkice.cfg

Auf dem Receiver stellen wir uns zum http://<localhost>:8000/mystream.mp3Abhören ein. <localhost>ist die IP des Icecast Servers.

Takkat
quelle
3
Muss dies nicht eine über das Netzwerk erreichbare IP-Adresse oder Schnittstelle für andere Geräte sein, um eine Verbindung herstellen zu können?
Oli
Beziehen sich der Admin-Benutzer und das Admin-Passwort auf den Maschinenbenutzer / das Maschinenpasswort?
Charbel
1
@Charbel: nein, sie sind nicht verwandt. Wählen Sie ein beliebiges Passwort. Sie benötigen sie zB, um auf die Weboberfläche von icecast admin zuzugreifen ( localhost: 8000 / admin ).
Takkat
Dies ist eine großartige Antwort, danke. In vielen Tutorials sehe ich, wie Icecast und MPD zusammen erwähnt werden und zusammenarbeiten. Ich verstehe die Beziehung zwischen icecast und mpd nicht - könnten Sie das klären? Welche Rolle spielt jeder?
CoolUserName
1
Beachten Sie, dass die Icecast2-Passwörter als Klartext gespeichert (und in Darkice verwendet) werden. Verwenden Sie Ihre sehr geheimen Passwörter hier nicht erneut.
Elomage