Utiliser Pi pour diffuser toutes les sorties audio de mon ordinateur sur ma chaîne stéréo

37

Mon problème est assez simple mais je suis incapable de trouver une solution satisfaisante.

Fondamentalement, je veux que mon Raspberry Pi soit connecté à ma chaîne stéréo, puis reproduise toute sortie audio de mon ordinateur via le réseau Wi-Fi vers le PI.

Est-il possible de le faire facilement, sans avoir à utiliser des lecteurs spéciaux? C'est-à-dire que le PC reconnaît-il simplement le Pi en tant que "haut-parleurs"?

Je voudrais entendre chaque son sur mon PC sur la chaîne stéréo, à savoir. Jeux, musique, sons du système, notifications, vidéos youtube, etc.

Merci beaucoup!

Jérôme
la source

Réponses:

24

Si vous utilisez Linux sur votre PC, cela est parfaitement faisable, à condition d’installer et de configurer correctement PulseAudio sur votre Raspberry Pi et votre PC Linux.

Si votre PC exécute Windows ... Passez à la fin du message (que je viens de mettre à jour).

Une autre option serait d’utiliser PulseAudio comme récepteur / client AirPlay, mais pour autant que je sache, cela n’est pas possible.

Mais si vous utilisez Linux, lisez ce qui suit:

Remarque n ° 1: PulseAudio over WiFi fonctionnera parfaitement sur certains routeurs mais échouera sur d’autres.

Note n ° 2: Les instructions suivantes proviennent d'une conversation que plusieurs utilisateurs de Raspberry Pi (y compris moi-même) ont eu à ce sujet .

1) Installez PulseAudio sur votre Raspberry Pi

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

2) Assurez-vous que PulseAudio démarre automatiquement:

sudo nano /etc/default/pulseaudio

Recherchez l' entrée PULSEAUDIO_SYSTEM_START et remplacez-la par 1 afin qu'elle ressemble à PULSEAUDIO_SYSTEM_START = 1.

3) Configurez PulseAudio pour fonctionner sur le réseau:

sudo nano /etc/pulse/system.pa

Ajoutez les lignes suivantes:

module de chargement module-protocole-natif-natif auth-ip-acl = 127.0.0.1; 192.168.1.0/24

module de chargement zeroconf-publish

4) Redémarrez votre Raspberry Pi:

sudo reboot

5) Maintenant, sur votre PC Linux, installez paprefs . Si votre distribution Linux est basée sur Debian (telle que Ubuntu, Mint, etc ...), vous pouvez utiliser cette commande:

sudo apt-get install paprefs

6) Exécuter paprefs et sous Accès réseau, activez Rendre localisables les périphériques audio réseau PulseAudio détectables

7) Sous Network Server, activez Activer l'accès réseau aux périphériques audio locaux et cochez les deux options (ce n'est probablement pas nécessaire, sauf si vous souhaitez également utiliser votre machine Linux en tant que serveur / récepteur).

8) Sous Multicas / RTP, activez les deux options.

9) Vérifiez vos périphériques de sortie disponibles (utilisez votre application distro Audio / Mixer de Linux). Votre Raspberry Pi apparaîtra (devrait) apparaître dans la liste; sélectionnez-le et tout ce qui est joué sur votre machine Linux sera redirigé vers le Raspberry Pi.

Si votre Raspberry Pi est toujours indisponible, essayez de redémarrer votre PC Linux.


UPDATE: Envoi de tous les fichiers audio de Windows au Raspberry Pi

Vous devrez toujours suivre les instructions précédentes pour installer et configurer PulseAudio sur votre Raspberry Pi.

Voici ce que vous devrez faire pour Windows:

1) Téléchargez la dernière version de LineInCode

2) Décompressez le fichier téléchargé

2) Téléchargez le fichier Plink de PuTTY et placez le fichier plink.exe dans le même dossier où vous avez extrait LineInCode.

3) Ouvrez le Bloc-notes et collez le code suivant:

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"

Bien sûr, modifiez l'adresse IP ( 192.168.1.104 ), le nom d'utilisateur ( pi ) et le mot de passe ( framboise ) afin qu'ils correspondent à votre configuration.

4) Enregistrez le fichier en tant que audio2rpi.bat dans le même dossier que celui où vous avez extrait LineInCode.

Désormais, chaque fois que vous souhaitez diffuser le son de votre PC Windows sur votre Raspberry Pi, il vous suffit de double-cliquer sur le fichier audio2rpi.bat.


Crédit pour ces instructions: http://ubuntuforums.org/showthread.php?t=1121603

xfx
la source
Merci, je vais tenter le coup! puis-je aussi utiliser pulseaudio pour diffuser depuis un smartphone? Merci
Jérôme
@ Jerome Cela devrait être une autre question que vous posez sur ce site.
mardi
Quel système d'exploitation utilisez-vous sur votre Pi? Je suis en train de lancer une nouvelle installation de Raspbmc et suivre ces instructions semble avoir bricolé le périphérique.
Heureusement
J'ai essayé ces instructions sur plusieurs versions de Raspbian.
xfx
Intéressé de savoir quelle adresse IP nous entrons dans le chargement du module TCP par défaut de config. La lecture est légèrement glitch sur le réseau sans fil, mais parfaitement sur le réseau câblé, ce qui est intéressant car les nethogsrapports ne sont utilisés qu’à 13 Ko / s.
M1ke
4

J'ai écrit un petit article de blog sur la manière dont cela fonctionne avec PulseAudio sur PC et Raspbmc sur Raspberry Pi - en utilisant le streaming DLNA / UPnP. C'est ici: http://westmarch.sjsoft.com/2014/04/streaming-audio-linux-to-raspbmc/ . J'espère que ça t'as aidé. Il y a un peu de retard lors de la mise en mémoire tampon XBMC - ce ne sera donc probablement pas très bien pour les jeux ou autre chose, mais cela fonctionne bien pour la musique.

C'est un ensemble assez long d'instructions - d'où le lien ici, mais voici un résumé de l'option qui a fonctionné pour moi, en utilisant DLNA / UPnP:

  • apt-get install rygel
  • Ouvrez PulseAudio Preferences et sous Network Server, cochez la case Rendre les périphériques audio locaux disponibles en tant que serveur multimédia DLNA / UPnP et créer un périphérique audio distinct pour la diffusion en continu DLNA / UPnP.
  • Modifiez la configuration de Rygel dans /etc/rygel.confou $HOME/.config/rygel.conf, et configurez-la pour la publication avec GstLaunch(voir la configuration ci-dessous).
  • Allez dans votre gestionnaire de fichiers XBMC, recherchez une nouvelle source, sélectionnez Périphériques UPnP , et Gst Launch devrait apparaître comme une option.
  • Ensuite, vous devriez pouvoir dire à XBMC de lire l’audio à partir de ce flux

Voici la configuration pour que Rygel utilise GstLaunch:

[GstLaunch]
enabled=true
launch-items=mypulseaudiosink
mypulseaudiosink-title=Audio on @HOSTNAME@
mypulseaudiosink-mime=audio/flac
mypulseaudiosink-launch=pulsesrc device=upnp.monitor ! flacenc
Matt Hampton
la source
Pourriez-vous inclure un ensemble d'instructions simplifiées à partir de votre article de blog au cas où quelque chose lui arriverait à l'avenir?
Fred
4

Je voulais le faire moi-même sous Windows7 -> RaspberryPi (OpenElec) et suis tombé sur votre question. Après de nombreuses recherches, je ne trouvais toujours pas de solution satisfaisante pour OpenElec, mais j’avais assez d’informations pour en proposer une très simple qui fonctionne vraiment avec une qualité élevée et avec un délai d’environ 1sec!

Vous avez besoin:

  1. VLC Media Player (J'ai utilisé v2.1.3 Rincevent sur mon Win7 x64)
  2. Une carte son qui fournit un appareil d'enregistrement "Stereo Mix" (j'ai eu la chance d'en avoir un à bord)
  3. Un Raspberry Pi (j'utilise OpenElec 4.0.5, bien que cela devrait fonctionner pour XBMC en général)

Remarque: si vous n’avez pas de carte son qui le supporte, vous pouvez essayer d’utiliser VAC ( http://www.virtualaudiocable.net/ ), bien que je vous dise que cela ne fonctionnait pas correctement pour moi, qualité audio et mémoire tampon médiocres. des problèmes tout le temps ... mais peut-être que c'est juste moi.

Étape 1)

Créez un fichier de commandes qui démarre un service de diffusion en continu http VLC en arrière-plan et enregistre l'audio à partir du périphérique d'enregistrement "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

Remarques:

  1. Vous devrez peut-être modifier le périphérique d'enregistrement si le vôtre porte un nom différent. J'ai utilisé Audacity ( http://audacity.sourceforge.net/ ) pour vérifier le nom de mes périphériques de capture, car je l'avais déjà installé.
  2. Oui, le débit binaire audio est très élevé (maximum pour Vorbis), mais plus le débit binaire est élevé, plus la mémoire tampon est remplie rapidement et, partant, plus le délai est court :-) (vous ne pouvez pas modifier la taille de la mémoire tampon pour la musique sur XBMC, j'utilise 5 Mo tampon sur le mien en général)
  3. J'ai essayé les formats FLAC, MP3 et même WAV, et mis à part le fait que seuls MP3 et Vorbis fonctionnaient avec mon Pi, j'avais le temps de chargement le plus rapide sur le Pi (pratiquement instantanément) et le délai le plus rapide avec Vorbis.

Étape 2)

Aller vers

\\ rapsberrypi \ Userdata \ playlists \ music

et créez un fichier .strm avec le nom de votre choix (j'ai appelé le mien VLC.strm) qui contient le lien complet vers votre flux VLC: (changez IP en IP de votre PC: p)

http://192.168.0.1:8080/audiostream.ogg

Étape 3)

Vous pouvez maintenant configurer le périphérique audio capturé par "Mix stéréo" par défaut dans les paramètres audio de Windows ou ouvrir un lecteur tel que VLC et utiliser manuellement le périphérique autre que celui par défaut pour lire de la musique sur votre RaspberryPi:

Ouvrez votre VLC (en plus de celui minimisé dans votre bac qui diffuse votre "Stereo Mix" en continu) et procédez comme suit:

  1. Outils -> Préférences
  2. l'audio
  3. Module de sortie: "Sortie audio WaveOut"
  4. Appareil: - votre appareil (analogique) qui est capturé par l’appareil d’enregistrement "Stereo Mix" -
  5. sauver
  6. Redémarrer VLC
  7. Jouer de la musique

Étape 4)

Sur votre RaspberryPi:

  1. Dans XBMC, accédez à Musique -> Listes de lecture
  2. Sélectionnez VLC.strm (ou comme vous l'avez appelé)
  3. PROFITE DE LA MUSIQUE!

Dépannage

Si vous avez des difficultés à faire fonctionner votre "Mix stéréo" ou à le capturer, commencez par jouer sous Windows, par exemple en l’enregistrant avec Audacity et en essayant des suggestions de forum telles que:

celui-là:

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

ou celui-ci:

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

Bon, assez de dactylographie pour aujourd'hui, espérons que cela a été utile à quelqu'un!

BR, Deads

Homme mort
la source
3

La "LineInCode" -Solution décrite ici fonctionne - mais le son est terrible en wifi. La solution VLC fournie ci-dessus fonctionne également - mais elle nécessite beaucoup de clics. J'ai combiné les deux dans un fichier de commandes qui lancerait VLC en tant que streamer sur mon PC et mpg123 en tant que "listner" sur le PI. Cela fonctionne comme un charme pour moi. Vous devez avoir Plik dans le même dossier (nous l’utilisons comme ssh-client). J’utilise ce script à partir d’aujourd’hui pour écouter des mp3 sur mon ordinateur portable, alors que la sortie audio correspond au 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%"
Léosok
la source
1

Un moyen d'y parvenir consiste à installer le système d'exploitation Volumio sur le Raspberry PI ( https://volumio.org ) en suivant les instructions fournies. Cette distribution comprend un récepteur ShairPort qui permet aux appareils Apple de diffuser de l'audio en continu. Sinon, je suppose que vous pourriez simplement installer Shairport sur la distribution de votre choix.

Sur votre PC Windows, installez tuneblade ( http://tuneblade.com ), dont la version gratuite vous permet de diffuser le son de votre ordinateur sur le ShairPort sur votre Raspberry Pi. Cela fonctionne également bien avec vlc pour éliminer le retard audio lors de la visualisation de vidéos, etc.

Cela fonctionne pour moi - j'espère que cela fonctionnera pour vous aussi.

rdt25
la source
Bienvenue sur Raspberry Pi Stack Exchange! Bien que cela puisse théoriquement répondre à la question, il serait préférable d’inclure ici les parties essentielles de la réponse et de fournir le lien à titre de référence.
RPiAwesomeness
Tuneblade fonctionne également avec Pi MusicBox
contribution
0

Pour autant que je sache, il n'y a pas encore de solution. Il existe une norme / technologie nommée AVB mais sa prise en charge prévue pour 802.11 est limitée à la synchronisation temporelle.

Thihai
la source
-1

Avez-vous essayé le streaming audio Bluetooth simple en utilisant un adaptateur A2DP connecté à votre chaîne hi-fi? Utiliser un Raspberry Pi pour faire cela semble excessif, bien que je reconnaisse avoir construit un périphérique de streaming audio Bluetooth A2DP avec un Raspberry Pi et un adaptateur Bluetooth USB bon marché.

G Ragib
la source
C'est bien que vous ayez construit un Raspi capable de diffuser du A2DP, mais votre réponse ne m'aide pas à faire de même, alors cette réponse n'est pas une réponse.
Mark Booth
Pas de pi nécessaire. Associez votre PC à un récepteur Bluetooth et envoyez le son directement de votre PC à votre sterol. Le récepteur Bluetooth doit apparaître comme une sortie audio sur votre ordinateur.
Christopher Biggs