Streaming de audio

Pulseaudio
Jeito 1 - Variável PULSE_SERVER
No servidor (computador onde sairá o som, ip 10.0.0.3)
Instale o
paprefsjulio@acer ~> sudo pacman -S paprefsAbra o
paprefse, emNetwork Server, marque:Enable network acess to local sound devices;Allow other machines on the LAN to discover local sound devices;Don't require authentication.
No cliente (computador onde estão os arquivos de audio, ip 10.0.0.2)
Defina a variável de ambiente
$PULSE_SERVERe execute uma música:julio@hp ~> export PULSE_SERVER=10.0.0.1 julio@hp ~> mplayer musica.flac
Se tudo deu certo, você deve estar ouvindo a música no computador servidor.
Jeito 2 - MPD
Ative o acesso ao Pulseaudio do servidor pela rede usando o paprefs ou com o seguinte comando:
julio@acer ~> pactl load-module module-native-protocol-tcp auth-anonymous=1
Ou, de forma mais segura:
julio@acer ~> pactl load-module module-native-protocol-tcp auth-ip-acl="127.0.0.1;10.0.0.2"
Adicione um novo output ao arquivo ~/.mpd/mpd.conf:
audio_output {
type "pulse"
name "Acer - Pulseaudio"
server "10.0.0.1"
#sink "remote_server_sink"
}
No menu 8 do ncmpcpp você pode ativar/desativar este output.
RTP
O PulseAudio só faz multicast com RTP, isso acabou derrubando o Wi-Fi de casa.
julio@acer ~> pactl load-module module-rtp-recv
Controlar MPD pelo Android
Streaming pelo MPD
quality é para VBR (variable bitrate) e bitrate para CBR (constant bitrate)
MPD streaming http
Em ~/.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
}
Basta abrir um player (pode ser um browser) em http://10.0.0.2:8000 e dar play.
MPD FIFO + netcat + VLC
Em ~/.config/mpd.conf:
audio_output {
type "fifo"
name "FIFO2"
path "/tmp/mpd.fifo"
format "44100:16:2"
}
No servidor:
nc -u 10.0.0.2 8765 < /tmp/mpd.fifo
No cliente:
nc -u -l 8765 | ~/Applications/VLC.app/Contents/MacOS/VLC --demux=rawaud --rawaud-channels 2 --rawaud-samplerate 44100 --audio-desync=250 -
Links
- 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

Sou um engenheiro de computação brasileiro baseado na Alemanha, apaixonado por tecnologia, ciência, fotografia e línguas.
Programo há cerca de duas décadas, explorando desde aplicativos móveis e desenvolvimento web até aprendizado de máquina. Atualmente, foco em SRE de nuvem e engenharia de dados.
Sou voluntário nas comunidades de open source e Python, ajudando a organizar a PyCon DE e a PyData Berlin, mentorando e contribuindo com código e traduções.
No meu blog, compartilho dicas de Linux, guias de configuração e notas pessoais que escrevo para referência futura. Espero que outras pessoas também as considerem úteis. O conteúdo está disponível em vários idiomas.
Visite minha galeria para ver algumas das minhas fotografias.
Longe do teclado, você vai me encontrar em shows, tocando clarinete, pedalando, mergulhando ou explorando novos lugares, culturas e culinárias.
Sempre feliz em me conectar! 🙂