Raspberry Pi: Icecast2 Streaming Audio Server installieren

22 Jan
22. Januar 2013

Icecast2 ist ein moderner Audio Streaming Server bzw. Broadcast Server, mit dem man sein eigenes Webradio betreiben oder mit Freunden (natürlich gema-freie) Playlists teilen kann. Wenn dieser Server im kleinen Rahmen 24/7 laufen soll, bietet es sich an, diesen auf Grund des geringen Stromverbrauches, auf dem Raspberry Pi unterzubringen. Im Folgenden erkläre ich, wie man sich Icecast2 und mpd zum dauerhaften Abspielen von Playlisten auf den Raspberry Pi installiert.

Voraussetzung: Raspbian oder vergleichbare Distribution installiert

Step 1

Zuerst installieren wir die Icecast2 Anwendung und mpc, wie auch mpd mittels APT auf den Raspberry Pi. Während der Installation hat man die Möglichkeit Icecast2 zu konfigurieren, welche wir auch wahrnehmen und mit Yes bestätigen. Zuerst muss der Hostname des Raspberry Pis angegeben werden, welchen wir mit der IP Adresse des Raspberry Pis füllen, und darauffolgend drei Passwörter, welche wir später noch benötigen. Mit dem angegebenen Passwort und dem Nutzernamen admin kann man sich auch in das Webinterface von Icecast2 anmelden, welches unter http://IP:8000/ (IP ist durch IP des Raspberry Pis zu ersetzten) erreichbar ist.

sudo apt-get update && sudo apt-get install mpc mpd icecast2

Step 2

Während der Installation erhielten wir eine Warnung von mpd, welche aussagt, dass es fehlschlug, den Port 6600 zu besetzen, da dies im IPv6 Bereich geschehen soll, welcher jedoch bei Raspbian standartmäßig deaktiviert ist. Mit folgendem Kommando können wir das Kernel Modul laden und somit den Fehler beseitigen.

sudo modprobe ipv6

Step 3

Nun konfigurieren wir mpd. Diese Anwendung wird später Playlists auf dem Raspberry Pi abspielen. Hierzu fügen wir den unten angegebenen Abschnitt der Datei /etc/mpd.conf hinzu. In name und description können wir einen Titel bzw. eine Beschreibung für den Stream eintragen. Die Parameter host und port bestimmen, an welche Adresse mpd senden soll (Port von Icecast2 ist 8000). Unter password gegeben wir das zuvor für Icecast2 definierte Stream-Passwort ein. Unter bitrate kann die Bitrate des Streams in kbit definiert werden. 192kbit ist hier empfehlenswert. Unter mount können wir, mir vorangestelltem Schrägstrich, den Namen der Datei des Streams definieren. Alle anderen Einstellungen können so bleiben wie sie sind. Zum Ändern benutzen wir einen Editor unserer Wahl. Ich bevorzuge hier nano. In diesem kann man mittels STRG + X, Y und Enter speichern.

sudo nano /etc/mpd.conf

Step 3

Nachdem wir nun alle Einstellungen an mpd fertiggestellt haben, starten wir den Dienst neu.

sudo /etc/init.d/mpd restart

Step 4

Die Musikdateien zum Streamen sind unter /var/lib/mpd/music/ und Playlisten unter /var/lib/mpd/playlists/ gespeichert. Jedoch hat der Benutzer pi nicht die nötigen Rechte um darauf schreiben und lesen zu können. Wir fügen den Benutzer pi nun zu der Gruppe audio hinzu uns geben dieser entsprechende Rechte.

sudo usermod -a pi -G audio
sudo chmod g+w /var/lib/mpd/music/ /var/lib/mpd/playlists/
sudo chgrp audio /var/lib/mpd/music/ /var/lib/mpd/playlists/

Step 5

Nun befüllen wir den Ordner /var/lib/mpd/music/ mit unserer Musik. Daraufhin sagen wir mpd, es sollte die Musikliste aktualisieren und alle Titel zur aktuellen Playlist hinzufügen.

mpc update
mpc ls | mpc add
mpc playlist

Step 6 (optional)

Möchte man die Musik in einer Dauerschleife abspielen, was zu empfehlen ist, damit der Stream dauerhaft läuft, kann man dies mit folgendem Kommando einstellen.

mpc repeat on

Step 7

Jetzt starten wir die Wiedergabe von mpc, mittels folgendem Kommando

mpc play

Fertig! Sieht man nun unter http://IP:8000/ (Ip ist durch IP des Raspberry Pis zu ersetzten), so findet man einen Stream, der die auf dem Raspberry Pi befindliche Musik abspielt. Natürlich kann man auch andere Programme als mpd zum Befüllen des Streams verwenden, wie z.B. Virtual DJ. Als Server ist hierbei die IP-Adresse des Raspberry Pis und der Port 8000 anzugeben.

Zugriff außerhalb des eigenen Netzwerks
Portfreigabe im Router

Soll der soeben installierte Dienst auch außerhalb des eigenen Netzwerkes verfügbar sein, so müssen folgende Ports im Router freigegeben werden. Wie man freigibt, beschrieb ich in dem Artikel Portforwarding bei Fritz!Box und Speedport.

8000
Dir hat der Artikel gefallen?
Teile ihn mit deinen Freunden!
24 Antworten
  1. Andrey says:

    Danke vielmal!

    Antworten
  2. Kagu says:

    Heyho…

    kann ich dem Stream sagen, dass er von einem anderen medium abspielen soll wie bspw. meiner Festplatte, welche für Samba angeschlossen ist?

    Und wenn ja – kann ich ihn auch Ordner rekursiv einlesen lassen?

    Antworten
  3. David says:

    Vielen Dank für deine tollen Anleitungen Jan.

    Ich scheitere gerade daran das pyload bei mir bereits den Port 8000 besetzt, auch wenn ich pyload beende und mpd neustarte. Eine Änderung des Ports in der mpd.conf und/oder auch icecast.xml brachte mir auch keinen Erfolg. Weder über Port 8000, noch über einen alternativen Port gelang mir das öffnen des Web-Interface. Auch das öffnen des Streams mit VLC funktioniert nicht. Bei der Eingabe „mpc play“ zeigt mir MPD aber an das Musik gespielt wird.

    Weißt du vielleicht weiter? Vielen Dank!

    Antworten
    • Jan Karres says:

      Wenn du den Port vor dem Start der Anwendung geändert hast sollte es schon einwandfrei funktionieren. Ansonsten kannst du dir auch einmal die Logfiles unter /var/log ansehen.

      Antworten
  4. Kay says:

    Du bist einfach der Hammer (und Dein Blog auch).
    Ich hab (vor mehreren Monaten) eine Ewigkeit gebraucht, die Parameter für Shutdown unter Debian rauszubekommen (was eigentlich auch traurig ist, aber naja…).
    Auf Deinem Blog habe ich’s in 5 Sekunden gefunden.

    Auch das Aufsetzen von Icecast war, dank Dir, kein Problem.
    Bitte mehr Anleitungen dieser Art.

    Und vielen, vielen Dank.

    Antworten
  5. Robert says:

    Besteht die Möglichkeit mehrere Playlists anzulegen???

    Antworten
  6. Olaf says:

    Könnte ich damit auch einen in Echtzeit generierten Audiostream, z.B. aus Max MAP oder PD auf meine eigene Radiostation senden, also nicht eine Playlist oder vorhandenes mp3?

    Antworten
  7. Jano says:

    Leider werden im Stream Album Cover oder ein StreamLogo als Cover nicht angezeigt.
    Wie kann man dieses bewerkstelligen ?

    Antworten
    • Jan Karres says:

      Soweit ich auf die Schnelle herausfinden konnte ist das mit dieser Art von Stream nicht möglich.

      Antworten
      • Jano says:

        Gibt es alternativen für meinen Raspberry PI2 , wo ich dieses mit bewerkstelligen könnte? IDTAG2 Cover,Album,Interpret,Jahr,Titel ?

        Das könenn ja viele WebRadios anzeigen! Wäre echt toll, wenn das auch bei mir ginge.

        Wenn kein Cover im MP3 gespeichert ist, sollte er das Senderlogo, was man vordefinieren kann dafür darstellen. 😉

        Antworten
  8. Holger Busch says:

    Hey, welches Betriebssystem sollte ich auf dem PI installieren? Raspian?

    Grüße aus Soest

    Antworten
  9. Jonas says:

    Icecast läuft so ja über Port 8000 und ohne SSL. Wie aktiviert man das richtig? Ich habe nämlich gleichzeitig schon meinen normalen Apache-Server laufen, der auf 443 lauscht…

    Antworten
  10. Mubin says:

    Hey,
    Kann man nicht nur gespericherte Musik sondern den mit USB verbundene Mikrofon streamen? Wie?

    Antworten

Trackbacks & Pingbacks

  1. […] Radiostream mit IceCast und Raspberry Pi – Qualitätseinstellungen bei Spotify – Freier Empfang von Eurosport HD via DVB-T2 zu […]

  2. [Experiment] Eigener Radio Stream: Icecast & MPD auf dem Rasperry Pi unter Raspbmc | geeKing sagt:

    […] noch Shoutcast und Icecast zum vorschein. Durch Icecast stolperte ich nun gerade noch über eine Anleitung von Jan Karres meinem Lieblings-Raspberry Blogger, nach dessen tollen Anleitungen ich auch erfolgreich […]

Antworten

Kommentar verfassen

JanKarres.de © 2007-2018