[Icecast] only a few listeners - reduce resource usage?

D.T. ohnonot-github at posteo.de
Sun Jun 5 06:33:34 UTC 2022

Hello, thank you for your timely reply!

It took me a while to get into it.

Additional challenges came up: I realised that most of my music
collection is MP3, and I can save some quality/processing when I stream
MP3 instead of OGG/Vorbis.
I think I have that part under control now, but I mention it for
context. It also means that I cannot use ogg-based source clients -
even Debian's libshout3 does not support MP3 - I use ffmpeg for
everything currently. This works OK so far:

1. Looping through music collection, ffmpeg transcodes and pipes or
just pipes music to stdout


2. The result is caught (-i pipe:) by a continuous ffmpeg process that
is an icecast client


3. Icecast2 => World


Now, about the on-demand relaying.

First, I want to make sure about the terminology:

- The master is the one connected to the icecast clients that actually
produce the music
- The slave is public-facing and relays web requests for mountpoints to
the master

So what is currently point 3. would become the master, which then
relays to

4. Icecas2 (slave) => world


Since I want on-demand streaming for all my streams I decided on the
global <master-server> configuration.

But this means I need to start 2 separate icecast daemons with
different configurations, yes?
The provided init script (Debian package) clearly does not have such a
scenario in mind, and things could quickly get messy.

Or am I missing something obvious here?



On Thu, 2022-04-07 at 07:18 +0000, Philipp Schafft wrote:
> Good morning,
> On Wed, 2022-04-06 at 06:37 +0000, D.T. wrote:
> > Hello,
> > I have made myself a radio station that just shuffles my music
> > collection, transcodes it to ogg/vorbis and streams that over
> > icecast.
> > It's a simple shell script utilixing ffmpeg and oggfwd, on a
> > headless
> > Debian server.
> > Due to copyright issues I cannot make it public (I guess), so I'll
> > often have no listeners at all, and usually just myself.
> > But the script is still chugging along, transcoding music to
> > nowhere.
> > 
> > Now I understand that the buffer has to be full when a listener
> > connects. And I also understand that the unique character of a
> > radio
> > station would be lost if the playlist actually stops when nobody is
> > listening.
> > 
> > Even so, is it possible to avoid this waste of resources while
> > still
> > having my very own radio station?
> Actually, yes and a bit of no:
> You can do that with on-demand relays. They are exactly what you ask
> for:
> With on-demand relays the source is connected when at least one
> listener is connected and is disconnected in times of idle.
> So from an Icecast point of view this is totally possible.
> However I have not yet seen any out-of-the-box sourceclient for that.
> But if you are already on the scripting level of things that could be
> an option for you.
> Overview on how it works:
> Basically when data is required Icecast will do a HTTP GET request to
> a
> URL you provided. It expects a source of data there. Keep in mind
> that
> this source needs to provide data at the correct speed.
> And that's all there is to it already. :)
> > Cheers,
> > 
> > D.T.
> > 
> > PS: thanks for yet another glorious FOSS application!!!
> Thank you for your kind words. :)
> With best regards,
> PS: Feel free to use "shout" from libshout as a little bit more
> modern
> replacement to "oggfwd". :)
> _______________________________________________
> Icecast mailing list
> Icecast at xiph.org
> http://lists.xiph.org/mailman/listinfo/icecast


Vaccines for everyone!
Donate to the COVAX alliance:
https://gogiveone.org/ (WHO)
https://www.gavi.org/donate (Gavi)


Vaccines for everyone!
Donate to the COVAX alliance:
https://gogiveone.org/ (WHO)
https://www.gavi.org/donate (Gavi)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: This is a digitally signed message part
URL: <http://lists.xiph.org/pipermail/icecast/attachments/20220605/e67192cd/attachment.sig>

More information about the Icecast mailing list