Configuration PulseAudio centralisée

10

Je souhaite effectuer une configuration pour que tous mes ordinateurs et mon téléviseur utilisent un seul 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 une entrée de carte son et que d'autres systèmes utilisent PulseAudio pour accéder à l'acoustique via le réseau. Cette configuration est-elle possible?

evgeniuz
la source

Réponses:

6

Partiellement - facile avec les clients Linux, délicat avec Windows.


Avec les clients Linux, c'est simple: il suffit de définir $PULSE_SERVERl'adresse du serveur multimédia et de copier le ~/.pulse_cookiefichier d'authentification.

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.pasur 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 vieux pilote WinESD et le module de compatibilité ESounD de Pulse , ou l' lincooutil tel que décrit dans ce billet de blog ; voici une version simplifiée avec plinkde PuTTY à la place de Cygwin:

linco -B 16 -C 2 -R 44100 | utilisateur de plink  @ mediaserver "pacat --playback"

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

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

user1686
la source
1
Je savais que c'était possible avec Linux et ma préoccupation concernait principalement Windows. Merci pour la suggestion, je vais l'essayer.
evgeniuz
@Shark: J'ai également trouvé cet article suggérant l'utilisation de linco. Voir mon article mis à jour.
user1686
En fait, il y a un client / serveur Windows Pulseaudio depuis un certain temps maintenant. Téléchargez-le et exécutez pulseaudio.exe, puis définissez PULSE_SERVER = ipaddress-of-windows. Personnellement, je cherche comment régler cela de manière permanente.
airtonix
@airtonix: une version plus récente que 1.1?
user1686
1
@grawity nope, c'est la version que j'utilise. Sur mon bureau Ubuntu 13.10, je viens de le modifier /etc/pulse/client.conf, de le décommenter default-server, de le définir sur l'adresse IP de mon ordinateur portable Windows et de le lancer pulseaudio.exesur mon ordinateur portable Windows. Avec la synergie, cela finit par être très agréable.
airtonix
3
  1. Téléchargez la dernière version audio à impulsions sur http://www.freedesktop.org/wiki/Software/PulseAudio/Ports/Windows/Support/ (la dernière est la v1.1 au moment de la rédaction).
  2. décompressez où vous voulez. exemple:c:\pulse\
  3. ouvert 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 pouvez éventuellement faire de même avec ~/.pulse/client.conf), assurez-vous qu'il default-servern'est pas commenté et défini sur l'adresse IP de votre machine Windows (celle sur laquelle vous souhaitez recevoir l'audio)
  6. redémarrez pulseaudio sur la ou les machines linux, ubuntu pulseaudio -k:, pour les autres distributions, j'imagine que vous redémarreriez le serveur comme vous en faites une autre sudo service pulseaudio restart.
  7. Sur votre machine Windows, lancez pulseaudio.exe. Cela devrait ouvrir un simple terminal avec quelques avertissements (rien à craindre de mon expérience).
  8. Sur votre ou vos machines Linux, lancez quelque chose qui lit du son.
airtonix
la source
Hé, cela a listen=127.0.0.1fonctionné parfaitement avec load-module module-simple-protocol-tcp ...montré sur [Simple Protocol Player] (kaytat.com/blog/?page_id=301) pour obtenir le son d'un chroot dans Android via Pulse Magic ... la prochaine étape est SonicPisur Android pour la composition musicale scriptée mobile. Grâce à @airtonix, mes tests seront un peu plus sécurisés.
S0AndS0