Combine três transmissões de áudio ao vivo em um fluxo de áudio ao vivo

1

Eu tenho três feeds de áudio ao vivo que desejo retransmitir como um fluxo de áudio combinado. Gostaria de ouvir todos esses três feeds de áudio ao vivo de uma só vez, mas a conexão da minha casa é 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 do que isso?

Eu posso obter o feed de áudio ao vivo em vários formatos. Os suportados suportados por streaming são o Windows Media Player, o Real Player, o iTunes, o Winamp, o Web Player e o 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 único feed, por isso, digamos que eu sintonizasse o link e eu tivesse um fluxo. O feed está em um formato MPEG agora, e a saída de volta no mesmo codec é totalmente boa.

    
por ComputerLocus 28.01.2015 / 00:01

1 resposta

2

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

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

Isso é mais simples que o filtro amerge , que também depende do layout do canal (Esquerda, Direita, Centro, etc.). Então, enquanto isso funcionava também, garimpou 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

Streaming:

O ffmpeg pode ser transmitido de duas maneiras.

  1. Diretamente
  2. Para outro servidor, como o icecast

Veja este guia para 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, use:

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 link (Esse é o meu IP designado, você pode usar o localhost: 8000 / radio).

Você pode ouvir os dois fluxos. Com o amerge (ao invés do amix) os 2 streams serão direcionados para a esquerda e para a direita e serão fáceis de distinguir.

Para misturar 3 streams, use o filtro amix :

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
    
por 30.01.2015 / 15:21