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 amix
filtro:
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 amerge
filtro, 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.
- Directamente
- 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 amerge
para 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 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