Seit einiger Zeit hab ich immer wieder mal ein Raspberry PI Projekt durchgeführt. Mich begeistert mit welcher Einfachheit und minimalen Aufwand es möglich ist, Dienste auf diesen Minicomputer stabil zu betreiben.
Nun bin ich mehrfach im Netz auf Infos zu einem Streamingserver mit Icecast gestoßen.
Das hat mich nun doch dazu bewegt diese Sache mal aufzugreifen. Der Raspberry eignet sich hervorragend für kleine Serverdienste , durch den enorm niedrigen Stromverbrauch. Hierzu sei angemerkt, dass es ein 5 Volt Schaltnetzteil sein sollte, da die Trafonetzteile zuviel Strom benötigen.
Hier eine Empfehlung :
http://www.reichelt.de/Ladegeraete-fuer-USB-Geraete
Als Streamingserver nutze ich die Icecast2 Software.
Nun geht es an die Installation :
sudo apt-get update && sudo apt-get install mpc mpd icecast2
MPD Installation meldet einen Fehler , dass Port 6600 nicht gebunden werden kann.
Diese Fehlermeldung kann durch löschen oder kommentieren des Eintrages in der „/etc/hosts“ beseitigt werden:
#::1 ip6-localhost ip6-loopback
Einstellungen in der Datei „/etc/mpd.conf“
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"
}
Starten des MPD-Dienst:
sudo /etc/init.d/mpd restart
Überprüfen ob die Audio-Interface aktiv sind:
$ mpc outputs Output 1 (My ALSA Device) is enabled Output 2 (RasPi MPD Stream) is enabled
Überprüfen ob die Dienste an den richtigen TCP-Ports laufen:
$ sudo netstat -ltpn Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN 19938/icecast2 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 10540/apache2 tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2159/sshd tcp 0 0 0.0.0.0:6600 0.0.0.0:* LISTEN 20380/mpd
Korrektur der Dateirechte:
$ sudo chmod g+w /var/lib/mpd/music/ /var/lib/mpd/playlists/ $ sudo chgrp audio /var/lib/mpd/music/ /var/lib/mpd/playlists/
Anlegen eine Playliste für lokale MP3-Dateien:
$ cd /var/lib/mpd/music/ $ wget http://www.jonobacon.org/files/freesoftwaresong/jonobacon-freesoftwaresong2.ogg
Anlegen eine Playliste für Streamserver aus dem Internet:
sudo nano /var/lib/mpd/playlists/radiosender.m3u
http://mp3.webradio.antenne.de:80
http://pub4.di.fm:80/di_chilloutdreams_aac
http://pub3.di.fm:80/di_ambient?8bcc11f7801aaf570241f3f6
http://pub5.di.fm:80/di_spacemusic?8bcc11f7801aaf570241f3f6
http://pub5.di.fm:80/di_cosmicdowntempo?8bcc11f7801aaf570241f3f6
http://pub5.di.fm:80/di_psychill?8bcc11f7801aaf570241f3f6
http://pub2.di.fm:80/di_eclectronica?8bcc11f7801aaf570241f3f6
http://pub3.di.fm:80/di_classictrance?8bcc11f7801aaf570241f3f6
http://pub7.di.fm:80/di_vocaltrance?8bcc11f7801aaf570241f3f6
Weitere Listen gibt es hier : http://www.linupedia.org/opensuse/Radiosender
Aktivieren der Playliste:
$ mpc update $ mpc ls | mpc add $ mpc playlist oder $ mpc clear $ mpc load radiosender.m3u $ mpc playlist Space Dreams - DIGITALLY IMPORTED - ambient space music for expanding minds: Darshan Ambient - Soft Land Cosmic Downtempo - DIGITALLY IMPORTED - A downtempo journey into the cosmos: Clams Casino - Drowning PsyChill - DIGITALLY IMPORTED - downtempo psychedelic dub grooves, goa ambient, and world beats.: Eat Static - Abnormal Interference EcLectronica - DIGITALLY IMPORTED - An eclectic mixture of modern electronica.: Hundred Waters - Boreal (Teebs Remix) Classic Trance - DIGITALLY IMPORTED - relive the classic trance hits!!: DJ Dawn - On The Beach Vocal Trance - DIGITALLY IMPORTED - a fusion of trance, dance, and chilling vocals together!: Neev Kennedy - A Bridge (Dns Project Remix) Jono Bacon - Free Software Song 2
Jetzt kommt der große Moment, das Starten des Audiostreams:
$ mpc play Jono Bacon - Free Software Song 2 [playing] #1/1 0:00/3:18 (0%) volume: 80% repeat: on random: off single: off consume: off
Überprüfen und sicher stellen dass der Icecast Server läuft:
$ sudo /etc/init.d/icecast2 start $ sudo update-rc.d icecast2 enable 2 $ sudo update-rc.d icecast2 enable 3
Nun Browser öffnen und http://ip-adresse-des-raspberry>:8000
Es sollte nun folgendes Bild erscheinen :
Nun kann der eigentliche Audiostream aufgerufen werden mit folgender URL:
http://ip-adresse-des-raspberry>:8000/mpd
Falls Du Probleme bei der Installation oder Konfiguration erhälst, schreibe hier einen Kommentar bitte.
Have Fun ….
Hallo,
danke erstmal für das coole TUT
Ist es aber auch möglich anstatt Musik Videos zu streamen?
Also ich will sozusagen eine Playlist erstellen mit Videos die ich
dann mit hilfe einer URL abrufen kann…
MFG
Leider geht bei mir diese Amweisung nicht:
mpc ls | mpc add
Es kommt ständig die Fehlermeldung:
error: directory or file not found
Im Augenblick hab ich wenig Zeit , werde mir das Problem aber ansehen.
Hab das gleiche Problem auf einmal warum auch immer.
Grüße Joachim
Hallo Joachim,
ich habe das Tut abgearbeitet und alles wie beschrieben eingerichtet. Leider kann ich am pc den Stream nicht abfragen. Bei http://ip-adresse:8000 kommt die allgemeine Startseite des icecast 2. Dort kann ich mich mit admin/hackme einloggen. Wenn ich dann ip-adresse:8000/mpd eingebe, wird die Seite nicht gefunden. Muss ich möglicheweise im icecast 2 noch andere Daten eingeben oder die Datei /etc/default/icecast2 anpassen?
Grüße Jürgen
Hallo Jürgen
hast Du die Einstellungen in der Datei “/etc/mpd.conf” gemacht?
host „localhost“
port „8000“
mount „/mpd“
Nicht vergessen nach dem editieren:
sudo /etc/init.d/mpd restart
Viel Erfolg und Grüße Joachim
Hallo Joachim, ich bin auf der Suche nach einem Streamingserver, der das Eingangssignal einer USB-Soundkarte (Line-IN, Behringer UCA202) als RTP streamt. Die Vorschläge, die ich bis jetzt im Netz gefunden habe, setzen alle auf Pulseaudio auf, was ich leider nicht zum Laufen bringe. Kann ich deinen Vorschlag dafür zweckentfremden? Wenn ja wie?
Gruß Thomas
Hallo Thomas
sicher kannst Du den Vorschlag für Deine Zwecke umbauen, anwenden usw.
Leider kenne ich mich mit dem Thema Soundverarbeitung über USB gar nicht aus. Was ich vermuten kann, dass es über ein Device Datei gehen muss, welches dann ausgelesen werden muss über den Daemon. Eventuell hilft Dir das schon bei Deiner weiteren Suche.
Viel Erfolg wünscht Dir Joachim