Come trasmettere musica in streaming su rete a più computer?


78

risultati

Voglio essere in grado di camminare da una stanza all'altra e ascoltare la stessa canzone suonata. Come fai se stavi ascoltando la radio in tutte le stanze.

Voglio quell'effetto ma voglio ascoltare la mia musica, è possibile farlo?

materiale

  • Laptop Ubuntu.
  • Computer Mac.

Prima alternativa

Risposte:


48

Sì, con pulseaudio questo può essere fatto facilmente. Dovrai installare ed eseguire paprefs Installa paprefs che rendano i tuoi dispositivi audio disponibili in rete.

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

Queste impostazioni consentono sia la pubblicazione di sorgenti audio che di sink sulla rete, idealmente su un altro server pulseaudio.

Nel caso in cui il tuo server sia configurato senza desktop manager dovrai prima installare un sistema audio (vedi questa domanda ). È quindi possibile modificare il /etc/pulse/default.pacommento senza commento su queste righe nella sezione Accesso alla rete :

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

Se si desidera utilizzare il commento mittente RTP, queste righe nella sezione Modulo mittente 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

Il server pulseaudio deve essere avviato come demone pulseaudio -Dnel caso in cui non sia ancora in esecuzione. Per ottimizzare le impostazioni di qualità del suono nel /etc/pulse/daemon.confpuò essere adattato alle esigenze personali.

Un metodo alternativo per lo streaming audio nella tua rete sarebbe quello di configurare un server Icecast (vedi questa domanda ).


14
Nel caso di un client senza testa (diciamo, un Pi con altoparlanti sui miei armadi da cucina) sarebbe utile sapere come configurarlo completamente tramite file di configurazione e / o comandi della shell.
Raffaello,

Questa guida è abbastanza generica da seguirla sulla CLI di Ubuntu. wiki.archlinux.org/index.php/PulseAudio/…
goetzc

11

La tua migliore opzione si chiama Music Player Daemon (mpd).

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

È un'applicazione server client. Memorizzi la tua musica sul server, quindi ti colleghi ai tuoi clienti (molte persone possono farlo contemporaneamente) e controllano il server.

È già in Ubuntu, basta apt-get install mpd

E anche una buona documentazione: https://wiki.archlinux.org/index.php/Mpd

MPD può riprodurre musica in streaming, quindi puoi avere molti clienti (o altoparlanti se desideri chiamarli) per riprodurre la musica.

Ma non aspettarti davvero una buona qualità. Lo spoiler in streaming suona male (non importa se usi mpd o pulseaudio). È un'idea molto migliore per collegare altoparlanti reali al server e utilizzare i laptop solo per controllarlo.


2
Beh, la mia casa è troppo grande per usare i fili, ecco perché voglio trasmettere il suono.
Alvar,

Puoi eseguire lo streaming, non preoccuparti della qualità, non importa molto, vista la tua connessione wireless è abbastanza forte
Rahul Prasad,

In che modo lo streaming compromette la qualità del suono? Il WiFi è un mezzo di trasferimento digitale. MPD esegue una compressione senza perdita? Non penso che sia necessario per le reti WiFi di oggi.
nvd,

Caspita, una risposta così vecchia. Non ricordo nemmeno più, poiché non uso MPD da allora.
Loxs

11

Non ho dovuto fare nulla di straordinario. Ho due netbook gemelli entrambi con PulseAudio e praticamente nessun nome hardware da Intel. Il modo in cui l'ho installato è andato un po 'come questo.

eseguire paprefs sia sul server che sul client. Sul server, assicurarsi di avere le impostazioni multicast abilitate e che i bit del server siano controllati. così inserisci qui la descrizione dell'immagine

e il bit multicast inserisci qui la descrizione dell'immagine

Sul client, abilitare la ricerca di dispositivi abilitati alla rete inserisci qui la descrizione dell'immagine e impostare il dispositivo di output sul dispositivo di rete virtuale tramite pavucontrol inserisci qui la descrizione dell'immagine

viola dovresti avere un po 'di magia ora


1
Solo che questo non ha nulla a che fare con RTP.
Kirelagin,

Grazie per questo fantastico tutorial. Ho selezionato tutte le caselle, tranne per il fatto che non posso "impostare il mio dispositivo di output sul dispositivo di rete virtuale tramite pavucontrol". A quanto ho capito, questo viene fatto tramite il bit in cui nella tua schermata è scritto "Stereo audio analogico interno su charmes @ nano". Ma sul mio sistema, non esiste alcun pulsante del genere. Che cosa sto facendo di sbagliato?
user69748,

Non ho controllato queste istruzioni dal 2011, quindi è molto probabile che le impostazioni del demone audio a impulsi siano cambiate.
lazyPower,

Quello che ho ora (dopo il riavvio) è un canale separato chiamato "pulseaudio" che sembra essere indirizzato al mio client. Tuttavia, non vi è alcun audio che scorre attraverso di esso. E il mio canale Rhythmbox non ha ancora menzionato "user @ client".
user69748,

1

Con questa soluzione puoi trasmettere l'audio del tuo sistema ovunque tu voglia ..
la chiave qui è le funzionalità di loopback ALSA. quindi prima devi abilitare il dispositivo di loopback in ALSA, che apparirà nel PulseAudio Volume Control come dispositivo di input (e anche come dispositivo di output).

sudo modprobe snd_aloop

questo dispositivo può quindi essere aggiunto a un server mpd:

mpc add alsa://hw:1,1

dove hw: 1,1 è il dispositivo di input di loopback che può essere elencato con il comando aplay -l

quindi è necessario configurare un plug-in di output http per mpd. il seguente esempio sarebbe simile a/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
 }  

questo è tutto. Seleziona il dispositivo looback per la tua sorgente audio nella scheda Riproduzione controllo volume.
Infine, puoi utilizzare VLC o qualsiasi altro renderer di stream nel punto di destinazione utilizzando l'indirizzo URL httpd: http://192.168.1.38:8000
questa risposta è disponibile anche qui


0

Non sono sicuro che si possa ottenere qualcosa del genere con DLNA / UPnP poiché non ne ho familiarità, ma lanciare alcuni link qui nel caso in cui aiuti:

Sebbene un risultato di ricerca rapido suggerisca che non è possibile sincronizzare ...


2
DLNA non è raccomandato, poiché non è in grado di sincronizzare la riproduzione.
Sparhawk,

0

Non esiste una buona soluzione (ancora). C'è AVB ma il suo supporto per 802.11 è limitato alla sincronizzazione dell'ora.


-2

Se si desidera eseguire lo streaming su un telefono Android, è possibile utilizzare Foobar2000 sul server e BubbleUPnP (payware) sul client.

  1. prendi vino
  2. ottenere foobar_v1.2.5.exe
  3. $ wine foobar2000_v1.2.5.exe
  4. il prossimo, il prossimo, il prossimo ... :)
  5. get foo_upnp
  6. estrarre nella cartella componenti di foobar2000 (che probabilmente si trova in ~/.wine/drive_c/Program Files/)
  7. lanciare foobar2000
  8. vai su Libreria → Configura → Riproduzione → Uscita → Dispositivo e seleziona "Uscita nulla"
  9. assicurarsi che ufwnon stia bloccando il traffico rilevante
  10. in BubbleUPnP:
    1. vai su Dispositivi → Librerie e seleziona il server foobar2000
    2. in "Libreria", seleziona "Playback Stream Capture"

L'approccio ha il vantaggio che se ti fermi su Android, accumulerà un buffer (poiché il server sta ancora inviando).

Testato su Ubuntu (versione Wine 1.5.28-0ubuntu1~ppa1) e Windows.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.