Forum: PC Hard- und Software Musik-Streaming mit Raspberry Pi


von Dennis S. (eltio)


Lesenswert?

Hallo zusammen,
ich möchte mit mehreren RaspPi in jedes Zimmer der Wohnung Musik 
streamen.
Bisher habe ich einen Pi mit MiniDLNA als Server mit externer Festplatte 
für die Musiksammling an der Fritzbox. Der Zugriff mit der Android App 
"Media House" funktioniert vom Handy aus per WLAN sehr gut.

Jetzt möchte ich einen weiteren Pi als Client im Wohnzimmer oder 
Schlafzimmer aufstellen. Welche Software bietet sich hier an? Es geht 
mir lediglich um das Hören der Musik und brauche keinen Monitor oder so. 
Das Auswählen der Titel würde ich weiterhin am Handy machen. Die Auswahl 
der Software scheint mir unübersichtlicher sein als bei den Servern.

Gruß
Dennis

von stream (Gast)


Lesenswert?

kodi.tv

von Dennis S. (eltio)


Lesenswert?

Wenn ich das richtig sehe, ist das der Nachfolger von XBMC. Das könnte 
etwas schwergewichtig sein, falls man in Zukunft noch andere Sachen 
parallel machen möchte oder?

Gruß
Dennis

von Axel S. (a-za-z0-9)


Lesenswert?

Dennis S. schrieb:
> Jetzt möchte ich einen weiteren Pi als Client im Wohnzimmer oder
> Schlafzimmer aufstellen. Welche Software bietet sich hier an?

Ich verwende dafür MPD (http://www.musicpd.org/). Ist eher ein 
Leichtgewicht. Und es gibt Clients (aka: Fernbedienungen) für so 
ziemlich jede Plattform: http://mpd.wikia.com/wiki/Clients

Ebenfalls recht beliebt zu sein scheint http://volumio.org/.
Habe ich aber noch nicht ausprobiert, weil mpd gleich paßte.

: Bearbeitet durch User
von Dennis S. (eltio)


Lesenswert?

Okay, ich muss doch nochmal nachhaken, weil ich fürchte, dass ich das 
Prinzip nicht ganz erfasst habe!

Was ich möchte
Eine zentrale Anlaufstelle an der meine Musiksammlung steht. Von hier 
aus möchte ich, gesteuert mit dem Handy / Webinterface, die Musik in 
verschiedene Räume der Wohnung streamen. Optimalerweise wäre es sogar 
so, dass ich für jeden Raum die Musik separat einstellen kann.

Was ich bisher gemacht habe
An meiner Fritzbox ist ein Ethernet-Switch angeschlossen. Hier ist per 
LAN-Kabel ein Raspberry Pi ("RasPi_1") angeschlossen. An diesem wiederum 
ist eine externe Festplatte angeschlossen, auf der die Musik liegt. 
Softwaremäßig habe ich hier "miniDLNA / ReadyMedia" laufen. Logge ich 
mich auf "RasPi_1" mit dem Handy (App "Media Home") ein, kann ich ein 
Lied auswählen und höre auf dem Handy die Musik.

Aufgrund des Posts von "Axel Schwenke" habe ich jetzt mit der Anleitung 
unter [1] MPD auf "RasPi_1" installiert. In der Forumsdiskussion danach 
steht jedoch, dass das der falsche Ansatz ist, weil so lediglich die 
Musik an "RasPi_1" abgespielt wird. Das wäre ja nicht das was ich 
möchte. Als Alternative wird ein Samba-Server genannt.

Einige Gedanken
Vielleicht wäre folgendes ein Lösung: in jedem Zimmer steht ein 
Raspberry Pi mit MPD der die externe Festplatte an der FritzBox als 
Netzlaufwerk einbindet. Dann könnte ich am Handy den jeweiligen Pi in 
einer App (MPDroid oder Droid MPD Client?) auswählen auswählen und die 
Musik für jedes Zimmer separat bestimmen?!

Ich würde also weggehen von dem Gedanken "ich verteile die Musik von 
einer zentralen Stelle aus" zu "ich hole mir die Musik von einer 
zentralen Stelle"..

Hat wohl nochmal jemand die Geduld mir die Zusammenhänge zu erklären?

Gruß
Dennis

[1] 
http://www.forum-raspberrypi.de/Thread-tutorial-music-player-daemon-mpd-und-mpc-auf-dem-raspberry-pi

von Axel S. (a-za-z0-9)


Lesenswert?

Dennis S. schrieb:

> *Was ich möchte*
> Eine zentrale Anlaufstelle an der meine Musiksammlung steht. Von hier
> aus möchte ich, gesteuert mit dem Handy / Webinterface, die Musik in
> verschiedene Räume der Wohnung streamen. Optimalerweise wäre es sogar
> so, dass ich für jeden Raum die Musik separat einstellen kann.

Was meinst du genau mit "in verschiedene Räume ... streamen"? Du 
willst ja wohl keine Kabel ziehen und Analogsignale durch die Gegend 
schicken? Was sollen die Stream-Empfänger sein?

> *Was ich bisher gemacht habe*
> An meiner Fritzbox ist ein Ethernet-Switch angeschlossen. Hier ist per
> LAN-Kabel ein Raspberry Pi ("RasPi_1") angeschlossen. An diesem wiederum
> ist eine externe Festplatte angeschlossen, auf der die Musik liegt.
> Softwaremäßig habe ich hier "miniDLNA / ReadyMedia" laufen. Logge ich
> mich auf "RasPi_1" mit dem Handy (App "Media Home") ein, kann ich ein
> Lied auswählen und höre auf dem Handy die Musik.

OK. Dann ist dein RasPi aber eher nur ein Fileserver. Auf jeden Fall 
wird zwischen ihm und deinem Handy kein Stream übertragen, sondern eine 
stinknormale MP3-Datei (AFAIK über HTTP).

> Aufgrund des Posts von "Axel Schwenke" habe ich jetzt mit der Anleitung
> unter [1] MPD auf "RasPi_1" installiert. In der Forumsdiskussion danach
> steht jedoch, dass das der falsche Ansatz ist, weil so lediglich die
> Musik an "RasPi_1" abgespielt wird. Das wäre ja nicht das was ich
> möchte.

Ich hatte das so verstanden, daß der RasPi (bzw. einer in jedem Raum) 
der Media Renderer (DLNA-Sprech) sein soll. Als Server kann ebenfalls 
ein RasPi dienen oder die FritzBox. Oder sonstwas. Tatsächlich würde 
ich einem etablierten Netzwerk-Filesystem wie z.B. SMB den Vorrang vor 
DLNA geben.

> Vielleicht wäre folgendes ein Lösung: in jedem Zimmer steht ein
> Raspberry Pi mit MPD der die externe Festplatte an der FritzBox als
> Netzlaufwerk einbindet. Dann könnte ich am Handy den jeweiligen Pi in
> einer App (MPDroid oder Droid MPD Client?) auswählen auswählen und die
> Musik für jedes Zimmer separat bestimmen?!

Ja, das war die Idee. Denn schließlich brauchst du ja in jedem Raum den 
du beschallen willst, ein netzwerkfähiges Gerät, das Audio ausgeben 
kann. Ein RasPi kann das. Und ist sehr preiswert.

> Ich würde also weggehen von dem Gedanken "ich verteile die Musik von
> einer zentralen Stelle aus" zu "ich hole mir die Musik von einer
> zentralen Stelle"..

Genau so. Außer daß DLNA auch nicht wirklich "verteilt". Denn da 
bestimmt der Client, was er vom Server geliefert haben will.

Es gibt noch ein paar mehr Möglichkeiten.

1. du könntest einen echten Streaming-Server aufsetzen, z.B. Icecast. 
Der kann dann einen oder mehrere Streams ins WLAN pumpen die du dann mit 
beliebigen Clients (Webradio,  Squeezebox, Fernseher, RasPi mit MPD ;) 
wiedergeben kannst.

2. als Streaming-Server eignet sich auch ein Raspi, auf dem ein oder 
mehrere MPD laufen, die das Audiosignal nicht lokal ausgeben, sondern 
per jack/pulse/httpd Plugin ins Netzwerk streamen. Auch hier brauchst du 
geeignete Clients, die das Signal wieder aus der Luft fischen.

Der Vorteil der Streaming-Methode ist, daß du so an zwei Stellen relativ 
exakt die gleiche Musik hören kannst. Relativ deswegen, weil 
verschiedene Clients verschiedene Latenz haben.

Wenn in zwei Räumen hingegen zwei MPD-Instanzen stehen, die ihre Musik 
lediglich vom gleichen Fileserver laden, dann könntest du nie auf beiden 
das gleiche Programm hören. Schon weil du die Wiedergabe nicht synchron 
gestartet kriegst.

von Dennis S. (eltio)


Lesenswert?

Vielen Dank schonmal für deine sehr ausführliche Antwort! :-) Ich hatte 
ja auch jetzt die Gelegenheit das Ganze nochmal zu überschlafen und 
denke, dass ich den Gedanken mit der separaten Steuerung fallen lasse. 
Wenn ich durch die Wohnung laufe soll das Lied gleich bleiben.

Axel Schwenke schrieb:
> Was meinst du genau mit "in verschiedene Räume ... streamen"? Du
> willst ja wohl keine Kabel ziehen und Analogsignale durch die Gegend
> schicken? Was sollen die Stream-Empfänger sein?
"Stream" bedeutet für mich, dass die Wiedergabe sofort beginnt und nicht 
erst die komplette Datei heruntergeladen werden muss (wie beim Radio). 
Was ich nicht möchte ist, Lautsprecherkabel durch die Wohnung zu 
ziehen (Verluste etc). Aus diesem Grund wollte ich irgendeine Lösung 
die über das WLAN oder LAN funktioniert. Als Empfänger dachte ich an den 
Pi + kleinen Verstärker weil ich das hier rumliegen habe.

> OK. Dann ist dein RasPi aber eher nur ein Fileserver. Auf jeden Fall
> wird zwischen ihm und deinem Handy kein Stream übertragen, sondern eine
> stinknormale MP3-Datei (AFAIK über HTTP).
Richtig, ich höre eine MP3. Aber aufgrund meiner Definition oben (Musik 
startet sofort), habe ich das "Stream" genannt. Korriger mich bitte wenn 
es dafür ein anderes Wort gibt.

> Ich hatte das so verstanden, daß der RasPi (bzw. einer in jedem Raum)
> der Media Renderer (DLNA-Sprech) sein soll. Als Server kann ebenfalls
> ein RasPi dienen oder die FritzBox. Oder sonstwas. Tatsächlich würde
> ich einem etablierten Netzwerk-Filesystem wie z.B. SMB den Vorrang vor
> DLNA geben.
Stimmt, so war es auch geplant... :-)

> 1. du könntest einen echten Streaming-Server aufsetzen, z.B. Icecast.
> Der kann dann einen oder mehrere Streams ins WLAN pumpen die du dann mit
> beliebigen Clients (Webradio,  Squeezebox, Fernseher, RasPi mit MPD ;)
> wiedergeben kannst.
>
> 2. als Streaming-Server eignet sich auch ein Raspi, auf dem ein oder
> mehrere MPD laufen, die das Audiosignal nicht lokal ausgeben, sondern
> per jack/pulse/httpd Plugin ins Netzwerk streamen. Auch hier brauchst du
> geeignete Clients, die das Signal wieder aus der Luft fischen.
>
> Der Vorteil der Streaming-Methode ist, daß du so an zwei Stellen relativ
> exakt die gleiche Musik hören kannst. Relativ deswegen, weil
> verschiedene Clients verschiedene Latenz haben.

Okay, also aktueller Stand (ich hoffe meine Meinung ändert sich nicht 
gleich wieder :-D ):
- Ich möchte in jedem Zimmer die gleiche Musik hören (abzüglich 
Latenz)
- Die Musiksammlung soll an einer zentralen Stelle stehen (HDD)
- Die Auswahl der Musik soll per Android-App oder Webinterface geschehen

Eine Möglichkeit wäre also folgendermaßen:
1) RaspPi mit externer Festplatte an Fritzbox mit MPD als Server, 
Ausgabe "per jack/pulse/httpd Plugin ins Netzwerk streamen"
2) Auf dem Handy zum Beispiel MPDroid installieren um den Pi an der 
Fritzbox zu sagen was er abspielen soll
3) Die Pis (weil vorhanden) als "Empfänger" in den Räumen: hier muss ich 
der Software sagen: spiele alles ab was du über das Netzwerk empfängst. 
Welche Software wäre da möglich? MPD ist doch nur ein Server oder?

Danke für die Geduld... :-/

von dfgdfg (Gast)


Lesenswert?

Keep It Simple Stupid

Nehme x Pi's für x Räume
Installiere überall Raspbmc

Hänge an den ersten eine Platte mit externer Strom versorgung
Aktiviere bei einem den Upnp Server und bei allen den Upnp client

mit Software wie
https://play.google.com/store/apps/details?id=com.bubblesoft.android.bubbleupnp&hl=en

(gibts auch für ios) kannst du steuern wie dus willst

fertig

von Dennis S. (eltio)


Lesenswert?

dfgdfg schrieb:
> Keep It Simple Stupid
>
> Nehme x Pi's für x Räume
> Installiere überall Raspbmc
>
> Hänge an den ersten eine Platte mit externer Strom versorgung
> Aktiviere bei einem den Upnp Server und bei allen den Upnp client
>
> mit Software wie
> https://play.google.com/store/apps/details?id=com....
>
> (gibts auch für ios) kannst du steuern wie dus willst
>
> fertig

Du hast ja prinzipiell recht. Aber es ging mir ja auch darum (siehe 
oben) etwas leichtgewichtiges zu haben um nebenher einen Webserver 
laufen zu lassen. Ich starte einfach mal eine Testreihe wie sich die 
Performance so schlägt..

von Dennis S. (eltio)


Lesenswert?

Hat vielleicht jemand eine Idee, woran es liegen kann, dass nur ein sehr 
geringer Teil der Musiksammlung von XBMC in die Datenbank eingelesen 
wird!?

von dfgdfg (Gast)


Lesenswert?

Wegen Performance. Ich denke wenn du schon Angst hast mit raspbmc den pi 
auszulasten, dann wirst du auch keine weiteren Programme mit hohem 
Leistungsanspruch drauf laufen lassen.

Du kannst mit der Auflösung runter gehen sowie einige Dienste abschalten 
die du nicht brauchst.

Ich hab alles an was geht und hab bei Fullhd 30 Fps ca 30% Load. Ich 
denke du kommst wesentlich weiter runter bei niedrigerer Auflösung.

von Dennis S. (eltio)


Lesenswert?

dfgdfg schrieb:
> Wegen Performance. Ich denke wenn du schon Angst hast mit raspbmc
> den pi
> auszulasten, dann wirst du auch keine weiteren Programme mit hohem
> Leistungsanspruch drauf laufen lassen.
>
> Du kannst mit der Auflösung runter gehen sowie einige Dienste abschalten
> die du nicht brauchst.
>
> Ich hab alles an was geht und hab bei Fullhd 30 Fps ca 30% Load. Ich
> denke du kommst wesentlich weiter runter bei niedrigerer Auflösung.

Die Erfahrungsberichte im Internet sprechen sich eigentlich alle gegen 
XBMC + Owncloud aus.. Die "Auflösung" möchte ich nicht runterstellen 
sondern die MP3s so abspielen wie sie codiert sind.

von Dennis S. (eltio)


Lesenswert?

Okay, aktueller Stand
Auf dem einen RaspPi (der an der FritzBox) läuft jetzt mit externer 
Festplatte der MPD. Von meinem Rechner aus kann ich mittels "ncmpcpp" 
die Datenbank einsehen und Lieder abspielen. Gleiches gilt für das Handy 
mit "MPDroid".

Das Problem
Die Ausgabe erfolgt über die Klinkenbuchse des RasbPi! In der Config von 
MPD habe ich die Optionen "httpd" und "alsa" aktiviert (sind auch beide 
als Streams in MPDroid sichtbar).
Wie bekomme ich es jetzt hin, dass ich einen weiteren Pi ans Netz hänge 
und der einfach alles abspielt was er über das Netzwerk bekommt? Ich 
könnte ja auch einfach ein Mischpult an die Klink des ersten Pi 
anschließen... und Kabel in der Wohnung verlegen... grummel

Ich habe das Gefühl mir fehlt nur ein ganz kleiner Schubser! :-(

Gruß
Dennis

von Axel S. (a-za-z0-9)


Lesenswert?

Dennis S. schrieb:
> Die Ausgabe erfolgt über die Klinkenbuchse des RasbPi! In der Config von
> MPD habe ich die Optionen "httpd" und "alsa" aktiviert (sind auch beide
> als Streams in MPDroid sichtbar).
> Wie bekomme ich es jetzt hin, dass ich einen weiteren Pi ans Netz hänge
> und der einfach alles abspielt was er über das Netzwerk bekommt?

Als ersten Test nimm irgendein Gerät, das Streams über HTTP wiedergeben 
kann und gib die Adresse deines RasPi ein (Port 8000). Jetzt sollte 
diese gerät das gleiche abspielen wie der RasPi.

Wenn das geht, dann sollte als CLient auch ein zweiter RasPi mit MPD 
gehen. Wie du den MPD so konfigurierst, daß er direkt nach dem Start 
eine Playlist startet, da bin ich jetzt überfragt. Im Zweifelsfall "mpc 
add $URL" in irgendein Skript packen.

http://mpd.wikia.com/wiki/Built-in_HTTP_streaming_part_2

: Bearbeitet durch User
von Dennis S. (eltio)


Lesenswert?

Es ist echt zum Mäusemelken...
ich habe auf einem zweiten Pi mpc und mpd installiert und wie auf der 
von Axel zitierten Seite den Stream hinzugefügt. Mit raspi-config habe 
ich die Audio-Ausgabe auf Klinke "geforct". Trotzdem.... nichts!

Naja, Harman Kardon macht ja gerade Werbung für ein 
Multiroom-Soundsystem.. :-(

von blubber (Gast)


Lesenswert?

Dennis S. schrieb:
> von Axel zitierten Seite den Stream hinzugefügt. Mit raspi-config habe
> ich die Audio-Ausgabe auf Klinke "geforct". Trotzdem.... nichts!

Hast du auch bei deinem Haupt/Server MPD in der mpd.conf einen 
Streem-Output eingestellt?
Einige auskommentierte Beispiel findest du in der Datei ...
Das kannst du dann auch mit mplayer oder einem Browser testen ...

von Dennis S. (eltio)


Lesenswert?

blubber schrieb:
> Hast du auch bei deinem Haupt/Server MPD in der mpd.conf einen
> Streem-Output eingestellt?
> Einige auskommentierte Beispiel findest du in der Datei ...
> Das kannst du dann auch mit mplayer oder einem Browser testen ...

Ja, ich habe den ALSA und den HTTPD-Teil auskommentiert. Ich glaube es 
liegt auch am Client-Pi..
Wenn ich am Rechner den Stream mit VLC öffne dann geht es. Nicht sehr 
stabil, aber es kam zumindest schonmal das richtige Lied. Muss ich den 
httpd-Teil auch beim Client mit reinnehmen?!

EDIT:
Jetzt ging es! Ich habe kein "mpc play" nach dem "add" hinzugefügt! :-( 
Jetzt ist nur noch das Problem zu lösen, dass alles "automatisch" 
passiert. Im Moment ist es so, dass wenn ich ein neues Lied am Handy 
auswähle, ich am Client wieder "mpc add" und "mpc play" machen muss... 
Seltsam, aber immerhin ein Teilerfolg.

: Bearbeitet durch User
von blubber (Gast)


Lesenswert?

Du kannst auf deinem Server auch z.B. Pulsaudio aus Ausgabe verwenden.
Der kann dann direkt über das Netz die Audioausgabe auf dem Client 
ansprechen.
Vorraussetzung ist natürlich das auf beiden Pulsaudio auch läuft und 
richtig konfiguriert ist.
Damit hatte ich aber noch nichts gemacht ...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.