Raspberry Pi: Icecast2 Streaming Audio Server installieren
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
audio_output { type "shout" name "My Rspberry Pi Stream" description "This is a Icecast2 stream on my Raspberry Pi" host "localhost" port "8000" mount "/mpd" password "" bitrate "128" format "44100:16:2" encoding "mp3" }
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.
27 Kommentare. Hinterlasse eine Antwort
Danke vielmal!
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?
Ich habe mir Icecast2 jetzt zum Testen gerade nicht aufgesetzt, aber ich denke, dass du dies in der /etc/mpd.conf einstellen können solltest.
Hallo,
ich würde mal auf folgender Webseite schauen:
http://www.musicpd.org/doc/user/config.html#config_music_directory
Ich überlege auch gerade mir einen Raspberry Pi 2, Banana Pi oder ähnliches Gerät für diesen Zweck zu kaufen.
Gruß
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!
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.
[…] 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 […]
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.
Ich danke fürs Lesen und die netten Worte 🙂
Besteht die Möglichkeit mehrere Playlists anzulegen???
Ich denke ja. Du müsstest alle Playlists einfach unter /var/lib/mpd/playlists/ ablegen.
ja dieser Pfad ist mir auch bereits aufgefallen…
Wenn ich mehrere Playlists habe wie aktiviere ich dann zum Beispiel „Playlist A“ ?
Ich denke das musst du in der /etc/mpd.conf konfigurieren, habe gerade aber keine Installation vorliegen.
Hallo,
ich würde mal auf folgender Webseite schauen:
https://wiki.ubuntuusers.de/MPD/Server#Verzeichnisse
Gruß
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?
Logo. mpd ist nur ein Platzhalter.
Leider werden im Stream Album Cover oder ein StreamLogo als Cover nicht angezeigt.
Wie kann man dieses bewerkstelligen ?
Soweit ich auf die Schnelle herausfinden konnte ist das mit dieser Art von Stream nicht möglich.
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. 😉
Hey, welches Betriebssystem sollte ich auf dem PI installieren? Raspian?
Grüße aus Soest
„Voraussetzung: Raspbian oder vergleichbare Distribution installiert“
Steht oben drüber 😀
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…
[…] Radiostream mit IceCast und Raspberry Pi – Qualitätseinstellungen bei Spotify – Freier Empfang von Eurosport HD via DVB-T2 zu […]
Hey,
Kann man nicht nur gespericherte Musik sondern den mit USB verbundene Mikrofon streamen? Wie?
[…] lediglich eine Software fürs Webradio-Streaming. Es gibt mit Icecast2 sogar eine Server-Software für den Raspberry Pi, sodass man den als Relais einsetzen könnte. Für den Machbarkeitsnachweis habe ich es aber erst […]
Hallo, ist die Anleitung noch aktuell? Bekomme nämlich im Schritt mpc update eine Fehlermeldung:“mpd error: No database“. Kann der wer helfen?
Hallo, als rel. Neuling läuft auf meinem Raspi 3 ein squeezeboxserver, der mehrere Boxen gut versorgt. Ich möchte nun auf einem rel. einfachen Internetradio (Bausatz von ELV) von einer http im eigenem LAN einen Sender aus dem Netz abspielen.
Diese „Übersetzung“ ist notwendig, da die meisten Streams mit dem ELV-Radio nicht mehr empfangen werden können. Es funktionieren nur noch http und nicht mehr https.
Wie sollte ich das am einfachsten realisieren?