Comment transférer le son d'un ordinateur à un autre via le LAN?

11

J'ai deux ordinateurs. L'ordinateur A exécute Ubuntu 11.10 avec Gnome Clasic. L'ordinateur B exécute Mythbuntu 11.10. L'ordinateur B dispose d'un système audio numérique doux.

Je veux jouer de la musique de Banshee sur l'ordinateur A, mais la sortie audio est envoyée sur le LAN et sort sur les haut-parleurs de l'ordinateur B.

J'ai trouvé cette question qui indiquait que je devais utiliser quelque chose appelé "paprefs" pour y parvenir. J'ai donc installé des paprefs puis dans la boîte de dialogue "Network Server", j'ai sélectionné ces paramètres:

paprefs

Et puis ... je n'ai aucune idée de ce qui est censé se passer. J'ai vérifié la page d'accueil des paprefs, et tout ce qu'ils disent sous Documentation est "Il n'y a pas grand chose à dire. Il suffit d'exécuter les paprefs et de voir par vous-même."

Je ne vois rien qui se passe ou de quelque manière que ce soit, je suis censé établir la connexion entre l'ordinateur A et l'ordinateur B.

Comment est-ce censé fonctionner? Quelqu'un peut-il fournir des instructions claires sur ce que l'on fait pour établir réellement la connexion?

Idéalement, l'espoir est que je puisse avoir une configuration qui me permette de toujours jouer certaines applications, comme Banshee, sur le LAN en utilisant le système audio de l'ordinateur B. En d'autres termes, une fois configuré, il s'agit de la valeur par défaut et il n'est pas nécessaire de le reconnecter manuellement à chaque fois.

Questionneur
la source

Réponses:

9

La méthode la moins compliquée pour envoyer de l'audio d'un serveur Pulse Audio à un autre via le LAN est d'utiliser la fonctionnalité RTP / Multicast que vous pouvez configurer à l'aide de paprefsInstaller des paprefs .

Sur l'expéditeur:

capture d'écran de paprefs montrant "activer l'expéditeur multicast / rtp" cochée et "envoyer l'audio des haut-parleurs locaux" sélectionnée

Choisissez votre carte son locale ou choisissez un appareil séparé que vous pouvez sélectionner comme sortie audio dans les Préférences Audio .

Sur le récepteur:

capture d'écran de paprefs montrant "activer le récepteur multicast / rtp" vérifié

Ce faisant, l'audio sera envoyé de l'expéditeur au récepteur via votre réseau local.

Takkat
la source
Merci pour ça. J'ai fait ces réglages comme vous l'avez décrit, mais si je joue Banshee sur l'expéditeur, je ne l'entends pas sur le récepteur. Je ne vois pas non plus de périphérique audio réseau dans pavucontrol ni aucun paramètre de son gnome. N'y a-t-il pas d'autres étapes à suivre?
Questionneur
Je l'ai trié. J'ai dû: 1. Redémarrer les deux machines. 2. Sur la machine de l'expéditeur, accédez aux paramètres audio et sous l'onglet "Sortie", sélectionnez le périphérique audio réseau.
Questionneur
Je viens de faire ça. J'ai un retard énorme et cela a rendu le PC du serveur vraiment lent ... peut-être quelque chose que je fais mal, mais comme cela implique seulement de cocher deux cases, je ne sais pas vraiment ce qui pourrait mal tourner.
Greg
@Greg: en fonction de votre réseau et du contenu audio (bitrate!) Cette méthode de streaming peut être assez exigeante. Dans le cas où vous avez des problèmes, essayez de réinitialiser pulseaudio avec pulseaudio -kcette aide de temps en temps.
Takkat
Pulseaudio a une priorité "très élevée". C'est peut-être la raison pour laquelle le serveur est lent ...
Rodrigo
2

L'exemple ci-dessous montre comment créer un tunnel TCP pulseaudio pour transmettre le son d'un ordinateur alphaà un autre beta. Dans mon cas, les deux ordinateurs exécutent Ubuntu 14.04.

Sur alpha(l'ordinateur source), ajoutez les lignes suivantes à /etc/pulse/default.pa:

.fail
load-module  module-tunnel-sink  sink_name=beta  server=tcp:IP_ADDRESS_OF_BETA:4713
.nofail

(Choisissez une valeur unique pour sink_name. J'ai choisi arbitrairement d'utiliser la valeur beta.)

Sur beta(l'ordinateur de destination), ajoutez la ligne suivante à /etc/pulse/default.pa:

load-module  module-native-protocol-tcp  auth-ip-acl=127.0.0.1;LAN_NAME

Dans ce qui précède, LAN_NAMEet IP_ADDRESS_OF_BETAsera spécifique à vos ordinateurs et à votre réseau local. Par exemple, ils peuvent être:

LAN_NAME            =  192.168.1.0/24
IP_ADDRESS_OF_BETA  =  192.168.1.10

Après avoir effectué les modifications ci-dessus, redémarrez pulseaudio, d'abord beta, puis sur alpha. L'ordre est important. Je redémarre pulseaudio avec pulseaudio --kill. Je cours en pulseaudio --killtant que mon utilisateur UID(pas en tant que root), car pulseaudio fonctionne déjà en tant que mon personnel UID.

Si tout a fonctionné correctement, vous devriez maintenant voir le tunnel dans l' Output Devicesonglet pavucontrolon alpha. Lorsqu'une source audio est en cours de lecture, vous devriez pouvoir acheminer la source vers le tunnel dans l' Playbackonglet pavucontrolon alpha.

Tant que le tunnel est intact, vous devez également être en mesure de voir le tunnel sur l' Playbackonglet pavucontrolsur beta. Si le tunnel disparaît, redémarrez pulseaudio d'abord beta, puis ensuite alpha. Le tunnel n'est créé qu'au pulseaudiodémarrage alpha.

Remarque 1: cet exemple suppose que pulseaudio fonctionne sur alphaet beta. Depuis 2016, pulseaudio fonctionne par défaut sur Ubuntu, et depuis des années.

Remarque 2: cet exemple n'utilise pas la mise en réseau Avahi Zero-configuration. Avahi peut être activé par défaut sur Ubuntu, mais j'ai désactivé Avahi sur mes systèmes. Sur mon réseau local beta(l'ordinateur de destination) a toujours la même adresse IP et je connais cette adresse.

Remarque 3: ce qui précède auth-ip-aclaccorde l'accès à n'importe quel périphérique sur le LAN. Pulseaudio prend également en charge d'autres méthodes d'authentification (plus sécurisées). J'utilise auth-ip-aclpour simplifier la configuration.

Plus d'informations peuvent être trouvées sur les pages suivantes:

/raspberrypi/8621/how-to-set-up-a-pulseaudio-sink https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Network/# index2h2 https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules/#index14h3

mpb
la source