RaspberryPi als Internetradio

RaspberryPi Internetradio

Mitwirkende: marco
Beginn: 2013-04-04
Fertigstellung: 2013-04-04
Status: fertig

Ziel dieses Projektes ist, auf dem RaspberryPi ein Internetradio zu installieren. Bedienbar soll das Ganze dann über eine Weboberfläche sein, also über den Browser vom PC, Tablett oder Handy. Somit werden keine Bedienteile am Raspberry selbst benötigt.

Ich gehe jetzt in der folgenden Beschreibung davon aus, dass das System mit dem Raspbian “wheezy”-Image (hier 2013-02-09-wheezy-raspbian.zip) von RaspberryPi.org grundinstalliert ist, im Netzwerk hängt und per ssh erreichbar ist.
Optional zu ssh kann natürlich ein Monitor und eine Tastatur angeschlossen werden.

Anmerkung:
Im aktuellen Raspbian „wheezy“-Image ist der Benutzer pi mit dem Passwort raspberry vorgeleistet.


Schritt 1: Installation des Webservers

Da die Bedienung über eine Weboberfläche laufen soll, braucht man natürlich einen Webserver.
Dieser sollte möglichst sparsam mit den Resourcen umgehen. Deshalb kommt lighttpd zum Einsatz.
Zusätzlich muss, falls noch nicht vorhanden, php5 installiert werden.

  • Gruppe www-data erstellen
pi@raspberrypi ~ $ sudo groupadd www-data
  • Pakete von lighttpd installieren
pi@raspberrypi ~ $ sudo apt-get install lighttpd
  • PHP5 Pakete installieren
pi@raspberrypi ~ $ sudo apt-get install php5-cgi
  • Nach der Installation das Modul fastcgi aktivieren
pi@raspberrypi ~ $ sudo lighty-enable-mod fastcgi
Enabling fastcgi: ok
Run /etc/init.d/lighttpd force-reload to enable changes
  • Jetzt wird die lighttpd.conf angepasst.

Dazu wird diese mit einem Editor geöffnet.

sudo nano /etc/lighttpd/lighttpd.conf

und folgendes ans Ende der Datei eingefügt:

fastcgi.server = ( ".php" => (( "bin-path" => "/usr/bin/php5-cgi", "socket" => "/tmp/php.socket" )))

Speichern nicht vergessen! Im Falle des hier benutzten Editors nano geht das mit der Tastenkombination Strg+o, ENTER und Strg+x.

Nun wird der Benutzer pi in die Gruppe www-data hinzugefügt

pi@raspberrypi ~ $ sudo adduser pi www-data
Füge Benutzer »pi« der Gruppe »www-data« hinzu ...
Benutzer pi wird zur Gruppe www-data hinzugefügt.
Fertig.

und es werden noch ein paar Rechte angepasst.

pi@raspberrypi ~ $ sudo chown -R www-data:www-data /var/www
pi@raspberrypi ~ $ sudo chmod -R 775 /var/www

Jetzt noch ein Neustart des Webservers:

pi@raspberrypi ~ $ sudo /etc/init.d/lighttpd force-reload
[ ok ] Reloading web server configuration: lighttpd.

und dann der Test:

im Browser die IP-Adresse oder den Hostname bom RaspberryPi eingeben und es sollte ungefähr so aussehen:


Schritt 2: Der eigentliche Player

Nachdem der Webserver jetzt läuft, gehts an das Internetradio selbst.
Für das Raspberry-Internetradio installiert man Music Player Daemon (mpd) und Music Player Command (mpc).

pi@raspberrypi ~ $ sudo apt-get install mpd mpc

Nun müssen in der Datei /etc/mpd.conf einige Einstellungen angepasst werden. Dazu wird diese mit

pi@raspberrypi ~ $ sudo nano /etc/mpd.conf

geöffnet und folgende Änderungen durchgeführt.

.
.
.
# The special value "syslog" makes MPD use the local syslog daemon. This
# setting defaults to logging to syslog, otherwise logging is disabled.
#
# log_file        "/var/log/mpd/mpd.log"                      <---- auskommentieren
#
..
.
#
# For network
bind_to_address         "127.0.0.1"                       <---- ändern in 127.0.0.1
#
..
.
# MPD Internal Buffering ######################################################
#
# This setting adjusts the size of internal decoded audio buffering. Changing
# this may have undesired effects. Don't change this if you don't know what you
# are doing.
#
audio_buffer_size              "2048"            <---- Kommmentarzeiche # entfernen
#
# This setting controls the percentage of the buffer which is filled before
# beginning to play. Increasing this reduces the chance of audio file skipping,
# at the cost of increased time prior to audio playback.
#
buffer_before_play             "10%"             <---- Kommmentarzeiche # entfernen
#
###############################################################################
..
.

Speichern nicht vergessen! Im Falle des hier benutzten Editors nano geht das mit der Tastenkombination Strg+o, ENTER und Strg+x.
Nach diesen Änderungen muss der mpd-Prozess neu gestartet werden:

pi@raspberrypi ~ $ sudo /etc/init.d/mpd restart
[ ok ] Stopping Music Player Daemon: mpd.
[....] Starting Music Player Daemon: mpdlisten: bind to '127.0.0.1:6600' succeeded
. ok 

Schritt 3: Die Playlist

Der Player läuft jetzt quasi, aber die Playlist mit den einzelnen Radiostreams fehlt noch. Diese kommt in das Verzeichnis /var/lib/mpd/playlists .

Dazu wird mit dem Editor eine Textdatei angelegt, die die Adressen zu den einzelnen Radiostationen enthält.
Der Dateiname muss mit .m3u enden.

pi@raspberrypi ~ $ sudo nano /var/lib/mpd/playlists/internetradio.m3u

Hier ein paar Beispielstreams:

http://stream.laut.fm/best_of_80s      
http://stream.laut.fm/radiofunclub80   
http://stream.laut.fm/maximix
http://stream.laut.fm/eurosmoothjazz       
http://stream.laut.fm/jahfari              
http://stream.laut.fm/just80s
http://stream.laut.fm/rockin_c              

Speichern nicht vergessen! Im Falle des hier benutzten Editors nano geht das mit der Tastenkombination Strg+o, ENTER und Strg+x.
Die eben erstellte Playlist wird mit folgendem Kommando geladen:

pi@raspberrypi ~ $ mpc load internetradio
loading: internetradio

Mit dem Kommando

pi@raspberrypi ~ $ mpc play 3

startet man z.B. den 3. Stream (Titel) der Playlist
Mit dem Kommando

pi@raspberrypi ~ $ mpc stop

stoppt man die Wiedergabe.
Soviel muss zum Test reichen, da das Ziel ja die Steuerung über ein Webinterface ist.


Schritt 4: Das Webinterface

Nach etwas Suchen fand sich dieses Projekt https://github.com/sn0opy/MPD-Webinterface
Der Download und die Installation ist problemlos, solange die richtige Reihenfolge eingehalten wird.

  • Verzeichnis für die Webseite anlegen
sudo mkdir /var/www/internetradio
  • Das Verzeichnis dem Benutzer pi zuweisen
sudo chown pi /var/www/internetradio
  • In das Webverzeichnis wechseln
cd /var/www/internetradio
  • Download der gepackten Dateien
wget https://github.com/sn0opy/MPD-Webinterface/archive/master.zip
  • Entpacken der Dateien im aktuellen Verzeichnis
unzip master.zip
  • In das entpackte Verzeichnis wechseln
cd MPD-Webinterface-master
  • Den Inhalt in /var/www/internetradio verschieben
mv * ../
  • Installationsverzeichnis verlassen
cd ..
  • und anschließend löschen
rmdir MPD-Webinterface-master

Schritt 5: Der ultimative Test

Wenn alles richtig installiert wurde, ist die Weboberfläche unter

http://<IP-Adresse>/internetradio

erreichbar und sieht so aus:

projekte/internetradio.txt · Zuletzt geändert: 2014/02/12 23:48 von frederic
Nach oben
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0