• # Retour d'expérience PulseAudio vs Shairport / Shairplay

    Posté par (site web personnel) . En réponse au journal Une installation hi-fi de qualitay avec le Raspberry Pi (Arch, Pulseaudio, Shairport, trolls inside). Évalué à 3.

    J'ai constaté une différence nette de qualité entre le protocole PulseAudio (TCP) et le protocole AirPlay (en configuration UDP), en faveur d'AirPlay.

    Je n'utilise pas shairport comme indiqué dans le journal mais shairplay et je viens de réussie a avoir une qualité bien meilleure que le protocole tunnel natif de PulseAudio. Avec PulseAudio, j'ai rencontré quelques problèmes de sont qui saute, et surtout, les clients (comme le lecteur vidéo) peuvent se désynchroniser rapidement, ou même planter complètement. Surtout si la vidéo est lente. je pense que cela est causé par le protocole TCP, et je n'ai pas eu les mêmes problèmes avec des protocoles UDP.

    PulseAudio permet aussi de faire du RTP (Realtime Transfer Protocol, un protocole au dessus de l'UDP). Avec, tout fonctionne presque a merveille, a part une latence constante et assez élevée (surtout si on fait de la vidéo). Mais si la latence n'est pas un problème, je pense que c'est une excellente solution, et en plus, elle permet a plusieurs clients de jouer le flux. Intéressant donc.

    Finalement, j'ai utilisé le paquet shairplay que je lance sur le serveur avec la commande suivante:

    shairplay --ao_driver=pulse --ao_devicename=0
    Le problème principal, c'est que shairplay communique en UDP, et pour le moment, PulseAudio avec son module raop ne communique qu'en TCP. De base, PulseAudio n'est donc pas compatible avec shairplay. Sur le PC qui envoie le son, j'ai donc installé le paquet AUR pulseaudio-raop2-v2-v5.99.1-git parmi les 3 paquets AUR implémentant RAOP2. Le son se fait alors entandre sur le PC shairplay.

    J'ai testé avec plusieurs lecteurs multimédia, et je n'ai eu qu'un seul problème: le plugin Flash NPAPI (celui de Firefox, le plugin Flash de Google Chrome fonctionne bien). Avec Flash, j'ai un son très haché. En HTML5, pas de problème.

    Pour utiliser le plugin Flash de Chrome, j'ai installé le paquet AUR freshplayerplugin-git qui combiné au plugin Flash de Chrome permet d'avoir un son correct dans Firefox lorsque les sites utilisent encore un player Flash.

    Je teste depuis ce matin, je n'ai pas remarqué de gros problèmes. Peut être une légère instabilité sur le PC qui joue les vidéos, sans doute a cause de la version instable de PulseAudio. Mais sinon, ça marche relativement bien.

    Le réseau testé est du 100Mbits sur un switch tout simple. Pas de Gigabit ou quelque chose de particulier.