Como transmitir música pela rede para vários computadores?

78

Resultados

Eu quero poder andar de uma sala para outra e ouvir a mesma música tocando. Como você faz se estivesse ouvindo rádio em todos os quartos.

Eu quero esse efeito, mas quero ouvir minha própria música, isso pode ser feito?

Materiais

  • Laptop Ubuntu.
  • Computador Mac.

Primeira alternativa

Alvar
fonte

Respostas:

48

Sim, com o pulseaudio, isso pode ser feito facilmente. Você precisará instalar e executar paprefs Instalar paprefs que disponibilize seus dispositivos de som pela rede.

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Essas configurações permitem que fontes de som e coletores sejam publicados na rede, idealmente para outro servidor de áudio pulsea.

Caso você tenha configurado o servidor sem o gerenciador de desktop, será necessário instalar um sistema de som primeiro (consulte esta pergunta ). Você pode editar /etc/pulse/default.padescomentando estas linhas na seção Acesso à rede :

load-module module-esound-protocol-tcp
load-module module-native-protocol-tcp
load-module module-zeroconf-publish

Se você deseja usar o remetente RTP, remova o comentário dessas linhas na seção Módulo remetente RTP :

load-module module-null-sink sink_name=rtp format=s16be channels=2 rate=44100 description="RTP Multicast Sink"
load-module module-rtp-send source=rtp.monitor

O servidor pulseaudio precisa ser iniciado como um daemon pulseaudio -D, caso ainda não esteja em execução. Para otimizar, as configurações de qualidade do som /etc/pulse/daemon.confpodem ser adaptadas às necessidades pessoais.

Um método alternativo para transmitir áudio na sua rede seria configurar um servidor Icecast (consulte esta pergunta ).

Takkat
fonte
14
No caso de um cliente sem cabeça (por exemplo, um Pi com alto-falantes nos armários da minha cozinha), seria útil saber como configurá-lo completamente por meio de arquivos de configuração e / ou comandos do shell.
Raphael
Este guia é genérico o suficiente para segui-lo na CLI do Ubuntu. wiki.archlinux.org/index.php/PulseAudio/…
goetzc 15/10
11

Sua melhor opção é chamada Music Player Daemon (mpd).

https://secure.wikimedia.org/wikipedia/en/wiki/Music_Player_Daemon

É um aplicativo de servidor cliente. Você armazena suas músicas no servidor, conecta-se aos seus clientes (muitas pessoas podem fazer isso de uma vez) e controla o servidor.

Ele já está no ubuntu, apenas apt-get install mpd

E também uma boa documentação: https://wiki.archlinux.org/index.php/Mpd

O MPD pode transmitir música, para que você possa ter muitos clientes (ou alto-falantes, se desejar chamá-los) para tocar a música.

Mas realmente não espere uma boa qualidade. A deterioração da transmissão soa mal (não importa se você usa mpd ou pulseaudio). É uma idéia muito melhor conectar alto-falantes reais ao servidor e usar os laptops apenas para controlá-lo.

loxs
fonte
2
Bem, minha casa é grande demais para usar fios, é por isso que quero transmitir o som.
Alvar
Você pode transmitir, não se preocupe com a qualidade, isso não vai importar muito, Dada a conexão sem fio é forte o suficiente
Rahul Prasad
Como o streaming prejudica a qualidade do som? O WiFi é um meio de transferência digital. O MPD faz compactação sem perdas? Eu não acho que isso seja necessário para as redes WiFi de hoje.
Nv
Uau, uma resposta tão antiga. Eu nem me lembro mais, já que eu não uso o MPD desde aquela época.
Loxs
11

Eu não precisava fazer nada fora do comum. Eu tenho netbooks gêmeos, tanto com o PulseAudio quanto com nenhum hardware de nome da Intel. Como eu o configurei foi um pouco mais ou menos assim.

execute paprefs no servidor e no cliente. No servidor, verifique se as configurações de multicast estão ativadas e se os bits do servidor foram verificados. igual a insira a descrição da imagem aqui

e o bit multicast insira a descrição da imagem aqui

No cliente, ative um pouco a localização de dispositivos habilitados para rede insira a descrição da imagem aqui e defina seu dispositivo de saída para o dispositivo de rede virtual via pavucontrol insira a descrição da imagem aqui

viola você deve ter um pouco de mágica agora

lazyPower
fonte
1
Exceto que isso não tem nada a ver com o RTP.
kirelagin
Obrigado por este ótimo tutorial. Marquei todas as caixas, exceto que não consigo "configurar meu dispositivo de saída para o dispositivo de rede virtual via pavucontrol". Pelo que entendi, isso é feito através do bit em que na sua captura de tela está escrito "Internal Audio Analog Stereo on charmes @ nano". Mas no meu sistema, não existe esse botão. O que estou fazendo errado?
User69748 27/03
Não verifiquei essas instruções desde 2011, portanto é provável que as configurações do daemon de áudio por pulso tenham sido alteradas.
lazyPower
O que eu tenho agora (após a reinicialização) é um canal separado chamado "pulseaudio" que parece ser roteado para o meu cliente. No entanto, não há áudio fluindo através dele. E meu canal Rhythmbox ainda não menciona "usuário @ cliente".
User69748 27/05
1

Com esta solução, você pode transmitir o áudio do sistema para onde quiser. A
chave aqui são os recursos de loopback da ALSA. primeiro, é necessário ativar o dispositivo de loopback no ALSA, que aparecerá no PulseAudio Volume Control como um dispositivo de entrada (e também um dispositivo de saída).

sudo modprobe snd_aloop

este dispositivo pode ser adicionado a um servidor mpd:

mpc add alsa://hw:1,1

onde hw: 1,1 é o dispositivo de entrada de loopback pode ser listado com o comando aplay -l

então você precisa configurar um plugin de saída http para o mpd. o exemplo a seguir seria semelhante em/etc/mpd.conf

 audio_output {
    type            "httpd"
    name            "My HTTP Stream"
    encoder         "vorbis"          # optional, vorbis or lame
    port            "8000"
    bind_to_address "192.168.1.38"               # optional, IPv4 or IPv6
    quality         "5.0"                   # do not define if bitrate is d$
#   bitrate         "128"                   # do not define if quality is d$
    format          "44100:16:1"
    max_clients     "0"                     # optional 0=no limit
 }  

é isso. Selecione o dispositivo looback para sua fonte de áudio na guia Reprodução do controle de volume.
Por fim, você pode usar o VLC ou qualquer outro renderizador de fluxo no ponto de destino usando o endereço de URL httpd: http://192.168.1.38:8000
Esta resposta também está disponível aqui

laplasz
fonte
0

Não tenho certeza se algo assim pode ser alcançado com o DLNA / UPnP, já que eu não estou familiarizado com isso, mas jogando alguns links aqui, caso isso ajude:

Embora um resultado de pesquisa rápida sugira que não é possível sincronizar ...

Ilari Kajaste
fonte
2
DLNA não é recomendado, pois não pode sincronizar a reprodução.
Sparhawk
0

Ainda não há uma boa solução. Existe o AVB, mas seu suporte ao 802.11 é limitado à sincronização de tempo.

themihai
fonte
-2

Se você deseja transmitir para um telefone Android, use Foobar2000 no servidor e BubbleUPnP (payware) no cliente.

  1. obter vinho
  2. pegue foobar_v1.2.5.exe
  3. $ wine foobar2000_v1.2.5.exe
  4. próximo, próximo, próximo ... :)
  5. obter foo_upnp
  6. extrair na pasta componentes de foobar2000 (que provavelmente está em ~/.wine/drive_c/Program Files/)
  7. lançamento foobar2000
  8. vá para Biblioteca → Configurar → Reprodução → Saída → Dispositivo e selecione "Saída nula"
  9. verifique se ufwnão está bloqueando o tráfego relevante
  10. no BubbleUPnP:
    1. vá para Dispositivos → Bibliotecas e selecione o servidor foobar2000
    2. em "Biblioteca", selecione "Captura de fluxo de reprodução"

A abordagem tem a vantagem de que, se você pausar no Android, ele acumulará um buffer (pois o servidor ainda está enviando).

Testado no Ubuntu (versão Wine 1.5.28-0ubuntu1~ppa1) e Windows.

Janus Troelsen
fonte