movendo o áudio por uma rede local usando o GStreamer

Eu preciso mover o áudio em tempo real entre duas máquinas Linux, que estão executando um software personalizado (meu) que é construído sobre o Gstreamer. (O software já possui outra comunicação entre as máquinas, através de um protocolo separado baseado em TCP - mencionei isso no caso de ter dados fora de banda confiáveis fazer a diferença para a solução).

A entrada de áudio será um microfone / entrada de linha na máquina de envio e a saída de áudio normal será o coletor no destino; O alsasrc e o alsasink são os mais prováveis, embora para os testes eu tenha usado o audiotestsrc em vez de um microfone real.

O GStreamer oferece várias maneiras de mover dados através de redes - RTP, RTSP, carga útil do PIB, servidores UDP e TCP, clientes e soquetes, etc. Também existem muitos exemplos na Web de streaming de áudio e vídeo - mas nenhum deles parece funcionar para mim, na prática; ou o pipeline de destino falha na negociação de limites, ou ouço um único pacote e, em seguida, o pipeline para ou o pipeline de destino cai imediatamente sem dados disponíveis.

Em todos os casos, estou testando na linha de comando apenas o gst-launch. Nenhuma compactação dos dados de áudio é necessária - o áudio bruto ou a codificação trivial de WAV, uLaw ou aLaw é boa; o mais importante é a baixa latência.

questionAnswers(3)

yourAnswerToTheQuestion