I run a radio station which streams live to an Icecast server that I host myself on a VPS. My stream is 192 kbps MP3.
I want to carry a syndicated show which is delivered live via a 96 kbps MP3 Shoutcast stream.
I figure the smoothest way to "switch over" is to have this syndicated live content re-streamed via a Mountpoint on my Icecast. I can then use Icecast's built-in "move clients" feature to seamlessly move clients from one Mountpoint to another.
So the question is: What tools are out there that will run on a Linux server to read a Shoutcast stream and re-stream it to an Icecast server? (Note the bitrates are different).
I've already tried using Icecast's relay feature, and although it works as per spec, I'm not able to move clients between the main Mountpoint and the relay Mountpoint because of the different bitrates (the client just presents silence when I switch over). So I've ruled out using the Icecast relay feature and decided I should somehow use a tool to read a Shoutcast stream and re-stream it to an Icecast server.
Can anyone suggest a way of achieving this?
In general a tool to rebroadcast in this context is called a stream transcoder. Sounds like Liquidsoap is a very good match for your particular use case.
You can use the fallback/override functionality to automatically move all clients around, while providing an unchanged entry through one mountpoint.
Alternatively Liquidsoap has functionality built in to deal with multiple sources and producing one stream.
There are many other options. FFmpeg, VLC, mpd…