Raspberry PI – Erste Schritte als Webradio

Nachdem die Funksteckdosen gesteuert werden konnten, wurde nun der MPD installiert, um den Raspberry auch als Webradio einsetzen zu können.

Auf die Idee kam ich hauptsächlich, um meinen alten Heimatsender N-Joy hören zu können.

Also los ging es:

Mit apt-get install mpd mpc wurden der Music Player Daemon und Music Player Command installiert.

Die Fehlermeldung:
[….] Starting Music Player Daemon: mpdlisten: bind to ‚[::1]:6600‘ failed: Failed to create socket: Address family not supported by protocol (continuing anyway, because binding to ‚127.0.0.1:6600‘ succeeded)
Failed to load database: Failed to open database file „/var/lib/mpd/tag_cache“: No such file or directory
ignorieren. Diese kommt unter anderem, weil kein IPv6 aktiviert ist.

Nun noch alles einrichten:
Dazu als erstes die Parameter der /etc/mpd.conf anpassen: sudo nano /etc/mpd.conf

  1. log_file[…] auskomentieren (am Anfang # einfügen)
  2. bind_to_address „localhost“ auskommentieren und bind_to_address „127.0.0.1“ einfügen
  3. Unter: MPD Internal Buffering sind folgende beiden Parameter auskommentiert, hier das # entfernen:
    • audio_buffer_size
    • buffer_before_play

Fertig. Nun müssen wir mit sudo /etc/init.d/mpd restart den Prozess neustarten.

Nun legen wir eine Playlist an:

Hinweis: Wenn man die m3u URLs der Radiosender hat, einfach die URL mit dem Notepad++ öffnen und dann erhaltet ihr die eigentliche Streaming-URL.

Nun mit dem nano oder vi: sudo vi /var/lib/mpd/playlists/radiosender.m3u eine Playlist anlegen und dort die gewünschten Sender einfügen. Bei mir sieht die Liste folgendermaßen aus:

http://gffstream.ic.llnwd.net/stream/gffstream_w10a
http://gffstream.ic.llnwd.net/stream/gffstream_w12a
http://mp3.webradio.antenne.de:80
http://mp3.webradio.rockantenne.de:80
http://swr.ic.llnwd.net/stream/swr_mp3_m_swr3a
http://ndrstream.ic.llnwd.net/stream/ndrstream_n-joy_hi_mp3

Also bei mir folgende Sender: Bayern 1, Bayern 3, Antenne Bayern, Rock Antenne, SWR 3, N-Joy

Nun kann man mit mpc load radiosender die Playlist laden. Nun kommt der entscheidende Moment: mpc play 1 spielt den ersten Titel. Nun solltet ihr am Audioausgang des Raspberry PI was hören.

Nun habe ich noch ein minimales Webinterface gefunden. Da mein Apache2 und PHP schon laufen, konnte ich das MPDWebinterface sehr einfach aktivieren:

  1. sudo mkdir /var/www/radio
  2. sudo chown pi /var/www/radio
  3. cd /var/www/radio
  4. wget https://github.com/sn0opy/MPD-Webinterface/archive/master.zip
  5. unzip master.zip
  6. cd MPD-Webinterface-master
  7. mv * ../
  8. cd ..
  9. rm MPD-Webinterface-master

Fertig. Nun aufrufen: http://raspi/radio auf und können das Radio steuern.

38 Gedanken zu „Raspberry PI – Erste Schritte als Webradio“

  1. Hallo Felix,

    folgende Info, evtl kannst du das in deiner sonst super Anleitung einpflegen:

    Dein Befehl nano /etc.mpd.conf
    ist zu ersetzen mit sudo nano /etc/mpd.conf

    Weiterhin schreibst du
    Unter: MPD Internal Bufferingfolgende beiden Parameter auskommentieren
    • audio_buffer_size
    • buffer_before_play
    Die sind beide bereits auskommentiert…
    Aber du meinst wohl den # davor weg zu machen.

    Ich musste bei meinem noch den Buffer erhöhen.
    Aktuell 4096

    Ich habe Raspby Rev.1

    Antworten
  2. Hi

    vielen Dank für diese Anleitung.
    Funktioniert gut mit den von dir vorgegebenen Sendern, doch leider bekomme ich z.B. 1LIVE digi/FFN nicht ans laufen.
    Ich habe diverse Links für diesen Stream gefunden, aber ich bekomme immer eine dieser Fehlermeldungen:
    – error parsing song numbers from: …
    – ERROR: problems decoding „http://www.wdr.de/wdrlive/media/einslivedigi.m3u“
    Wo hast du deine Links gefunden?

    VG

    Antworten
  3. Hi,

    danke für deine Anleitung. Du hast bei den Schritten fürs Webinterface vergessen zu schreiben, dass der Inhalt des Ordners „MPD-Webinterface-master“ in /var/www/radio verschoben werden muss. Man befindet sich normalerweise in /home/pi und nach deiner Anleitung würde man alle Dateien in ../ verschieben, also in /home.

    Antworten
  4. Hallo, ich habe alles so gemacht wie beschrieben, hat auch gut funktioniert, bloß habe ich jetzt ausversehn auf Clear Playlist geklickt und jetzt hab ich keine Playlist mehr! In der Datei mit der Playlist ist aber noch alles wie davor.Ich habe das vom Ordner „MPD-Webinterface“ nocheinmal neu in /var/www/radio reinkopiert, aber die Playlist ist immer noch nicht wieder da 🙁 Kannst du mir Helfen?
    MfG David

    Antworten
    • hast du mal versucht den Dienst oder Raspberry neuzustarten?
      Ansonsten würde ich versuchen die playlist noch mal zu laden mit:
      mpc load PLAYLISTNAME
      PLAYLISTNAME musst du durch deinen (Datei)-Namen ersetzen.

      Viel Erfolg und ich bin über deine Rückmeldung gespannt.

  5. Hallo!
    Danke für die Super-Anleitung. Ich habe noch nicht viel Ahnung von Raspi und Linux und habe es mit dieser Anleitung innerhalb 30 Minuten geschafft, auf meinem Raspi das Webradio zum Laufen zubringen. Der Raspi macht bei mir smb-Server und Bittorent-Sync-Server und jetzt auch noch Webradio!

    Drei kleine Problemchen hatte ich dabei:
    1. „sudo mkdir /var/www/radio“ ging bei mir nicht, musste ich aufspalten auf „sudo mkdir /var/www“ und danach „sudo mkdir /var/www/radio“ –> vermutlich, weil ich zu diesem Zeitpunkt noch kein PHP installiert hatte.

    2. Entgegen der Beschreibung kam nach „mpc load radiosender“ noch kein Mucks aus dem Raspi, erst nachdem ich über die Weboberfläche einen Sender angeklickt hatte.

    3. „rm MPD-Webinterface-master“ kam mit Fehlermeldung
    rm: cannot remove `MPD-Webinterface-master‘: Is a directory. Ich habs dann mit dem GNOME-Commander gelöscht.

    Danke nochmal!
    Georg

    Antworten
  6. Hallo!
    Danke für die tolle Anleitung.
    Soweit scheint soweit alles zu laufen.
    Jedoch kommt der Ton nur ganz leise über HDMI. Wie kann ich ihn dazu bewegen über die Klinkenbuchse etwas abzuspielen?
    Simon

    Antworten
  7. Super Sache das mit dem Pi als Internetradio.
    Gibt es denn mit dem MPD die Möglichkeit sofort bei Systemstart eine Playlist Datei abspielen zu lassen, also ohne starten über die App o.ä.?

    Danke

    Antworten
    • Hallo Bob,
      Du kannst in die /etc/rc.lokal vor dem exit 0 folgendes einfügen. Dann sollte immer mit dem ersten Titel der Playlist gestartet werden:
      mpc play 1
      Viel Erfolg.

  8. Hi, super Anleitung. Funktioniert auch alles soweit super!

    Zwei Fragen habe ich noch:
    Wenn ich nun später einen weiteren Sender einfügen möchte, bin ich so vorgegangen:
    1. nano /var/lib/mpd/playlists/radiosender.m3u
    2. den weiteren Radiosender hinzugefügt
    3. Speichern
    4. mpc load radiosender (!?)

    Danach habe ich auf der Website die alte List PLUS die neue, also die ersten drei Einträge und dann nochmal die drei mit dem neuen Sender.

    Wie kann ich die Playlist „löschen“ und dann wieder neuladen?

    Und: Gibt es eine Möglichkeit, der crontab das Radio immer um z.B. 17 Uhr abzuschalten? Ich nutze das Radio im Büro und möchte, dass es immer um 17 Uhr z.B. abschaltet.

    Gruß und Danke,
    Christian

    Antworten
  9. Hi,

    danke dir für die super Anleitung.
    Mit dem Webinterface ist der Radio der Hammer.

    Deine Beschreibung ist echt einfach zu verstehen.

    Beste Grüße
    Manfred

    Antworten
  10. Hallo,

    Irgendwie schaffe ich es nicht, den Radiostreams klingende Namen zu vergeben. Egal wie ich meine .m3u Datei aufbaue, es wird immer irgendein Streamname angezeigt. Ich habe komplett die gleiche m3u Datei mit Mopidy versucht und da funktioniert es einwandfrei. habt ihr eine Idee?

    #EXTM3U
    #EXTINF:0,88.6 – Der Musiksender
    http://ber.radiostream.de:36795
    #EXTINF:0,Kronehit
    http://onair.krone.at/kronehit.mp3
    #EXTINF:0,Hitradio OE3
    http://mp3stream7.apasf.apa.at:8000

    Antworten
  11. Hi, bin grade aus etwas anderem Kontext über die anleitung gestolpert.
    Zum thema Webinterface hätte ich noch einen Tip. YMPD, macht einen eigenen Webserver auf (python basis meine ich). ist recht unkompliziert und spart das ganze webserver einrichten etc. Ausserdem benötigt es weit weniger resourcen als ein apache oder lighttpd.

    gruß
    m0e

    Antworten
  12. Hallo!
    Ich habe das mit dem Webradio etc. alles hinbekommen. Danke für die gute Anleitung! Probleme sind mir nur bei z.B. N-Joy oder NDR2 aufgefallen, die werden bei mir mit MPC nicht wiedergegeben. Ich habe da schon 2 verschiedene Streamadressen im Internet gefunden und probiert – jedoch ergebnislos. Könntest du bitte deine AKTUELL funktionierende N-Joy-Adresse angeben? Vlt hat die sich ja mit der Zeit geändert. Über mplayer bekomme ich die beiden Sender übrigens auch zum laufen…

    Antworten
  13. Gut gemachte Seite, danke!
    Eine Frage habe ich aber doch:
    Ich habe mir mit Qt5 eine GUI gebaut, mit 10 Stationstasten, funktioniert auch gut, mit dem Raspi-Touchscreen (800×480) eine tolle Sache. Eine Funkfernsteuerung baue ich gerade (Arduino), jetzt fehlt mir nur noch eins: eine Möglichkeit einen Sender auf Knopfdruck auch abzuspeichern. Hast du eine Idee, wie ich das lösen könnte?

    Grüße

    Sigi

    Antworten
  14. Ich bins nochmal, geht ganz einfach:

    Man kann in /etc/mpd.conf doch tatsächlich ALSA als Audio-Output *und* HTTPD (Streaming über einen http-Daemon) aktivieren. Somit kann ich in meiner GUI einfach lokal (127.0.0.1:8000) auf den Stream zugreifen und den abspeichern, wenn die Aufnahmetaste gedrückt wird, ALSA spielt Audio ganz normal weiter ab. Öffne ich den Stream zusätzlich mit VLC, höre ich den Sender 2fach, mit einem kleinen Zeitversatz. Ein mächtiges kleines Ding, dieser mpd, coole Sache!

    # An example of a httpd output (built-in HTTP streaming server):
    #
    audio_output {
    type „httpd“
    name „My HTTP Stream“
    encoder „lame“ # optional, vorbis or lame
    port „8000“
    # bind_to_address „127.0.0.1“ # optional, IPv4 or IPv6
    # quality „5.0“ # do not define if bitrate is defined
    bitrate „128“ # do not define if quality is defined
    format „44100:16:1“
    max_clients „0“ # optional 0=no limit
    }

    Lame muss natürlich installiert sein.
    Folgende Zeile sollte auskommentiert sein:

    # For network
    #bind_to_address „localhost“

    Antworten

Schreibe einen Kommentar zu Rebel Antworten abbrechen

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.