Raspberry als Media Extender / UPnP-Renderer
Eine interessante Option, seinen Raspberry Pi zu nutzen ist die, ihn als Media Player einzusetzen. Dabei wird auf das Protokoll UPnP gesetzt, das weit verbreitet und für jedes System verfügbar ist. Der wohl bekannteste Client für Android ist BubbleUPnP.
[appbox googleplay com.bubblesoft.android.bubbleupnp]
Durch diese Anleitung wird es möglich sein, auf einem UPnP-fähigen Gerät wie das Android-Smartphone oder Tablet wahlweise vom lokalen Speicher oder aus einer UPnP-Quelle Musikdaten zu wählen und diese auf einem Raspberry als Ausgabegerät wiederzugeben. Dabei werden die Audiodaten lediglich in die Playlist des Raspberrys gelegt, so dass die Daten direkt von der Quelle abgespielt werden und das Steuergerät (in unserem Beispiel das Android-Smartphone) ggf. ausgeschaltet werden kann.
Selbst eine parallele Bedienung von mehreren solchen Steuergeräten ist möglich. Um einen Raspberry Pi in einen Media-Player zu erweitern, benötigen wir folgende Hardware:
- Raspberry Pi + notwendiges Zubehör (fertig installiert)
- Lautsprecher, aktiv, 3,5mm Klinkenstecker
- Musik ;)
Was auf dem Raspberry installiert und konfiguriert werden muss, zeigen die folgenden Schritte.
1. Raspberry aktualisieren
Wie vor jedem Projekt wird der Raspberry zunächst aktualisiert. Dazu bietet sich das Script rpi-update an:
apt-get install rpi-update rpi-update
Anschließend starten wir den Pi neu:
shutdown -r now
Nun suchen und ggf. aktualisieren wir die restlichen Pakete:
apt-get update apt-get upgrade
2. GMediaRenderer installieren
GMediaRenderer bietet ein UPnP-Ziel auf dem Raspberry und arbeitet somit als sog. Renderer wie viele andere Gerät auf dem Markt ebenfalls. Dazu zählen Fernseher mit „Smart“- Funktionen oder sonstige HiFi-Geräte.
Zur Installation aller notwendigen Pakete wechseln wir als Nutzer root in unser Home-Verzeichnis mit
cd ~
…und laden gmrender herunter:
git clone https://github.com/hzeller/gmrender-resurrect.git
Um genauer zu sein, kommt hier eine Weiterentwicklung von gmrender zum Einsatz. Bei gmrender-resurrect wurden Fehler behoben, Erweiterungen hinzugefügt und vor allem: es wurde vom Ersteller für einen Raspberry optimiert.
Ist der Download beendet, konfigurieren, kompilieren und installieren wir gmrender-resurrect sowie notwendige Abhängigkeiten:
cd gmrender-resurrect apt-get install autoconf automake libtool apt-get install libupnp-dev libgstreamer0.10-dev gstreamer0.10-plugins-base gstreamer0.10-plugins-good gstreamer0.10-plugins-bad gstreamer0.10-plugins-ugly gstreamer0.10-ffmpeg gstreamer0.10-pulseaudio gstreamer0.10-alsa ./autogen.sh ./configure make make install
3. GMediaRenderer konfigurieren
Ist die Kompilierung fehlerfrei durchgelaufen, kopieren wir die init-Scripts an die dafür vorgesehene Stelle:
cp scripts/init.d/gmediarenderer /etc/init.d/
Dieses sog. init-Script sorgt dafür, dass der gmrender-Service beim Systemstart geladen werden kann.
Damit unser UPnP-Client nicht unter dem unzuordbaren Namen „Raspberry“ im (UPnP-)Heimnetzwerk erscheint, ändern wir im init-Script den Namen (hier im Beispiel mit dem Texteditor nano):
nano /etc/init.d/gmediarenderer
Dort die Variable „UPNP_DEVICE_NAME“ ändern und anschließend mit „STRG“ und „X“ nano beenden und mit „y„ die Änderung speichern.
4. Neustart und Test
Nun aktivieren wir das init-Script, so dass der gmrender-Dienst beim booten geladen wird. Anschließend erfolgt ein Neustart unserer Himbeere, um das Script zu testen:
update-rc.d gmediarenderer defaults shutdown -r now
Ein Aufruf von
ps aux | grep gmedia
sollte im Erfolgsfall eine Ausgabe wie
liefern. Also startet der gmrenderer bei einem Systemstart automatisch.
5. Lautstärke erhöhen
Als letzten Konfigurationsschritt erhöhen wir die Systemlautstärke des Raspberrys auf 100%. Dafür eignet sich am besten das Programm alsamixer. Dieses starten wir in der Befehlszeile mit
alsamixer
Mit den Hoch- und Runter-Pfeiltasten erhöhren bzw. verringern wir die Lautstärke und „ESC“ beendet das Programm. Die getroffene Einstellung wird mittels
alsactl store
(ausgeführt als Nutzer root) gespeichert.
6. Abspielen von Medien testen
Nun ist es an der Zeit, auf dem Android-Phone die App BubbleUPnP zu starten. Im Registerreiter „Devices“ sollte nun der Raspberry mit dem im Punkt 3 gesetzten Namen erscheinen und kann als „Renderer“ gewählt werden. Sämtliche Medien, welche nun in die Playlist gesetzt werden, werden auf dem Raspberry abgespielt. Ob diese Medien nun lokal auf dem Smartphone/Tablet liegen oder auf einem UPnP-Server (wie z.B. Twonky) spielt dabei keine Rolle. Bei der Möglichkeit, dass die Medien von einem UPnP-Server abgespielt werden, kann nach der Auswahl der zu wiedergebenen Titel das Steuergerät sogar abgeschaltet werden, ohne dass die Wiedergabe unterbrochen wird.
Dies ist möglich, da der Raspberry die Medien nun direkt vom UPnP-Dienst bezieht und vom Steuergerät nur die Anweisung des Abspielens erhielt.
Anonymous
04.10.2015 @ 11:59
Super Anleitung Daumen hoch und vielen Dank. Funktioniert auch super mit FritzMedia
Benno S
31.07.2015 @ 23:21
Hallo Daniel,
der Raspi läuft auch ganz hervorragend mit dem Lumia 930 unter verwendung der „Smart Player“ Applikation. Wirklich eine stabile Implementierung! Ganz besonders hilfreich für die abendliche Unterhaltung im Kinderzimmer. Leider wird jedoch immer nur ein Titel abgespielt – auch bei Verwendung einer „Playlist“. Die weiteren Titel im „Verzeichnis“ müssen ebenfalls einzeln angestossen werden. Gibt es dafür eine andere Lösung?
MIt freundlichen Grüßen – Benno
Raspberry als Media Extender / UPnP-Renderer | FotoTech
29.06.2015 @ 22:20
[…] Quelle: Raspberry als Media Extender / UPnP-Renderer […]
Daniel Wenzel
06.01.2015 @ 05:41
Hallo,
leider ging es mir in dieser Anleitung nur darum, Musik auf dem Raspberry zu wiedergeben. Ich muss zugeben, dass ich das Video-Streaming auch selbst noch nicht getestet habe. Vielleicht findest du ja eine entsprechende Anleitung, die sich auch mit diesem Thema befasst oder ein weiterer Leser kann deine Frage beantworten.
Sebastian
01.01.2015 @ 15:23
Hallo.
Habe die Anleitung genutzt um meinen Raspi DLNA beizubringen. Musik zu streamen funktioniert mit BubbleUPNP gut. Jedoch klappt Video nicht. Es wird nichts abgespielt und es kommt keine Fehlermeldung. Wenn ich eine MPEG Datei gestartet habe, ist es nicht mehr möglich andere Datei wie zum Beispiel Musik zu starten. Stattdessen meldet dann BubbleUPNP „current state of service prevents invoking that action. connection error or no response received (code 501)“
Ne Idee wie man das lösen kann?
Vielen Dank schon mal