Combine três transmissões de áudio ao vivo em uma transmissão de áudio ao vivo

Combine três transmissões de áudio ao vivo em uma transmissão de áudio ao vivo

Tenho três feeds de áudio ao vivo que desejo retransmitir como um stream de áudio combinado. Eu gostaria de ouvir todos esses três feeds de áudio ao vivo de uma vez, mas minha conexão doméstica é limitada por dados por mês, então prefiro transmitir apenas de uma fonte. É por isso que quero usar um feed do meu servidor externo.

É possível usar algo como ffmpeg para conseguir isso ou seria mais complicado que isso?

Posso obter o feed de áudio ao vivo em vários formatos. Os que suportam streaming são Windows Media Player, Real Player, iTunes, Winamp, Web Player e Java Web Player, portanto, obter um tipo de feed compatível não será um problema.

Aqui está um exemplo de dois dos feeds:

  • http://audio2.radioreference.com/342138428
  • http://audio7.radioreference.com/333108723

Eu gostaria de transformá-los em um feed, então digamos que eu sintonizariahttp://example.com/radiostreame eu teria um fluxo. O feed está em formato MPEG no momento, e exibi-lo exatamente no mesmo codec é totalmente aceitável.

Responder1

Misturar os dois canais é trivial. Aqui está um teste que mistura os dois canais e grava um arquivo por 500 segundos, usando o amixfiltro:

ffmpeg -i http://audio2.radioreference.com/342138428 -i http://audio7.radioreference.com/333108723 -filter_complex amix=inputs=2 -t 500 a.mp3

Isto é mais simples que o amergefiltro, que também depende do layout do canal (Esquerda, Direita, Centro, etc.). Então, embora isso também tenha funcionado, mudou bastante os canais:

ffmpeg -i http://audio2.radioreference.com/342138428 -i http://audio7.radioreference.com/333108723 -filter_complex amerge=inputs=2 -t 500 a.mp3

Transmissão:

O ffmpeg pode transmitir de duas maneiras.

  1. Diretamente
  2. Para outro servidor, como, por exemplo, icecast

Vereste guiapara mais detalhes.

Usando o icecast, com a senha da fonte como "hackme" (o padrão) e a porta 8000 (padrão) como uma das portas, inicie usando:

icecast -c /usr/local/etc/icecast.xml

Claro que o seu seria:

icecast -c /path/to/your/icecast.xml

Em seguida, use o amergepara alimentar o icecast:

ffmpeg -i http://audio2.radioreference.com/342138428 -i http://audio7.radioreference.com/333108723 -filter_complex amerge=inputs=2 -f mp3 icecast://source:hackme@localhost:8000/radio

Abra o VLC e conecte-se ao stream-http://192.168.1.128:8000/rádio(Esse é o meu ip designado, você pode usar localhost:8000/radio).

Você pode ouvir os 2 fluxos. Com amerge (em vez de amix), os 2 streams serão panoramizados da esquerda para a direita e são fáceis de distinguir.

Para misturar 3 fluxos use o amixfiltro:

ffmpeg -i http://audio2.radioreference.com/342138428 -i http://audio7.radioreference.com/333108723 -i <third stream> -filter_complex amix=inputs=3 -f mp3 icecast://source:hackme@localhost:8000/radio

informação relacionada