Streaming de audio

Pulseaudio
Forma 1 - Variable PULSE_SERVER
En el servidor (equipo donde saldrá el sonido, IP 10.0.0.3)
Instala
paprefsjulio@acer ~> sudo pacman -S paprefsAbre
paprefsy, enNetwork Server, marca:Enable network acess to local sound devices;Allow other machines on the LAN to discover local sound devices;Don't require authentication.
En el cliente (equipo con los archivos de audio, IP 10.0.0.2)
Define la variable de entorno
$PULSE_SERVERy ejecuta una música:julio@hp ~> export PULSE_SERVER=10.0.0.1 julio@hp ~> mplayer musica.flac
Si todo salió bien, deberías estar escuchando la música en el servidor.
Forma 2 - MPD
Activa el acceso a PulseAudio del servidor por red usando paprefs o con:
julio@acer ~> pactl load-module module-native-protocol-tcp auth-anonymous=1
O, de forma más segura:
julio@acer ~> pactl load-module module-native-protocol-tcp auth-ip-acl="127.0.0.1;10.0.0.2"
Añade un nuevo output al archivo ~/.mpd/mpd.conf:
audio_output {
type "pulse"
name "Acer - Pulseaudio"
server "10.0.0.1"
#sink "remote_server_sink"
}
En el menú 8 de ncmpcpp puedes activar/desactivar este output.
RTP
PulseAudio solo hace multicast con RTP; eso terminó tirando abajo el Wi‑Fi de casa.
julio@acer ~> pactl load-module module-rtp-recv
Controlar MPD desde Android
Streaming con MPD
quality es para VBR (variable bitrate) y bitrate para CBR (constant bitrate).
MPD streaming http
En ~/.config/mpd.conf:
audio_output {
type "httpd"
name "My HTTP Stream"
encoder "vorbis" # optional, vorbis or lame
port "8000"
bind_to_address "0.0.0.0" # optional, IPv4 or IPv6
bitrate "128" # do not define if quality is defined
format "44100:16:1"
max_clients "0" # optional 0=no limit
}
Abre un reproductor (puede ser un navegador) en http://10.0.0.2:8000 y dale play.
MPD FIFO + netcat + VLC
En ~/.config/mpd.conf:
audio_output {
type "fifo"
name "FIFO2"
path "/tmp/mpd.fifo"
format "44100:16:2"
}
En el servidor:
nc -u 10.0.0.2 8765 < /tmp/mpd.fifo
En el cliente:
nc -u -l 8765 | ~/Applications/VLC.app/Contents/MacOS/VLC --demux=rawaud --rawaud-channels 2 --rawaud-samplerate 44100 --audio-desync=250 -
Enlaces
- http://en.gentoo-wiki.com/wiki/PulseAudio
- http://wiki.openwrt.org/doc/howto/pulseaudio
- http://wm161.net/2007/06/24/how-pulseaudio-made-my-openhouse-awesome/
- http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Network
- https://en.wikibooks.org/wiki/Configuring_Sound_on_Linux/Pulse_Audio/Remote_server
- https://wiki.archlinux.org/index.php/PulseAudio/Examples
- https://www.linux.com/learn/tutorials/332418:weekend-project-using-pulseaudio-to-share-sound-across-all-your-computers
- http://mpd.wikia.com/wiki/Configuration

Soy un ingeniero informático brasileño radicado en Alemania, apasionado por la tecnología, la ciencia, la fotografía y los idiomas.
Llevo programando cerca de dos décadas, explorando desde apps móviles y desarrollo web hasta aprendizaje automático. Hoy me enfoco en SRE en la nube e ingeniería de datos.
Soy voluntario en las comunidades de open source y Python, ayudando a organizar PyCon DE y PyData Berlin, dando mentorías y contribuyendo con código y traducciones.
En mi blog comparto consejos de Linux, guías de configuración y notas personales que escribí como referencia futura. Espero que también sean útiles para otras personas. El contenido está disponible en varios idiomas.
Visita mi galería para ver algunas de mis fotografías.
Fuera del teclado, me encontrarás en conciertos, tocando el clarinete, en bicicleta, buceando o explorando nuevos lugares, culturas y cocinas.
¡Siempre feliz de conectar! 🙂