Streaming de audio

mar. 3, 2013·
Julio Batista Silva
Julio Batista Silva
· 2 min de lectura
blog audio

Pulseaudio

Forma 1 - Variable PULSE_SERVER

  • En el servidor (equipo donde saldrá el sonido, IP 10.0.0.3)

    1. Instala paprefs

      julio@acer ~> sudo pacman -S paprefs
      
    2. Abre paprefs y, en Network 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_SERVER y 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

MPDroid

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

Julio Batista Silva
Autores
Senior Cloud Developer

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! 🙂

comments powered by Disqus