![Combine três transmissões de áudio ao vivo em uma transmissão de áudio ao vivo](https://rvso.com/image/1438655/Combine%20tr%C3%AAs%20transmiss%C3%B5es%20de%20%C3%A1udio%20ao%20vivo%20em%20uma%20transmiss%C3%A3o%20de%20%C3%A1udio%20ao%20vivo.png)
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 amix
filtro:
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 amerge
filtro, 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.
- Diretamente
- 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 amerge
para 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 amix
filtro:
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