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.