web-dev-qa-db-fra.com

Comment diffuser ma sortie audio GNU / Linux sur des périphériques Android via le WI-FI?

Je souhaite diffuser ma sortie audio sur le réseau (Wi-Fi) sur mes appareils Android. Je ne cherche pas de solution de streaming de musique/vidéo, mais je lirais n'importe quelle sortie audio de mon bureau GNU/Linux vers mon travail Android, comme un casque Bluetooth.

Mon bureau GNU/Linux est Debian Wheezy et le son est fourni par pulseaudio.

J'ai essayé le module raop de Pulseaudio (et l'avoir activé sur paprefs) + l'application AirBuddle d'Android, mais le son n'est pas diffusé (Pulseaudio seens se connecte à AirBuddle, mais le son n'est pas reproduit. Certains logiciels, y compris d’autres logiciels le son est bloqué).

36
semente

Il existe une solution très simple car PulseAudio dispose déjà de tous les outils nécessaires.

  1. Obtenez votre nom de périphérique source avec la commande pactl list | grep Name
  2. Créez le script suivant nommé pashare:

    #!/bin/sh
    case "$1" in
      start)
        $0 stop 
        pactl load-module module-simple-protocol-tcp rate=48000 format=s16le channels=2 source=<source_name_here> record=true port=8000
        ;;
      stop)
        pactl unload-module `pactl list | grep tcp -B1 | grep M | sed 's/[^0-9]//g'`
        ;;
      *)
        echo "Usage: $0 start|stop" >&2
        ;;
    esac
    
  3. Effectuez quelques vérifications et préparations (pour autoriser l'exécution du script et vérifier si le port a été ouvert avec succès):

    chmod 755 pashare
    ./pashare start
    netstat -nlt | grep 8000 
    telnet 127.0.0.1 8000
    
  4. Téléchargez et installez PulseDroid.apk

  5. Lancer l'application sur votre téléphone; Définissez l'adresse IP sur votre ordinateur et le port sur 8000.

P.S. Vous pouvez également consulter cette page Wiki pour obtenir des informations générales sur la diffusion en continu sur le réseau Pulseaudio, et cette page Wiki à propos de RTP streaming. N'attendez pas trop du streaming audio brut via WiFi; il faut énormément de bande passante. Même avec un routeur/point d'accès haut de gamme avec un signal puissant, je n'ai pas réussi à en extraire plus que de l'audio. Votre meilleur choix est probablement de configurer un serveur multimédia approprié (comme Rygel, qui fonctionne bien avec Pulseaudio) pour transcoder l'audio brut en MP3 et le diffuser à la place.

25
AlexAndersan

Vous pouvez utiliser VLC pour diffuser un flux MP3 de la sortie de pulseaudio via HTTP.
Le principal avantage est que vous n'avez pas besoin d'installer de logiciel spécial sur votre périphérique distant. Un navigateur Web (ou un lecteur de musique) est tout ce dont vous avez besoin pour lire le flux. L'inconvénient est que c'est uniquement de l'audio, quelques secondes de retard le rendent inutile pour les vidéos

  1. Recherchez le nom de sortie de pulseaudio avec:

    pactl list | grep "Monitor Source" 
    
  2. Démarrez le serveur http VLC en remplaçant XXXX par votre nom de sortie:

    cvlc -vvv Pulse://XXXX --sout '#transcode{acodec=mp3,ab=128,channels=2}:standard{access=http,dst=0.0.0.0:8888/pc.mp3}'
    
  3. Si nécessaire, trouvez votre adresse IP locale avec ifconfig

  4. Sur votre appareil distant, pointez le navigateur (ou l'application de diffusion audio en continu) sur:

    http://your.local.ip.address:8888/pc.mp3
    

Remarque: le flux n'est pas affecté par le volume défini sur le serveur, sauf si vous le désactivez complètement. Si nécessaire, vous pouvez maintenir le niveau juste un petit peu au-dessus de 0 pour n'entendre que le périphérique distant.


Les deux premières étapes combinées en une par polynomial_donut :

cvlc -vvv Pulse://$(pactl list | grep "Monitor Source" | awk '{print $3}') --sout '#transcode{acodec=mp3,ab=128,channels=2}:standard{access=http,dst=0.0.0.0:8888/pc.mp3}'
16
wilks

Pour diffuser une sortie audio via wifi sur votre téléphone Android, vous devez installer un logiciel serveur, qui envoie de l'audio, sur un PC et un logiciel client sur un périphérique Android. Les options disponibles sont

Haut-parleur sans fil WiFi Audio

Exécutez WiFi Audio App Android et appuyez sur Démarrer, vous verrez l’adresse IP du périphérique mobile en bas après avoir exécuté l’application Windows/Linux, inséré l’adresse IP du périphérique mobile dans le champ Adresse IP, puis appuyé sur démarrer dans l’application PC. Maintenant, tout le son sortant du PC sera envoyé à un appareil mobile et vous entendrez le son sur un appareil mobile.
Télécharger

SoundWire

Transmettez sans fil de la musique ou du son de votre PC à votre téléphone, tablette ou autre ordinateur Android
Page d'accueilVoir aussi

Autres liens utiles
XBMCAndroid SE

9
totti

Pour ceux qui utilisent Soundwire et envoient du wifi à partir de leur ordinateur portable ou de leur ordinateur, utilisez ifconfig ET ASSUREZ-VOUS D'UTILISER L'ADRESSE IP CORRECTE. Cela fonctionne toujours à ce jour mais la plupart des distributions Linux ont besoin d'un deuxième adaptateur wifi pour envoyer le wifi et vous devez utiliser celui auquel votre Android est connecté. pas celui qui reçoit internet. Celui qui l'envoie.

c'est-à-dire -> Si vous utilisez un adaptateur wifi "A" pour vous connecter à Internet et "B" pour envoyer le wifi depuis "A", connectez SoundWire sous Android à "B" et non "A".

SoundWire NE se connectera PAS ni ne diffusera PAS de flux si vous vous connectez à l'adaptateur sans envoyer le wifi. Saisissez donc votre adresse IP dans votre ou vos applications Andoroid, en utilisant la commande de terminal ifconfig en conséquence.

Oui, il y a un décalage, mais cette application, SoundWire, est le système le plus simple qui soit: "multi-connexion à l'ip et oublie". Pas de menus fous à traverser. Et oui, il accepte plus d’une connexion. J'ai utilisé 2 l'autre jour. Il ajoute le nombre de périphériques qui lui sont connectés dans la fenêtre principale du périphérique qui envoie la transmission.

En l’utilisant personnellement comme système de radio sans fil multi-pièces/courte distance chez moi à ce jour.

Prendre plaisir.

0
Roiikka