Uso di Pi per trasmettere in streaming tutta l'uscita audio dal mio PC allo stereo


37

Il mio problema è abbastanza semplice ma non sono stato in grado di trovare una soluzione soddisfacente.

Fondamentalmente, voglio che il mio Raspberry Pi sia collegato al mio stereo e quindi riprodurre qualsiasi uscita audio dal mio computer tramite Wi-Fi al PI.

C'è un modo per farlo facilmente, senza dover usare giocatori speciali? Vale a dire, esiste comunque che il PC riconosca il Pi semplicemente come "altoparlanti"?

Mi piacerebbe sentire ogni suono sul mio PC sullo stereo, ad es. Giochi, musica, suoni di sistema, notifiche, video di YouTube, ecc.

Grazie mille!

Risposte:


24

Se stai eseguendo Linux sul tuo PC, questo è perfettamente fattibile, purché tu installi e configuri correttamente PulseAudio su entrambi, Raspberry Pi e PC Linux.

Se il tuo PC esegue Windows ... Passa alla fine del post (che ho appena aggiornato).

Un'altra opzione sarebbe quella di utilizzare PulseAudio come ricevitore / client AirPlay, ma per quanto ne so, questo non è possibile.

Ma, se stai usando Linux, continua a leggere:

Nota n. 1: PulseAudio su WiFi funzionerà perfettamente su alcuni router ma fallirà su altri.

Nota n. 2: le seguenti istruzioni sono tratte da una conversazione che molti utenti di Raspberry Pi (incluso me stesso) hanno avuto su questo argomento .

1) Installa PulseAudio sul tuo Raspberry Pi

sudo apt-get install pulseaudio pulseaudio-module-zeroconf avahi-daemon

2) Assicurati che PulseAudio si avvii automaticamente:

sudo nano /etc/default/pulseaudio

Cerca la voce PULSEAUDIO_SYSTEM_START e modificala in 1 in modo che assomigli a PULSEAUDIO_SYSTEM_START = 1

3) Configurare PulseAudio per funzionare in rete:

sudo nano /etc/pulse/system.pa

Aggiungi le seguenti righe:

load-module module-native-protocol-tcp auth-ip-acl = 127.0.0.1; 192.168.1.0/24

load-module module-zeroconf-publishing

4) Riavvia il tuo Raspberry Pi:

sudo reboot

5) Ora, sul tuo PC Linux, installa paprefs . Se la tua distribuzione Linux è basata su Debian (come Ubuntu, Mint, ecc ...) puoi usare questo comando:

sudo apt-get install paprefs

6) Esegui paprefs e in Accesso alla rete abilita Rendi i dispositivi audio di rete PulseAudio rilevabili disponibili localmente

7) In Server di rete abilita Abilita accesso di rete ai dispositivi audio locali e seleziona entrambe le opzioni (Questo probabilmente non è necessario, a meno che tu non voglia usare la tua Linux box come server / sink)

8) In Multicas / RTP abilitare entrambe le opzioni

9) Controlla i dispositivi di output disponibili (usa la tua applicazione Linux Audio / Mixer distro). Il tuo Raspberry Pi apparirà (dovrebbe) elencato; selezionalo e tutto ciò che viene riprodotto sul tuo box Linux verrà reindirizzato su Raspberry Pi.

Se il tuo Raspberry Pi non è ancora disponibile, prova a riavviare il tuo PC Linux.


AGGIORNAMENTO: invio di tutto l'audio da Windows a Raspberry Pi

Dovrai comunque seguire le istruzioni precedenti per installare e configurare PulseAudio sul tuo Raspberry Pi.

Ora, questo è ciò che dovrai fare per Windows:

1) Scarica l'ultima versione di LineInCode

2) Decomprimi il file scaricato

2) Scarica di PuTTY Plink e posizionare il file plink.exe nella stessa cartella dove avete estratto LineInCode

3) Apri Blocco note e incolla il seguente codice:

linco.exe -B 16 -C 2 -R 44100 | plink 192.168.1.104 -l pi -pw raspberry "cat - | pacat --server 127.0.0.1 --playback"

Naturalmente, cambia l'indirizzo IP ( 192.168.1.104 ), il nome utente ( pi ) e la password ( raspberry ) in base alla tua configurazione.

4) Salvare il file come audio2rpi.bat nella stessa cartella in cui è stato estratto LineInCode

Ora, ogni volta che vuoi trasmettere l'audio del tuo PC Windows al tuo Raspberry Pi, fai semplicemente doppio clic sul file audio2rpi.bat.


Ringraziamo queste istruzioni: http://ubuntuforums.org/showthread.php?t=1121603


Grazie, ci proverò! posso usare pulseaudio anche per lo streaming da uno smartphone? Grazie
Girolamo

@Jerome Dovrebbe essere un'altra domanda che fai su questo sito.
syb0rg

Quale sistema operativo stai eseguendo sul tuo Pi? Sto eseguendo una nuova installazione di Raspbmc e seguendo queste istruzioni sembra aver bloccato il dispositivo.
Meno male

Ho provato queste istruzioni su diverse versioni di Raspbian.
XXF

Interessato a sapere quale indirizzo IP stiamo inserendo nel caricamento del modulo di configurazione tcp predefinito. Sto vivendo una riproduzione leggermente glitch su wireless ma impeccabile su cablato, interessante poiché vengono utilizzati nethogssolo 13 KB / s.
M1ke

4

Ho scritto un piccolo post sul blog su come ho ottenuto questo lavoro con PulseAudio sul PC e Raspbmc sul Raspberry Pi - usando lo streaming DLNA / UPnP. È qui: http://westmarch.sjsoft.com/2014/04/streaming-audio-linux-to-raspbmc/ . Spero che sia d'aiuto. C'è un po 'di ritardo mentre i buffer XBMC - quindi questo probabilmente non sarà eccezionale per i giochi o altro, ma funziona bene per la musica.

È un insieme piuttosto lungo di istruzioni - da qui il link qui, ma ecco un riepilogo dell'opzione che ha funzionato per me, usando DLNA / UPnP:

  • apt-get install rygel
  • Apri le preferenze PulseAudio e seleziona Server di rete Rendi i dispositivi audio locali disponibili come Media Server DLNA / UPnP e Crea un dispositivo audio separato per lo streaming DLNA / UPnP
  • Modifica la configurazione di Rygel in /etc/rygel.confo $HOME/.config/rygel.confe configurala per la pubblicazione utilizzando GstLaunch(vedi la configurazione seguente)
  • Vai al tuo XBMC File Manager, cerca una nuova fonte, seleziona Dispositivi UPnP e dovresti vedere Gst Launch come opzione
  • Quindi dovresti essere in grado di dire a XBMC di riprodurre l'audio da quel flusso

Ecco la configurazione di Rygel per utilizzare GstLaunch:

[GstLaunch]
enabled=true
launch-items=mypulseaudiosink
mypulseaudiosink-title=Audio on @HOSTNAME@
mypulseaudiosink-mime=audio/flac
mypulseaudiosink-launch=pulsesrc device=upnp.monitor ! flacenc

Potresti includere un insieme semplificato di istruzioni dal tuo post sul blog nel caso in cui accada qualcosa in futuro?
Fred,

4

Volevo farlo da me stesso da Windows7 -> RaspberryPi (OpenElec) e sono inciampato sulla tua domanda. Dopo alcune ricerche non ho ancora trovato una soluzione soddisfacente per OpenElec, ma avevo abbastanza informazioni per trovarne una molto semplice che funziona davvero con alta qualità e solo con un ritardo di circa 1 secondo!

Hai bisogno:

  1. VLC Media Player (ho usato Scuotivento v2.1.3 sul mio Win7 x64)
  2. Una scheda audio che fornisce un dispositivo di registrazione "Stereo Mix" (sono stato abbastanza fortunato da averne uno a bordo)
  3. Un Raspberry Pi (uso OpenElec 4.0.5, anche se dovrebbe funzionare per XBMC in generale)

Nota: se non disponi di una scheda audio che supporti questa opzione, potresti provare a utilizzare VAC ( http://www.virtualaudiocable.net/ ), anche se ti sto dicendo che non ha funzionato correttamente per me, scarsa qualità audio e buffer problemi fino in fondo ... ma forse sono solo io.

Passo 1)

Crea un file batch che avvia un servizio di streaming http VLC in background e acquisisce l'audio dal dispositivo di registrazione "Stereo Mix":

@echo off

set vlc="C:\Program Files (x86)\VideoLAN\VLC\vlc.exe"
start "" %vlc% --qt-start-minimized dshow:// :dshow-vdev=none :dshow-adev="Stereo Mix (Realtek High Defini" :live-caching=10 :sout=#transcode{vcodec=none,acodec=vorb,ab=500,channels=2,samplerate=44100}:http{dst=:8080/audiostream.ogg} :sout-keep

Gli appunti:

  1. Potrebbe essere necessario cambiare il dispositivo di registrazione se il tuo ha un nome diverso, ho usato Audacity ( http://audacity.sourceforge.net/ ) per controllare i nomi dei miei dispositivi di acquisizione poiché l'avevo già installato
  2. Sì, il bitrate audio è molto alto (massimo per Vorbis), ma maggiore è il bitrate più veloce è il riempimento del buffer e quindi più breve è il ritardo :-) (non è possibile modificare la chiarezza della dimensione del buffer per la musica su XBMC, io uso 5 MB buffer sul mio in generale)
  3. Ho provato FLAC, MP3 e persino WAV e a parte il fatto che solo MP3 e Vorbis hanno funzionato con il mio Pi, ho avuto il tempo di caricamento più veloce sul Pi (praticamente istantaneamente) e il minimo ritardo con Vorbis

Passo 2)

Navigare verso

\\ rapsberrypi \ Userdata \ playlist \ musica

e crea un file .strm con un nome a tua scelta (ho chiamato il mio VLC.strm) che contiene il semplice link al tuo flusso VLC: (cambia IP in IP del tuo PC: p)

http://192.168.0.1:8080/audiostream.ogg

Passaggio 3)

Ora puoi impostare il dispositivo audio acquisito da "Stereo Mix" come predefinito nelle impostazioni audio di Windows o aprire un lettore come VLC e utilizzare manualmente il dispositivo non predefinito per riprodurre musica sul tuo RaspberryPi:

Apri il tuo VLC (oltre a quello minimizzato nel tuo vassoio che sta trasmettendo il tuo "Stereo Mix") ed esegui i seguenti passaggi:

  1. Strumenti -> Preferenze
  2. Audio
  3. Modulo di uscita: "Uscita audio WaveOut"
  4. Dispositivo: - il dispositivo (analogico) acquisito dal dispositivo di registrazione "Stereo Mix" -
  5. Salvare
  6. Riavvia VLC
  7. Suonare

Passaggio 4)

Sul tuo RaspberryPi:

  1. In XBMC vai a Musica -> Playlist
  2. Seleziona VLC.strm (o come lo hai chiamato)
  3. GODERSI LA MUSICA!

Risoluzione dei problemi

Se hai problemi a far funzionare o catturare il tuo "Stereo Mix", gioca prima in Windows, ad esempio registrandolo con Audacity e provando alcuni suggerimenti del forum come:

questo:

http://www.howtogeek.com/howto/39532/how-to-enable-stereo-mix-in-windows-7-to-record-audio/

o questo:

http://www.sevenforums.com/sound-audio/104497-stereo-mix-enabled-but-no-sound.html

Bene, basta digitare per oggi, spero che questo sia stato utile a qualcuno!

BR, Dead


3

La soluzione "LineInCode" qui descritta funziona, ma il suono è terribile tramite il wifi. Anche la soluzione VLC fornita sopra funziona, ma richiede molti clic. Ho combinato entrambi in un file batch che avrebbe avviato VLC come streamer sul mio PC e mpg123 come "listner" sul PI. Funziona come un incanto per me. Devi avere Plik nella stessa cartella (lo usiamo come ssh-client). Uso questo script da oggi per ascoltare mp3 sul mio laptop, mentre l'uscita audio è il pi:

            REM This is fischteich's start_sound.bat v 0.3
            @echo off

            set vlc="C:\Program Files (x86)\VideoLAN\VLC\vlc.exe"
            set ssh-login=YOURLOGIN
            set ssh-pw=YOURPW
            set this-machine-ip=192.168.XXX.XXX
            set pi-ip=192.168.XXX.XXX
            set use-port=5001

            set start-string= --sout-keep --sout=#transcode{vcodec=none,acodec=mp3,ab=192,channels=2,samplerate=44100}:http{mux=mp3,dst=:%use-port%/}

            REM Start VLC ready for files to play
            @start "vlc" %vlc% %start-string%
            REM Start playback via mpg123 on the Pi!
            plink %pi-ip% -l %ssh-login% -pw %ssh-pw% "mpg123 http://%this-machine-ip%:%use-port%"

1

Un modo per ottenere ciò sarebbe installare Volumio OS su Raspberry PI ( https://volumio.org ) seguendo le istruzioni fornite lì. Questa distribuzione include un ricevitore ShairPort che consente ai dispositivi Apple di trasmettere audio ad esso. In alternativa, suppongo che potresti semplicemente installare Shairport sulla distribuzione di tua scelta.

Sul tuo PC Windows installa tuneblade ( http://tuneblade.com ) la cui versione gratuita ti consente di trasmettere l'audio del tuo computer a ShairPort sul tuo Raspberry Pi. Funziona bene anche con vlc per eliminare il ritardo audio durante la visualizzazione di video ecc.

Questo funziona per me - spero che possa funzionare anche per te.


Benvenuti nello scambio di stack di Raspberry Pi! Sebbene ciò possa teoricamente rispondere alla domanda, sarebbe preferibile includere qui le parti essenziali della risposta e fornire il collegamento come riferimento.
RPiAwesomeness,

Tuneblade funziona anche con Pi MusicBox
input

0

Per quanto ne so non esiste (ancora) una soluzione. Esiste uno standard / tecnologia denominata AVB ma il suo supporto pianificato per 802.11 è limitato alla sincronizzazione temporale.


-1

Hai provato lo streaming audio bluetooth semplice usando un adattatore A2DP collegato al tuo stereo? Usare un Raspberry Pi per farlo sembra eccessivo, anche se ammetterò di costruire un dispositivo di streaming audio bluetooth A2DP con un Raspberry Pi e un adattatore bluetooth USB economico.


È fantastico che tu abbia creato un Raspi in grado di trasmettere in streaming A2DP, ma la tua risposta non mi aiuta allo stesso, quindi questa risposta non è una risposta.
Mark Booth,

Nessun bisogno. Associa il tuo PC a un ricevitore Bluetooth e invia il suono direttamente dal tuo PC a sterol. Il ricevitore Bluetooth dovrebbe apparire come uscita audio sul tuo PC.
Christopher Biggs,
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.