AirPlay egy Raspberry Pi segítségével: legyen a régi hangfalad is AirPlay-képes!

Ez a cikk legalább 1 éve frissült utoljára. A benne szereplő információk a megjelenés idején pontosak voltak, de mára elavultak lehetnek.

Amikor egy kis időm engedi, szoktam “szórakozni” a Raspberry Pi-vel, mely tulajdonképpen egy mini számítógép rengeteg csatlakozóval. Tegnap éjjel szembe jutott, hogy a régi Harman-Kardon hangfalamat milyen jó lenne átrakni egy másik szobába, úgy, hogy a jelenlegi mellett ott is szóljon a zene.

IMG_3994

Az AirPlay-t gondolom mindenki ismeri. Segítségével Wi-Fi-n keresztül tudunk képet és hangot átvinni az Apple termékeinkről az arra képes eszközökre. Lényegében 10-12.000Ft-ból tudunk csinálni egy kis eszközt, amivel AirPlay-képessé tehetünk bármilyen hangfalat, Hi-Fi-t. Én leginkább csak zenét szoktam hallgatni AirPlay-en keresztül. Ebben a cikkben bemutatom, hogy a Raspberry Pi-ből hogyan lehet AirPlay-szervert készíteni.

Sajnos a Raspberry Pi sosem volt “egy gombos” megoldás. Mindig trükközni kell és utánaolvasni, ha valamit el szeretnénk vele érni, ellenben remekül lehet tanulni belőle. Amennyiben nem értesz egyáltalán a Linuxhoz, sajnos ez a bejegyzés sem lesz neked világos. Mindenképp azoknak ajánlom, akik korábban már dolgoztak Linux rendszeren, illetve picit is ismerik a Raspberry Pi-t. Arra cikk nem fog kitérni, hogy hogyan építs fel a Pi-re egy Debian rendszert, csak magára az AirPlay-funkció telepítésre. Így is elég hosszú. 🙂

airplay-kit

Hardver tekintetben szükségünk lesz egy Raspberry Pi-re, ami jack ajzattal van ellátva, illetve a szokásos kábelekre, memóriakártyára és így tovább…

Mondanom sem kell, mielőtt nekikezdünk, legyen friss a rendszer apt-get update és upgrade paranccsal, illetve az openssh, openssl, gcc legyen felrakva. Vágjunk bele.

Screen Shot 2015-01-31 at 23.30.30

Az alábbi függőségekre lesz szükségünk:

  • avahi-utils
  • build-essential
  • chkconfig
  • git
  • libao-dev
  • libavahi-client-dev
  • libcrypt-openssl-rsa-perl
  • libio-socket-inet6-perl
  • libssl-dev
  • libwww-perl
  • pkg-config

Telepíteni így tudjuk őket:

sudo apt-get install avahi-utils build-essential chkconfig git libao-dev libavahi-client-dev libcrypt-openssl-rsa-perl libio-socket-inet6-perl libssl-dev libwww-perl pkg-config

A függőségek telepítése után ellenőrizzük, hogy a már bedugott hangfal működik és Rasberry Pi is a megfelelő portot használja:

speaker-test -t sine

Amennyiben hallunk egy sípoló hangot, minden rendben van, ha nem akkor indítsuk el az audio mixert:

alsamixer

Screen Shot 2015-01-31 at 23.37.49

Állítsuk be benne, hogy melyik porton jöjjön ki a hang, maximum próbáljuk ki még egyszer.

Ezután, le kell töltenünk a ShairPort-ot, az fog nekünk audio AirPlay-szervert szolgáltatni, hogy bármelyik Apple eszközünkkel rácsatlakozhassunk.

Menjünk sorban:

git clone -b 1.0-dev git://github.com/abrasive/shairport.git
cd shairport
sudo ./configure && sudo make && sudo make install

Screen Shot 2015-01-31 at 23.33.23

Valahogy így kell kinéznie.

Screen Shot 2015-01-31 at 23.35.37

Ezután pedig a futtatás következik:

shairport -a ‘Szifon.com-AirPlay’

Nekem probléma nélkül elindult, és működött is elsőre. Most pedig a következő feladat, hogy ez automatikusan elinduljon a Raspberry Pi minden indításkor. Ehhez a következő parancsokra van szükségünk:

Amennyiben továbbra is a shairport mappában vagyunk, adjuk ki ezt:

sudo cp scripts/debian/init.d/shairport /etc/init.d/shairport
sudo chmod +x /etc/init.d/shairport
sudo update-rc.d shairport defaults

Majd pedig ebben a scriptben át kell szerkeszteni a következő sorokat:

Írjuk át ezt:
DAEMON=/usr/bin/shairport
erre:
DAEMON=/usr/local/bin/shairport

Illetve,

Írjuk át ezeket:
USER=shairport
GROUP=nogroup
erre:
USER=pi
GROUP=pi

Ezek után már csak át kell neveznünk az AirPlay szervert, ha szeretnénk, ehhez a NAME és az AP_NAME sort szerkesszük kedvünkre, viszont szóköz ne legyen benne.

Röviden ennyi lenne, ezzel a leírással a Raspberry Pi-n az AirPlay kizárólag hang átvitelére alkalmas. Ha videót is szeretnél, akkor az XBMC-t érdemes telepíteni, abban alapból benne van az AirPlay is. Korábban már Time Capsule-t is készítettem a Raspberry Pi-ből, ha esetleg igény van rá, akkor azt is megírnám nektek.

Ehhez a bejegyzéshez az alábbi weboldalakat használtam fel:

Ezek még érdekelhetnek:


  1. @hobord: Francba 🙁 amúgy pedig azt olvastam hogy a videó egy HTTP folyamat kódolás nélkül, míg a hang pont az ellenkezője encryptálva megy át, tehát a videót egyszerűbben meg lehet oldani szerintem.

  2. Nagyon köszönöm ezt a cikket! Mar régóta foglalkoztat a Pi. Légy oly kedves és írj cikket a videó átvételéről is! Vagy bármi egyéb megoldásról, amihez az almának kicsit is köze van

  3. Egy ilyen kütyüvel használva az erősítőm, akkor a egy YouTube videónál csak a hangot fogja átküldeni?
    Úgy lenne a jó, ha a videó menne az iPad-en és a hang meg menne az erősítőre.
    Egyébként köszi a leírást. 🙂

  4. Nekem meg most elkezdett komment írásakor kilépni az alkalmazásotok. A lista megnyitásakor nem lépett ki, csak üres listát kaptam, semmi kiválasztható nem volt benne. Lesz valamikor frissítés?
    Mobilon is le lehetne tölteni amúgy, mert az app tárolójába mehetne, ahonnan iTunes vagy egyéb fájlkezelővel ki lehet szedni, mint sok más app esetében.

  5. Nekem sikerult kb fel fel eve osszehoznom az Airplay mirroring-ot raspberryvel, de elegge instabil volt. Meg hasznalat kozben a delay egyre nagyobb lett. Kb 1 delutan volt mire osszehoztam, aztan 2 napig probalgattam, meg csiszolgattam rajta hogy jobb legyen de nem jott ossze. Mokazni jo volt vele, de sajnos gyakorlatilag nem tul hasznalhato lett a vegeredmeny. Aztan azota nem kovettem hogy lett-e valami elorelepes, optimalizaltak-e rajta.
    Szerintem maga a raspberry hardvere keves hozza.

  6. Megcsinaltam en is, minden megy frankon, de ha HDMI helyett az analog porton tolom ki a hangot, akkor van egy statikus zaj. Ez esetleg masnal is jelentkezik? nem eletbevago, de ha orvosolhato, akkor megszuntetnem 😀

  7. Köszi a leírást, ez legalább iOS 9 és El Capitan alatt is működik (ahogyan a többi fellehető megoldás eddig nem). A Time Capsule leírást viszont nagyon várom!

  8. @b3nk3: Tapasztalatom szerint a zaj erősen eszközfüggő. Ha a TV-re kötöm 4 pólusú jack-kel, akkor zajos, míg a sztenderd 3 pólusú jack-RCA kábellel az erősítőre kötve a legkevésbé sem. Ez az asszimetrikus jel sajátossága (testelt negatív), ami galvanikus leválasztással (Di-Box) megszüntethető.

Írd le a véleményedet! (Moderációs elveinket ide kattintva olvashatod.)

Hozzászólás írásához be kell jelentkezned!