Posts mit dem Label Airplay werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Airplay werden angezeigt. Alle Posts anzeigen

Samstag, 18. Mai 2013

Teil 1/3 - Apple AirPlay auf dem Raspberry Pi

Apple AirPlay auf dem Raspberry Pi

Um Musik direkt vom Mac aus iTunes oder dem iOs-Device an eine Stereoanlage oder einen AppleTV zu senden, verwendet Apple den hauseigenen Streamingstandard AirPlay. Mit ein wenig Mühe kann man iTunes oder iOs jedoch vortäuschen ein waschechter AiPlay-Empfänger zu sein.

Zuerst müssen dafür die benötigten Pakete installiert werden:
sudo apt-get install git libao-dev libssl-dev libcrypt-openssl-rsa-perl libio-socket-inet6-perl libwww-perl avahi-utils

Jetzt muss der zugehörige Source-Code von Github heruntergeladen werden:
sudo git clone https://github.com/albertz/shairport.git shairport

Anschließend wechseln wir in den Ordner, in denen die Dateien geladen wurden
cd shairport

und kompilieren die Dateien:
sudo make

Nun müssen diese noch installiert werden:
sudo make install

Anschließend müssen folgende Befehle hintereinander ausgeführt werden:
sudo cp shairport.init.sample /etc/init.d/shairport
cd /etc/init.d
sudo chmod a+x shairport
sudo update-rc.d shairport defaults

Shairport ist nun nahezu Installiert, wurde durch die Rechtevergabe ausführbar gemacht und ist als Systemservice verfügbar.

Den Namen des AirPlay-Empfängers kann man in der folgenden Datei festlegen:
sudo nano /etc/init.d/shairport
Hier muss etwas runtergescrollt werden und hinter das Wort PIDFILE der Zusatz "-a NAME" geschrieben werden, wobei NAME durch den gewünschten Namen ersetzt wird. In meinem Fall "AirPi". Die Datei sieht dann folgendermaßen aus:
NAME=ShairPort
DAEMON="/usr/local/bin/shairport.pl"
PIDFILE=/var/run/$NAME.pid
DAEMON_ARGS="-w $PIDFILE -a AirPi"

Es werden noch zwei weitere Dateien benötigt. Auch hier gilt wieder: Alle Befehle nach und nach eintippen:
wget http://www.forum-raspberrypi.de/mydownloads/downloads/libnet-sdp-perl_0.07-1_all.deb
wget http://www.forum-raspberrypi.de/mydownloads/downloads/shairport_0.05-1_armhf.deb
sudo dpkg -i libnet-sdp-perl_0.07-1_all.deb
sudo dpkg -i shairport_0.05-1_armhf.deb

Jetzt muss nur noch der Shairport-Service neugestartet werden
sudo service shairport restart

Das wars. Der Raspberry Pi ist nun ein AirPlay-Empfänger. Hinweis: In manchen Fällen wird der RaspberryPi nicht sofort von iTunes erkannt. Dann bitte folgendes ausführen:
sudo service shairport restart

UPDATE: Aus unbekanntem Grund, konnte der RasPi von heute auf morgen nicht mehr von iTunes als Lautsprecher gefunden werden. Abhilfe hat folgendes gebracht:
sudo apt-get install cpanminus

Weiter zu Teil 2 des Tutorials in dem ich erkläre, wie der Music Player Daemon installiert wird um lokal auf dem Pi gespeicherte Musik wiederzugeben oder zu Teil 3 in dem erklärt wird, wie man über Bluetooth Musik auf den Pi streamen kann.

Dreiteiliges Tutorial: RaspberryPi als Radio und Streaming-Client

In diesem dreiteiligem Tutorial werde ich zeigen, wie man einen Raspberry Pi in ein erstklassiges Radio verwandeln kann. Jedoch kein herkömmliches UKW-Radio, sondern ein funktionales kleines Medienradio was sich nahtlos in die heimische digitale Infrastruktur ingeriert und Konnektivität für nahezu jedes Device und OS bietet.

Das Tutorial wird an dieser Stelle in drei Posts aufgeteilt. Nachdem diese befolgt wurden sollte der Pi folgendes bieten:
  • TEIL 1: Apple Airplay Streaming um Musik direkt aus iTunes auf den Raspberry Pi zu streamen. Ich benutze dafür ein Paket namens Shairport, was leicht zu konfigurieren ist und seinen Dienst mehr oder minder gut leistet.
  • TEIL 2: Music Player Daemon (MPD) um auf dem Raspi abgespeicherte Musik abzuspielen. MPD lässt sich wunderbar per Smartphone steuern und beherrscht neben der Wiedergabe lokaler Musikdateien auch die Wiedergabe von Streams, das Anlegen von Playlists, eine einfache Bedienung über das Terminal und noch vieles weitere.
  • TEIL 3: Musik-Streaming per Bluetooth A2DP-Protokoll um bspw. Musik von Android oder iOs auf das Gerät zu streamen. Der große Vorteil besteht darin, dass nahezu jedes Smartphone mit Bluetoothmodul von Haus aus dieses Protokoll spricht und somit ohne zusätzliche App Musik streamen kann. Zusätzlich kann der Pairing-Vorgang mittels eines NFC-Tags vereinfacht und automatisiert werden.
Bevor eine dieser Anleitungen befolgt wird, muss jedoch eingangs die Quelle angegeben werden, aus der der gestreamte Sound aus dem Pi kommen soll. Dies kann über HDMI oder Analog-Klinke erfolgen. Standardmäßig ist der Pi so eingestellt, dass er automatisch erkennt an welchem der beiden Anschlüsse ein entsprechender Stecker eingesetzt wurde. Probleme gibt es jedoch wenn man den Sound altmodisch über den 3,5mm-Klinkenport nutzen möchte aber gleichzeitig einen Monitor über HDMI angeschlossen hat. Dann bleibt der Pi stumm, da er denkt dass das Audiosignal über HDMI übertragen werden soll. In meinem Fall habe ich den Pi so eingestellt, dass alles Audio über den Klinkenport ausgegeben wird. Dies geht folgendermaßen:
sudo amixer cset numid=3 1
Dabei steht die letzte Zahl "1" für den Klinkenport. Soll der Sound über HDMI ausgegeben werden muss hier eine "2" stehen. Steht dort eine "0" ist der bereits erwähnte automatische Modus aktiviert.