Combine tres transmisiones de audio en vivo en una sola transmisión de audio en vivo

Combine tres transmisiones de audio en vivo en una sola transmisión de audio en vivo

Tengo tres transmisiones de audio en vivo que quiero retransmitir como una transmisión de audio combinada. Me gustaría escuchar estas tres transmisiones de audio en vivo a la vez, pero la conexión de mi hogar está limitada por datos por mes, por lo que prefiero transmitir solo desde una fuente. Es por eso que quiero usar una fuente de mi servidor externo.

¿Es posible utilizar algo como ffmpeg para lograr esto o sería más complicado que eso?

Puedo obtener la transmisión de audio en vivo en muchos formatos. Los que admiten la transmisión son Windows Media Player, Real Player, iTunes, Winamp, Web Player y Java Web Player, por lo que obtener un tipo de fuente compatible no será un problema.

A continuación se muestra un ejemplo de dos de los feeds:

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

Me gustaría convertirlos en un solo feed, así que sintonizaríahttp://ejemplo.com/radiostreamy tendría una corriente. La transmisión está en formato MPEG en este momento, y volver a enviarla exactamente en el mismo códec está totalmente bien.

Respuesta1

Mezclar los dos canales es trivial. Aquí hay una prueba que mezcla los dos canales y graba un archivo durante 500 segundos, usando el amixfiltro:

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

Esto es más simple que el amergefiltro, que también depende de la disposición del canal (izquierda, derecha, centro, etc.). Entonces, si bien esto también funcionó, analizó bastante los canales:

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

Transmisión:

ffmpeg puede transmitir de dos maneras.

  1. Directamente
  2. A otro servidor, como por ejemplo icecast

Veresta guíapara más detalles.

Usando icecast, con una contraseña para la fuente como "hackme" (la predeterminada) y el puerto 8000 (predeterminado) como uno de los puertos, inicie usando:

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

Por supuesto el tuyo sería:

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

Luego use el amergepara alimentar al 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 VLC y conéctese a la transmisión.http://192.168.1.128:8000/radio(Esa es mi IP designada, puedes usar localhost:8000/radio).

Puedes escuchar las 2 transmisiones. Con amerge (en lugar de amix), las 2 transmisiones se desplazarán de izquierda a derecha y es fácil de distinguir.

Para mezclar 3 corrientes utilice el 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

información relacionada