Vários “canais” multicast pulseaudio

1

Eu estou executando um servidor Ubuntu, eu configurei com um dissipador multicast pulseaudio RTP. Este coletor está em uso para uma infinidade de aplicativos.

O que eu estou procurando agora é se existe uma maneira de ter um "canal" adicional para os multicasts RTP, para que o mesmo computador possa fazer multicast de diferentes fluxos ao mesmo tempo, e se eu puder configurar meu computador para apenas aceitar um desses canais.

Ele pode ser comparado a diferentes zonas em um sistema de som de áudio doméstico, onde cada zona teria seu próprio "canal" de multidifusão

Isso é possível e, nesse caso, como isso seria realizado?

    
por Delusional Logic 30.04.2013 / 19:27

1 resposta

0

Pode ser possível enviar mais de um fluxo RTP simultâneo por meio de sua rede local atribuindo um IP Multicast diferente a cada um deles com:

# stream 1
pactl load-module module-null-sink sink_name=rtp1 format=s16be channels=1 rate=44100 sink_properties="device.description='rtp1'"
pactl load-module module module-rtp-send source=rtp1.monitor loop=0 destination=224.0.0.56
# stream 2
pactl load-module module-null-sink sink_name=rtp2 format=s16be channels=1 rate=44100 sink_properties="device.description='rtp2'"
pactl load-module module module-rtp-send source=rtp2.monitor loop=0 destination=224.0.0.57

e, em seguida, ouvir no receptor para o IP correspondente com

pactl load-module module-rtp-recv sap_address=224.0.0.56 # resp. 224.0.0.57

No entanto, não pude testar se isso realmente funciona como eu acho que deveria.

Além disso, esse método tem várias desvantagens:

  • para cada fluxo de envio de RTP, precisamos definir seu próprio sumidouro (exclusivo).
  • o envio de vários streams de áudio descomprimidos através da nossa rede levará inevitavelmente ao congestionamento, uma vez que estes streams terão muita largura de banda.
  • precisamos de uma solução de script para poder selecionar um "canal" dos fluxos no lado do receptor.
  • gerar vários fluxos RTP simultâneos precisará de um pouco de poder de CPU no servidor, portanto, isso é possivelmente arriscado.

Uma alternativa muito melhor que eu gostaria de sugerir aqui é configurar um servidor Icecast no seu servidor Ubuntu. Não é tão difícil de fazer:

Com esta solução, você poderá

  • transmita dados de áudio comprimidos (por exemplo, ogg ou mp3) na sua rede
  • enviar vários canais de áudio (ou seja, "estações de rádio" ) simultaneamente
  • alterna facilmente entre esses fluxos do receptor (que também poderia ser um receptor de rádio da Internet ou um smartphone) apenas a partir do nome do fluxo
  • Ices2 resp. Ices ajuda você a transmitir playlists, Darkice para transmitir dados de sua placa de som.
por Takkat 30.04.2013 / 21:48