Comment diffuser de la musique sur le réseau vers plusieurs ordinateurs?

78

Résultats

Je veux pouvoir aller d'une pièce à l'autre et entendre la même chanson. Comme si vous écoutiez la radio dans toutes les pièces.

Je veux cet effet mais je veux écouter ma propre musique, est-ce que cela peut être fait?

Matériaux

  • Ordinateur portable Ubuntu.
  • Ordinateur Mac.

Première alternative

Alvar
la source

Réponses:

48

Oui, avec pulseaudio cela peut être facilement fait. Vous devrez installer et exécuter paprefs pour Installer paprefs que vos périphériques audio soient disponibles sur le réseau.

entrez la description de l'image ici

entrez la description de l'image ici

Ces paramètres permettent la publication des sources sonores et des puits sur le réseau, idéalement sur un autre serveur Pulseaudio.

Si vous avez la configuration de votre serveur sans le gestionnaire de bureau, vous devrez d'abord installer un système audio (voir cette question ). Vous pouvez ensuite éditer /etc/pulse/default.paces lignes sans commenter dans la section Accès réseau :

load-module module-esound-protocol-tcp
load-module module-native-protocol-tcp
load-module module-zeroconf-publish

Si vous souhaitez utiliser l'expéditeur RTP, supprimez la mise en commentaire de ces lignes dans la section du module d'envoi RTP :

load-module module-null-sink sink_name=rtp format=s16be channels=2 rate=44100 description="RTP Multicast Sink"
load-module module-rtp-send source=rtp.monitor

Le serveur pulseaudio doit être démarré en tant que démon pulseaudio -Ds'il n'est pas encore en cours d'exécution. Pour optimiser la qualité sonore, les réglages /etc/pulse/daemon.confpeuvent être adaptés aux besoins personnels.

Une autre méthode pour diffuser du son sur votre réseau serait de configurer un serveur Icecast (voir cette question ).

Takkat
la source
14
Dans le cas d'un client sans tête (par exemple, un Pi avec des haut-parleurs dans les armoires de ma cuisine), il serait utile de savoir comment le configurer complètement via des fichiers de configuration et / ou des commandes shell.
Raphael
Ce guide est assez générique pour le suivre sur la CLI Ubuntu. wiki.archlinux.org/index.php/PulseAudio/…
goetzc
11

Votre meilleure option s'appelle Music Player Daemon (mpd).

https://secure.wikimedia.org/wikipedia/en/wiki/Music_Player_Daemon

C'est une application client-serveur. Vous stockez votre musique sur le serveur, puis vous vous connectez avec vos clients (plusieurs personnes peuvent le faire en même temps) et vous contrôlez le serveur.

Il est déjà dans Ubuntu, juste apt-get install mpd

Et aussi une bonne documentation: https://wiki.archlinux.org/index.php/Mpd

MPD peut diffuser de la musique en continu afin que vous puissiez avoir beaucoup de clients (ou d’orateurs si vous souhaitez les appeler) pour écouter de la musique.

Mais n'attendez pas vraiment de bonne qualité. Le streaming gâte le son (peu importe si vous utilisez mpd ou pulseaudio). C'est une bien meilleure idée de connecter de vraies enceintes au serveur et d'utiliser les ordinateurs portables uniquement pour le contrôler.

loxs
la source
2
Ma maison est trop grande pour utiliser des câbles, c'est pourquoi je veux diffuser le son.
Alvar
Vous pouvez écouter en continu, ne vous inquiétez pas pour la qualité, cela n'aura pas beaucoup d'importance, étant donné que votre connexion sans fil est assez puissante
Rahul Prasad
Comment le streaming gâche-t-il la qualité du son? Le WiFi est un moyen de transfert numérique. MPD effectue-t-il une compression sans perte? Je ne pense pas que cela soit nécessaire pour les réseaux WiFi actuels.
nvd le
Wow, une telle vieille réponse. Je ne m'en souviens même plus, car je n'ai pas utilisé MPD depuis cette époque.
loxs
11

Je n'ai rien eu à faire hors de l'ordinaire. J'ai des netbooks jumeaux avec PulseAudio et pratiquement aucun matériel de nom d'Intel. Comment je l'ai mis en place est allé un petit quelque chose comme ça.

lancez paprefs sur votre serveur et votre client. Sur le serveur, assurez-vous que les paramètres de multidiffusion sont activés et que les bits du serveur sont vérifiés. ainsi entrez la description de l'image ici

et le bit multicast entrez la description de l'image ici

Sur le client, activez le bit relatif à la recherche de périphériques compatibles réseau entrez la description de l'image ici et définissez votre périphérique de sortie sur le périphérique réseau virtuel via pavucontrol entrez la description de l'image ici

alto vous devriez avoir un peu de magie maintenant

puissance paresseuse
la source
1
Sauf que cela n'a rien à voir avec RTP.
Kirelagin
Merci pour ce bon tutoriel. J'ai coché toutes les cases, sauf que je ne peux pas "configurer mon périphérique de sortie sur le périphérique réseau virtuel via pavucontrol". Si je comprends bien, cela se fait via le bit où, dans votre capture d'écran, il est écrit "Internal Audio Analog Stereo on charmes @ nano". Mais sur mon système, il n’existe aucun bouton de ce type. Qu'est-ce que je fais mal?
user69748
Je n'ai pas vérifié ces instructions depuis 2011, il est donc tout à fait probable que les paramètres du démon audio Pulse aient changé.
LazyPower
Ce que j'ai maintenant (après le redémarrage) est un canal séparé appelé "pulseaudio" qui semble être acheminé vers mon client. Cependant, aucun son ne le traverse. Et mon canal Rhythmbox ne mentionne toujours pas "utilisateur @ client".
user69748
1

Avec cette solution, vous pouvez diffuser le son de votre système où vous le souhaitez.
La clé réside ici dans les capacités de bouclage ALSA. vous devez donc d'abord activer le périphérique de bouclage dans ALSA, qui apparaîtra dans le contrôle du volume PulseAudio en tant que périphérique d'entrée (et de sortie également).

sudo modprobe snd_aloop

Ce périphérique peut ensuite être ajouté à un serveur MPD:

mpc add alsa://hw:1,1

où hw: 1,1 est le périphérique d'entrée en boucle qui peut être répertorié avec la commande aplay -l

alors vous devez configurer un plugin de sortie http pour le MPD. l'exemple suivant ressemblerait à/etc/mpd.conf

 audio_output {
    type            "httpd"
    name            "My HTTP Stream"
    encoder         "vorbis"          # optional, vorbis or lame
    port            "8000"
    bind_to_address "192.168.1.38"               # optional, IPv4 or IPv6
    quality         "5.0"                   # do not define if bitrate is d$
#   bitrate         "128"                   # do not define if quality is d$
    format          "44100:16:1"
    max_clients     "0"                     # optional 0=no limit
 }  

c'est ça. Sélectionnez le périphérique de repérage pour votre source audio dans l'onglet Lecture du contrôle du volume.
Enfin, vous pouvez utiliser VLC ou tout autre moteur de rendu de flux au point de destination en utilisant l’adresse httpd: http://192.168.1.38:8000
Cette réponse est également disponible ici.

laplasz
la source
0

Je ne suis pas sûr que DLNA / UPnP permette de réaliser quelque chose comme cela, car je ne le connais pas moi-même, mais vous pouvez créer quelques liens ici au cas où cela vous aiderait:

Bien qu'un résultat de recherche rapide suggère qu'il n'est pas possible de synchroniser ...

Ilari Kajaste
la source
2
DLNA n'est pas recommandé, car il ne peut pas synchroniser la lecture.
Sparhawk
0

Il n'y a pas encore de bonne solution. Il existe AVB mais sa prise en charge pour 802.11 est limitée à la synchronisation temporelle.

Thihai
la source
-2

Si vous souhaitez diffuser sur un téléphone Android, vous pouvez utiliser Foobar2000 sur le serveur et BubbleUPnP (logiciel payant) sur le client.

  1. obtenir du vin
  2. obtenir foobar_v1.2.5.exe
  3. $ wine foobar2000_v1.2.5.exe
  4. suivant, suivant, suivant ... :)
  5. obtenir foo_upnp
  6. extraire dans le dossier composants de foobar2000 (qui est probablement dans ~/.wine/drive_c/Program Files/)
  7. lancer foobar2000
  8. Allez à Bibliothèque → Configurer → Lecture → Sortie → Périphérique et sélectionnez «Sortie nulle».
  9. assurez-vous de ufwne pas bloquer le trafic correspondant
  10. dans BubbleUPnP:
    1. allez dans Périphériques → Bibliothèques et sélectionnez le serveur foobar2000
    2. dans "Library", sélectionnez "Playback Stream Capture"

L’approche a l’avantage que si vous vous arrêtez sur Android, vous accumulerez un tampon (puisque le serveur est toujours en train d’envoyer).

Testé sur Ubuntu (version Wine 1.5.28-0ubuntu1~ppa1) et Windows.

Janus Troelsen
la source