Configuration centrée de PulseAudio

Je veux faire une configuration, de sorte que tous mes ordinateurs et la télévision utilisent un système audio. Comme ça:

Entrez la description de l'image ici

Lorsque le serveur multimédia est connecté à l'acoustique et que le téléviseur est connecté via l'entrée de la carte son et que d'autres systèmes utilisent PulseAudio pour accéder à l'acoustique via le réseau. Cette configuration est-elle possible?

Partiellement – facile avec les clients Linux, difficile avec Windows.


Avec les clients Linux, cela est simple: il suffit de régler $PULSE_SERVER sur l'adresse du serveur multimédia et de copier le fichier d'authentification ~/.pulse_cookie .

 PULSE_SERVER=tcp:mediaserver.home tcp6:mediaserver.home 

Bien sûr, assurez-vous que PulseAudio sur le serveur multimédia a chargé les modules requis; La plupart d'entre eux peuvent être activés via paprefs , ou vous pouvez les charger via ~/.pulse/default.pa sur le serveur multimédia:

 .include /etc/pulse/default.pa # required: load-module module-native-protocol-tcp load-module module-simple-protocol-tcp # needed if you use WinESD: load-module module-esound-protocol-tcp # optional, might be useful if you use Avahi: load-module module-zeroconf-publish 

Il n'y a pas encore de client PulseAudio pour Windows, bien que l'on puisse utiliser le très ancien pilote WinESD et le module de compatibilité ESounD de Pulse, ou l'outil linco comme décrit dans cette publication du blog ; Voici une version simplifiée avec plink de PuTTY à la place de Cygwin:

 Linco -B 16 -C2 -R 44100 |  Plink user @ mediaserver "pacat --playback"

Si vous utilisez iTunes, vous pouvez exécuter Shairport sur le serveur multimédia, ce qui fera apparaître sur iTunes comme AirPort.

(En fait, l'utilisation de Shairport avec les clients PulseAudio (via module-raop-discover + module-raop-sink ) pourrait utiliser moins de bande passante que le protocole Pulse non compressé, mais malheureusement, il existe des incompatibilités qui empêchent que cela fonctionne.)

  1. Téléchargez la dernière version audio impulsionnelle de http://www.freedesktop.org/wiki/Software/PulseAudio/Ports/Windows/Support/ (la dernière version v1.1 est en cours d'écriture).
  2. Déballez à un endroit que vous voulez. Exemple: c:\pulse\
  3. Ouvrir c:\pulse\etc\default.pa
  4. Assurez-vous d'avoir quelque chose de similaire à:
    • load-module module-native-protocol-tcp listen=0.0.0.0 auth-anonymous=1
    • set-default-sink output
  5. Sur votre (vos) machine (s) linux, ouvrez /etc/pulse/client.conf (vous pourriez faire la même chose avec ~/.pulse/client.conf ), assurez-vous que default-server est uncommené et configuré sur l'adresse IP de votre Machine Windows (celle que vous souhaitez recevoir audio)
  6. Redémarrez pulseaudio sur la (les) machine (s) linux, ubuntu: pulseaudio -k , pour d'autres distros, j'imagine que vous recommenceriez le serveur comme si vous faites un autre sudo service pulseaudio restart .
  7. Sur votre machine Windows, lancer pulseaudio.exe . Cela devrait ouvrir un terminal simple avec quelques avertissements (rien à craindre de mon expérience).
  8. Sur votre (vos) machine (s) Linux, lancer quelque chose qui joue du son.