AirPlay ist ein Protokoll von Apple mit dem über das Netzwerk Inhalte wie z. B. von iOS oder MacOS auf AirPlay-Empfänger gestreamt werden können. Um eine normale oder ältere Stereoanlage ohne AirPlay-Funktion dennoch mit AirPlay zu verwenden, kann ein Raspberry Pi verwendet werden.
In diesem Tutorial wird gezeigt, was man dafür benötigt und wie man den AirPlay-Empfänger einrichtet.
Zubehör
Für dieses Tutorial wirst du folgendes Zubehör benötigen:
- Raspberry Pi 3
- Stereoanlage mit 3,5mm-Klinken Anschluss
- 3,5mm-Klinken-Kabel
- USB Soundkarte (optional)
Falls du keine extra Soundkarte kaufst, ist der Raspberry Pi 3 aufgrund der besseren Soundqualität, zu empfehlen. Ansonsten funktioniert dieses Projekt aber auch mit allen anderen Modellen, sofern ein Audioausgang vorhanden ist (Zero Modelle benötigen also zwingendermaßen eine externe USB Soundkarte, sofern der Eingang nicht aufgelötet wurde).
Software
Bevor wir mit der eigentlichen Installation anfangen, müssen wir noch die Paketquellen updaten und ein paar Entwicklungsbibliotheken installieren:
sudo apt-get update sudo apt-get install libssl-dev libavahi-client-dev libasound2-dev avahi-daemon
Als Grundlage fungiert die Bibliothek Shairport. Mit dieser ist es möglich den Raspberry Pi als AirPlay-Empfänger zu benutzen.
Also installieren wir diese Bibliothek:
git clone https://github.com/abrasive/shairport.git
Nun wechseln wir in das shairport Verzeichnis und starten dort das Konfigurationsscript:
cd shairport ./configure
Als letzte Zeile der Ausgabe solltest du nun „Configure succesful. You may now build with make“ erhalten. Sollte dies der Fall sein, so können wir jetzt die Skripte kompilieren und installieren:
make sudo make install
Jetzt haben wir zwar alles installiert, aber es fehlen noch die Konfigurationsskripte. Diese befinden sich in Ordner „scripts/debian“ und müssen nach „/etc“ kopiert werden:
sudo cp scripts/debian/init.d/shairport /etc/init.d/ sudo cp scripts/debian/default/shairport /etc/default/
Nun können wir Shairport das erste Mal testen:
shairport –a 'Shairport-Test'
Solltest du nun einen AirPlay-Receiver mit dem Namen Shairport-Test finden, bist du fast am Ziel.
Anschließend müssen wir uns nur noch um die Konfigurationsdatei von Shairport kümmern. Dabei müssen wir folgende Variablen anpassen: USER, GROUP, AP_NAME. Den AP_NAME kannst du hierbei frei wählen und somit bestimmen unter welchem Namen euer AirPlay-Receiver im Netzwerk angezeigt wird.
sudo nano /ect/default/shairport
USER=pi GROUP=nogroup AP_NAME=tutorials-raspberrypi
Anschließend speichern wir mit STRG+O und können die Datei dann mit STRG+X schließen.
Autostart
Damit Shairport nach jedem Systemstart automatisch läuft registrieren wir noch das init-Skript (alternativ wäre auch ein crontab möglich):
sudo update-rc.d shairport defaults
Nun startet das Skript nach jedem Systemstart oder wenn wir es manuell mit
sudo service shairport start
starten und wir können Musik von einem Mac/iPhone abspielen.
Um Shairport anzuhalten kann einfach
sudo service shairport stop
verwendet werden.
Dieses Tutorial wurde von Hendrik T. S. eingesendet.
60 Kommentare
Cool, danke! Ich wusste nichtmal das das geht! Kann man auch über so ein ähnliches Konstrukt Filme streamen?
Das ganze ist mit dem Betriebssystem OpenElec möglich. Dort gibt es dann auch passende Skins, damit das Menü (fast) genauso aussieht wie beim „echten“ Apple TV.
Hallo Hendrik T.S.,
hab Rasperian installiert und bis zum Punkt shairport -a ‚Shairport-Test‘ alles gemacht wie beschrieben, aber mein Handy zeigt es nicht an… ? Als Antwort für die Eingabe kommt:
Starting Shairport 1.1.1-23-gf65b8e8
Listening for connections..
Kannst du mir da weiterhelfen?
Hallo, wie beende ich den ‚Shairport-Test‘ wieder, damit er mir an den Apple Geräten nicht mehr angezeigt wird?
ich habs mit strg+c gemacht
Super, auf sowas hab ich schon gewartet..
werd ich gleich heute abend ausprobieren.
Bekomme ich das auch ins Openelec integriert?
Wenn du eh schon OpenELEC hast, müsste das eigentlich auch ohne zusätzliche Installation von Shairport funktionieren.
ja aber leider bekomme ich kein Bild rüber bei IOS 10
Shairport kümmert sich aber eben auch nur um den Ton.
Um auch den Screen zu übertragen wird z. B. rPlay benötigt. Ob und wenn ja wie man das ganze in OpenELEC einbauen kann, weiß ich leider nicht, da ich selber kein OpenELEC verwende.
geht damit auch screen mirroring?
Nein. Das geht nur über OpenELEC.
Aber wie mir gerade aufgefallen ist, geht ScreenMirroring nur, wenn du iOS höchstens auf Version 8.x verwendest. Um das ganze mit höheren iOS-Versionen zu ermöglichen, solltest du dir mal „rPlay“ angucken.
Hi,
beim Test sehe ich auf dem Iphone Shairport-Test.
Es wird aber keine Musik übertragen.
Bei service shairport start kommt Fehler. Job for shairport.service failed.
Gab es schon bei der Installation irgendwelche Fehlermeldungen?
Die Installation war ok.
Ich habe in andern Foren gestöbert und eine Anleitung gefunden.
Es muß noch in zwei Dateien beim raspi auf Externe USB-Karte der Eintrag geändert werden.
Es läuft jetzt.
Danke
Ja. Man muss, wenn man eine Soundkarte benutzt natürlich noch den Audioausgang anpassen. Freut mich, dass es dann doch geklappt hat.
Besten Dank für das Tutorial, welches ich gerne ausprobiert habe.
Weit bin ich nicht gekommen, denn bereits beim Befehl, die Entwicklungsbibliotheken zu instellieren gibt das System einen Fehlermeldung: „E: Paket avahi-deamon kann nicht gefunden werden.“
Ich fahre Rasbian auf einem Pi, Version 2 und mache regelmässig updates.
Hat jemand eine Hilfestellung?
Hast du dich vielleicht vertippt? Es muss daemon und nicht deamon heißen.
Ganz richtig, ich habe mich vertippt. Jetzt lauft alles, wie angegeben. Besten Dank fürs genaue Hinsehen.
Cornelius
Nachdem die USB-Soundkarte funktioniert, habe ich eine HiFI- berry DAC+ installiert.
Es kommt die Musik am Ausgang an, aber mit zu niederen Frequenz (wie Plattenspieler 33 statt 45 Geschwindigkeit)
Alle paar Sekunden kommt eine Fehlermeldung „overrun“.
Wo kann ich die Samplerate einstellen? Dies wird der Fehler sein.
Das Projekt macht viel Spaß. Danke.
Probier diese Datei zu bearbeiten: /usr/share/alsa/alsa.conf
Sollte irgendwie so oder so ähnlich aussehen: defaults.pcm.dmix.rate 44100
Dann kannst du hinten die Rate ändern.
(Entschuldigung für die lange Wartezeit)
Hallo,
Vielen Dank für die tolle Anleitung. Es hat bei mir auch alles geklappt. Allerdings habe ich eine Verzögerung, die vor allem beim Abspielen von Videos extrem störend ist. Nach Klick auf Play oder Stopp dauert es etwas 2 Sekunden, bis der Ton startet/stoppt. Entsprechend sind Bild und Ton bei Filmen versetzt. Gibt es hierfür ein Lösung?
Beste Grüße
Steffinuss
Hallo,
bei mir kommt immer folgende Meldung, nachdem ich den Befehl „shairport –a ‚Shairport-Test'“ eingetippt habe:
Starting Shairport 1.1.1-23-gd65b8e8
FATAL: Invalid audio argument: -a
Shutting down…
kann mir da jemand weiterhelfen?
lg, Simon
Habe leider das gleiche Problem.
Ich leider auch, gibt es da schon eine passende Lösung?
Versucht es mal mit shairport –name=shairport-test
tippe den Befehl ab, anstatt ihn zu kopieren.
das projekt wärenauch für mich interessant:
a) Der raspi wird per klinke an das soundausgebendebsystem angeschlossen dort als aux mic quelle behandelt
b) einspielen von sharepoint auf dem pi ermöglicht dann die kommunikation von apple tools via airplay vom apple ihone / mac zu dem pi
! weches distribution benötigt der pi
! welche mindest version darf der pi haben
Vielen Dank für das Tut!
Bei mir kommt allerdings beim Punkt
„Also installieren wir diese Bibliothek:
git clone https://github.com/abrasive/shairport.git“
die Fehlermeldung:
bash: git: command not found
Kann mir jemand helfen bitte? Was mache ich falsch?
Der Pi ist erst neu aufgesetzt worden…
Das Gänsefüßchen hinter dem Befehl habe ich im SSH Client natürlich nicht verwendet, sondern lediglich:
git clone https://github.com/abrasive/shairport.git
Du musst git installieren.
sudo apt-get install git
Hey Felix, jetzt funzt es 😉 Tausend Dank!!!
Ein hammer Tool!!!
Sagt mal, jetzt habe ich nochmal ne Frage:
Nachdem ich jetzt den Pi nochmal neu aufgesetzt habe bekomme ich folgende Nachricht:
sudo apt-get install libssl-dev libavahi-client-dev libasound2-dev avahi-daemon
Reading package lists… Done
Building dependency tree
Reading state information… Done
E: Unable to locate package libssl-dev
E: Unable to locate package libavahi-client-dev
Is nen Pi 2, ich habe das neueste Raspbian und gehe nur übers Terminal von Windows aus rein. Vor einer Woche ging es unter den selben Voraussetzungen, jetzt nicht mehr ?? 🙁 Noob am Verzweifeln und erbittet Hilfe xD
Falls noch jemand das Problem hat:
Ich habe nochmal alles neu aufsetzen müssen und dann hat es gefunzt 😉
Hi,
cool. Funktioniert super. Hab noch ein Rauschen auf den Klinken-Kopfhörern, aber das könnte auch daran liegen, dass es billigteile sind. Oder ist das am Pi 3B generell noch so, dass die Soundqualität ohne externe Soundkarte nicht so besonders ist.
Mich würde aber auch das Paket mit Bild und Ton interessieren. Ist das so einfach, dass wir kein Tutorial brauchen?
Ist rPlay bereits vorinstalliert bei OpenElec? Falls nicht, wo bekomme ich das her?
Ja, ohne Soundkarte ist die Qualität nicht sehr berauschend.
Hallo,
ich benutze für diesen Prozess einen Raspberry Pi 3. Allerdings ist es bei mir so, dass wenn ich den Test laufen lassen möchte er sagt:
Starting Shairport 1.1.1-23-gd65b8e8
FATAL: Invalid audio argument: –a
Shutting down…
Kann mir da Jemand weiterhelfen?
LG Björn
Hatte das Problem auch. Wenn etwas nicht klappt, hilft meist die Hilfe mit –help . 😉
Versuch mal das hier. Das klappt bei mir. Allerdings kommt noch kein Sound aus der Buchse…
shairport –name=shairport-test
Ok, jetzt raffe ich das Problem. Die Schriftart hier in den Kommentaren macht alles kaputt. Du musst die Befehlsargumente mit minusminus ausführen. Hier sieht alles aus wie ein langes Minus, obwohl es zwei hintereinander sind. 😀
Ist es möglich einen Skript zu schreiben, der ein Relais ansteuert sobald Musik gestreamt wird, um die Stereoanlage einzuschalten? Und wenn ja, wie geht das? Bin noch ziemlich neu…(Mir geht es lediglich um das Programm, die Schaltung kann ich selbst)
Vielen Dank im Voraus schonmal!
Gibt es schon Ansätze Airplay 2 zum Laufen zu bekommen? Die Ankündigung zu Airplay 2 verspricht, dass zwei Airplay (Mono-) Lautsprecher zu einem Stereo-Pärchen zusammenfinden. Speziell frage ich mich ob man folgendes Setup hin bekommt:
Bei Airplay 1 sieht die Kette so aus:
Airport Express – Verstärker – 2 LS Boxen
Bei Airplay 2 sähe die Kette so aus:
Links: Raspberry (Airplay 2) – Verstärker – Lautsprecher links
Rechts: Raspberry (Airplay 2) – Verstärker – Lautsprecher rechts
Das paaren von zwei Home Pods zu einem Stereo Setup ist hier beschrieben (https://www.theverge.com/2018/5/29/17406664/homepod-apple-stereo-pair-multi-room-audio-music-airplay-2-ios-11-update-how-to) – scheint allerdings aktuell auf den HomePod beschränkt zu sein.
Danke!
Hallo zusammen
Nettes Feature das Airplay. Ich hatte wie die meisten auch das Pronlem, dass der Test nicht lief und die Meldung:
„Starting Shairport 1.1.1-23-gd65b8e8
FATAL: Invalid audio argument: –a
Shutting down…“ kommt.
Musste die die Datei „shairport“ im Verzeichniss /home/pi/shairport über das GUI starten.
Dann liefe alles Prima.
Das einzige Problem was ich jetzt habe ist, dass sich nun keine Smartphone mehr mit Bluetooth verbinden lässt. Geräte welche gekoppel sind brechen nach 3 Sekunden die Verbindund ab.
Eine Fehler Meldung wir nicht generiert. Ausser von Pi zu Smartphone
„Connection Device
Connection failed – No usable Service on Device.“
sudo apt-get install shairport-sync
und gut iss. Kein Gefummel, läuft sofort und beim Connect bzw. Disconnect lassen sich noch Befehle aufrufen.
https://github.com/mikebrady/shairport-sync
Da ist ein Fehler in der default/shareport Datei
ect anstatt etc
Hallo Zusammen!
Ich bin ganz neu am Raspberry Pi und würde mir gerne ein 2.1 PC-Lautsprecher-Set umbauen, um sie als Airplay-Lautsprecher zu nutzen. Das Ganze soll kein High-End Produkt werden, sondern eine kleine Airplay-Station, wo ich Hörbücher und ein bisschen Musik, als Hintergrundbeschallung, hören kann.
Meine Frage ist, ob ich das ganze auch mit einem Raspberry Pi ZERO W und entsprechendem HiFi-Stereo-HAT realisieren kann oder ob der ZERO W dafür zu „schwach“ ist?
Einen HAT von WaveShare WM8960 bekommt man schon recht günstig und der hat neben kleiner Klinke auch noch Lautsprecherausgänge (via Phoenix und mit Stecker für die mitgelieferten Minilautsprecher).
Wenn es geht, sollte ich doch die Anleitung 1 zu 1 übernehmen können – der einzige Unterschied wäre dann, dass ich den Raspberry irgendwie dazu bringen muss das Audiosignal über den HAT auszugeben, anstatt embedded im HDMI-Datenstrom.
Moin moin
ich bin ebenfalls ein recht neuer pi Nutzer
Habe shairport installiert und soweit funktioniert auch alles über die internen ausgänge.
Da die Qualität jedoch über den onboard Aux-Anschluss leider ziemlich schlecht ist (knacken während Musik) habe ich eine externe Soundkarte angeschloßen. Hier habe ich folgendes Problem:
Die Musik wird beschleunigt wiedergegeben und alle ca. 10-15 sek untebrricht die Musik kurz. Sowohl mein iPhone als auch mein Mac zeigen die normalen Geschwindigkeiten an.
Ich habe nun schon herausgefunden dass die Soundkarte automatisch mit 48000hz arbeitet. Ich glaube hier liegt das Problem (korrigiert mich wenn nicht)
Das ändern von: /usr/share/alsa/alsa.conf
defaults.pcm.dmix.rate von 48000 zu 44100 hat nichts bewirkt.
und unter /proc/asound/card1/stream0 bekomme ich die Werte nicht gespeichert.
Über den Onboard Aux und HDMI funktioniert die Wiedergabe in normalen Tempo und ohne Probleme. Nur die externe Soundkarte hat dieses Problem. :/
Ich bin für jede Hilfe dankbar.
Hi, hat alles soweit gut geklappt nur beim Letzten Punkt habe ich ein Problem
sudo service shairport start
Job for shairport.service faild because the control process exited with error code.
See „systemctl status shairport.service“ and „journalctl -xe“ for details.
journalctl -xe:
User shairport does not exist
Das Problem hatte ich auch (Raspberry Pi 3 B+). Du musst die Konfigurationsdatei (/etc/init.d/shairport) ändern. Dort steht „User=shairport“ , welcher nicht gefunden wird. Einfach „pi“ als User eintragen. Es reicht nicht die Werte im default Ordner zu ändern (sudo nano /etc/default/shairport).
Ich hoffe, dass ich helfen konnte.
Hallo zusammen!
Wenn ich
shairport -a ‚pi‘
eingebe, dann bekomme ich die Fehlermeldung:
Starting Shairport 1.1.1-23-gd65b8e8
FATAL: could not bind any listen sockets!
Shutting down…
Hat da jemand eine Idee für mich?
Beste Grüße und vielen Dank im Voraus!
Habe dieses coole Tutorial erst jetzt gefunden.
Wenn es noch hilfreich ist, einfach die Gänsefüßchen “ weglassen.
Den selben Fehler hatte ich auch.
Hallo,
bei
sudo make install
bekomme ich folgende Fehlermeldung:
/bin/sh: 2: Syntax error: „)“ unexpected (expecting „fi“)
Makefile:55: recipe for target ‚__version_file‘ failed
make: *** [__version_file] Error 2
Kann mir jemand helfen?
Hey, du hast dich bei „sudo nano /ect/default/shairport“ verschrieben. Muss ja „etc“ heißen.
Kann ich über den Raspberry auch über ein Script (z.B. Python) Pause/Weiter befehle geben?
veraltet. geht zum fork shairport-sync über:
https://github.com/mikebrady/shairport-sync
die readme befolgen. ist sehr einfach zu installieren.
Hilfe… Wie bekomme ich die alte Installation wieder weg, wenn ich zu shairport-sync wechseln will???
Hi,
ich bin neuer Raspberry-Pi Nutzer und hab mit dem Projekt angefangen. Bei mir wird der neue Name nicht übernommen sondern der Standart Name des Raspberry. Ich nutze den Raspberry B+ 2
wird beim Entwickler auf seiner github Seite erklärt. Readme lesen da ist alles beschrieben
Hallo,
danke für die Anleitung, bei der Einrichtung hat sich ein Buchstabendreher eingeschlichen:
sudo nano /ect/default/shairport
vs
sudo nano /etc/default/shairport
Danke nochmals!
Echt cooles Projekt! Ich würde es gerne nachmachen und zusätzlich ein Relais ansteuern, dass die Anlage ein-/ausschaltet, je nachdem ob Musik läuft bzw. ob eine Verbindung steht. Einer eine Idee wo ich die ein zwei Zeilen im Programm ergänzen muss?
Vielen Dank im Voraus.