Ouvrir le menu principal

MacGeneration

Recherche

Macberry Pi : utiliser un Raspberry Pi comme récepteur AirPlay

Antoine Collin

vendredi 22 mars 2013 à 15:00 • 33

Matériel

Après le Raspberry Pi en tant que « Time Capsule » et le Raspberry Pi en tant que serveur AirPrint, attaquons-nous à une solution souvent demandée : le Raspberry Pi en tant que récepteur AirPlay.



Macberry Pi



AirPlay audio



Nous allons ici nous intéresser à ce qu'Apple a longtemps appelé AirTunes : AirPlay audio. Cette technologie est apparue avec la première borne AirPort Express en 2004 et permettait — à l'origine — de diffuser de l'audio d'iTunes vers la sortie audio d'une borne. Au fil des années, Apple a amélioré la technologie : prise en charge par iOS avec iOS 4.2, prise en charge dans le système avec Mountain Lion, ajout d'autres récepteurs (Apple TV, appareils sous licence, etc.). Techniquement, le fonctionnement est assez simple : l'émetteur encode l'audio en ALAC — un codec sans pertes et open-source — et envoie le son au récepteur, qui décode. AirPlay a l'avantage d'être sans pertes, contrairement au Bluetooth A2DP, par exemple.



ShairPort et le Raspberry Pi



Depuis 2011 et la découverte par rétroingénérie de la clé de chiffrement des bornes AirPort Express, il est possible de proposer des implémentations logicielles de la réception AirPlay. Nous allons utiliser le programme le plus courant, ShairPort.



Nous allons supposer que vous avez un Raspberry Pi fonctionnel, accessible en SSH via Bonjour, ce que nous avons décrit dans les articles précédents.



ssh pi@MacberryPi.local


L'installation



Installons d'abord les paquets nécessaires.



sudo apt-get install git libao-dev libssl-dev libcrypt-openssl-rsa-perl libio-socket-inet6-perl avahi-utils libmodule-build-perl


Ensuite, il faut installer un petit script en Perl pour que la compatibilité iOS 6.x soit totale.



git clone https://github.com/njh/perl-net-sdp.git perl-net-sdp
cd perl-net-sdp
perl Build.PL
./Build
./Build test
sudo ./Build install


Enfin, il faut installer ShairPort, le logiciel qui va permettre à notre Raspberry Pi de devenir un récepteur AirPlay.



git clone https://github.com/hendrikw82/shairport shairport
cd shairport
make
sudo make install


La configuration



Maintenant que ShairPort est installé, les commandes suivantes vont permettre de lancer le logiciel à chaque démarrage.



sudo cp shairport.init.sample /etc/init.d/shairport
cd /etc/init.d
sudo chmod a+x shairport
sudo update-rc.d shairport defaults


Enfin, nous allons éditer un fichier de configuration pour donner un nom à notre récepteur AirPlay.



sudo nano /etc/init.d/shairport


Il suffit de modifier la ligne qui commence par DAEMON_ARGS= de cette façon : DAEMON_ARGS="-w $PIDFILE -a AirMacberryPi". Il faut ajouter le -a ainsi que le nom de votre serveur AirPlay.





La sortie audio



Maintenant, le plus important, la sortie audio. Il existe trois possibilités : utiliser la (mauvaise) sortie audio analogique du Raspberry Pi, utiliser la sortie HDMI du Raspberry Pi ou utiliser une carte son (ou des enceintes) USB. Chaque solution a ses avantages et ses inconvénients.



La sortie jack



La sortie jack a l'avantage de fonctionner avec pratiquement n'importe quelle enceinte, mais sa qualité laisse franchement à désirer. Pour ceux qui veulent l'utiliser, la commande suivante permet de forcer son usage.



amixer cset numid=3 1


La sortie HDMI



Le Raspberry Pi propose une sortie HDMI capable de prendre en charge l'audio. Elle permet de transporter un flux stéréo et de travailler avec un taux d'échantillonnage de 44 kHz ou de 48 kHz en fonction de la source, alors que même l'Apple TV ne travaille qu'en 48 kHz. Pour ceux qui veulent utiliser la sortie HDMI, la commande suivante permet de forcer son usage.



amixer cset numid=3 2


Si jamais la sortie reste silencieuse, une solution existe. Il faut modifier le fichier config.txt et décommenter (en enlevant le #) la ligne #hdmi_drive=2.



sudo nano /boot/config.txt  


Une carte son USB



La troisième solution consiste à utiliser une carte son USB ou des enceintes USB. Attention, les enceintes alimentées par le bus USB risquent de ne pas fonctionner ou de produire un son très faible, le Raspberry Pi étant assez capricieux au niveau de l'alimentation du bus USB. Nous avons testé avec une carte son USB noname achetée sur eBay et avec des enceintes USB LaCie alimentées par une alimentation séparée.



Le plus simple avec une carte son USB est de forcer le système à l'utiliser comme périphérique de sortie par défaut. Il suffit de modifier un fichier, en allant commenter (en ajoutant un #) la ligne options snd-usb-audio index=-2.



sudo nano /etc/modprobe.d/alsa-base.conf


Dans ce fichier, nous pouvons aussi ajouter à la fin la ligne suivante, qui permet dans certains cas d'améliorer la latence.



options snd-usb-audio nrpacks=1


Une fois que c'est fait, il suffit de redémarrer le Raspberry Pi et le serveur AirPlay devrait fonctionner.



sudo reboot

Rejoignez le Club iGen

Soutenez le travail d'une rédaction indépendante.

Rejoignez la plus grande communauté Apple francophone !

S'abonner

Les activités en direct dans macOS 26 ne demandent pas iOS 26 et pourraient fonctionner en Europe

16/06/2025 à 21:23

• 9


Découverte de Téléphone dans iOS 26 : nouvelle interface, appels inconnus, portages sur l’iPad et le Mac

16/06/2025 à 20:35

• 15


France Identité : l’intégration de la carte grise disponible en bêta

16/06/2025 à 19:51

• 97


La publicité s’infiltre finalement dans WhatsApp

16/06/2025 à 19:51

• 45


Comme promis, Apple sort de nouvelles bêtas… pour iOS 18.6 et macOS 15.6

16/06/2025 à 19:20

• 12


Bug amusant ou blague non assumée ? Une mise à jour de Windows 11 ressuscite le son de démarrage de Vista

16/06/2025 à 18:57

• 16


Un triple écran 15,6 pouces, qui promet l'équivalent de 43 pouces en 48:9

16/06/2025 à 18:07

• 3


Shadow, le PC dans le cloud, fait évoluer ses offres avec une pseudo RTX 4060

16/06/2025 à 16:58

• 19


Le PCI-Express 7.0 (256 Go/s) arrive alors que le PCIe 6.0 ne va pas se démocratiser avant 2030

16/06/2025 à 15:39

• 8


Grosse panne sur les réseaux mobile et fixe de SFR

16/06/2025 à 14:54

• 54


Un Steam Deck caché dans un clavier Apple pour l'utiliser avec des lunettes AR

16/06/2025 à 13:00

• 13


En Allemagne, le Schleswig-Holstein va abandonner les outils Microsoft comme Teams ou Office

16/06/2025 à 11:38

• 59


macOS Tahoe change plus facilement la couleur des LED des manettes de PlayStation

16/06/2025 à 10:45

• 14


Choisissez le moniteur parfait pour votre Mac

16/06/2025 à 09:09

• 0


GlassBar opacifie déjà la barre des menus de macOS Tahoe

16/06/2025 à 09:04

• 17


Nouveautés d’iOS 26, macOS Tahoe, Liquid Glass… Tous nos articles pour tout savoir sur la WWDC 2025

16/06/2025 à 06:00

• 12