4. Dezember 2012

thumbnail

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.


35 Comments »

  1. Rebel sagt:

    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

  2. Birk sagt:

    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

  3. Alex sagt:

    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.

  4. Kurt sagt:

    Super Anleitung, funktioniert Spitze! Danke!

  5. Lucas sagt:

    Hallo Felix,

    Deine Anleitung und der Kommentatoren ist super und ich konnte alles ohne Probleme installieren.

    Ich habe statt apache2 „lighttpd“ (braucht weniger Resourcen) installiert. Um das Web-Interface zu installieren musste ich PHP installieren. Hier ein Link wie das unter lighttpd geht:

    http://www.penguintutor.com/linux/light-webserver

    Abschnitt „Install PHP“.

    Gruss Lucas

  6. David sagt:

    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

    • Felix Felix sagt:

      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.

  7. Georg sagt:

    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

  8. Simon sagt:

    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

  9. Bob sagt:

    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

    • Felix Felix sagt:

      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.

  10. Alex sagt:

    Hab das gerade auf github entdeckt.

    https://github.com/matthiasleitner/piRadio?source=c

    funktioniert auch sehr gut

  11. Holger sagt:

    Hi magst du mir sagen wie die URL aussehen mag für den Radiosender „Radio Ostfreisland“

    Danke Holger

  12. Christian sagt:

    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

  13. Manfred sagt:

    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

  14. Roman sagt:

    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

  15. Bibifrine sagt:

    Player läuft mit den sendern von oben einwandfrei. Danke dafür. Das mit dem ausfinden der Stream Afdresse hab ich noch nicht verstanden.
    würde gerne von diesem Radio Snder :http://radiobrsieg.radio.de/
    die Webradio Adresse rausfinden.

  16. m0e sagt:

    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

  17. lothar sagt:

    Ich habe alles wie beschrieben gemacht.Wenn ich mpc load radiosender z.B. mache, dann kommt timeout while connecting. Wo ist der Fehler?

  18. Christoph sagt:

    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…

  19. SIgi Gassner sagt:

    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

  20. SIgi Gassner sagt:

    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“

  21. mediastudio sagt:

    Hallo, kann mir jemand sagen wie der MPD Client streaming von .m3u abspielt.
    z.B
    http://streams.br.de/bayern3_2.m3u

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

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