Make Your Own Radio Station With IceCast Streaming Server: part 1

Get the latest version of IceCast Streaming Radio Software

Although it may seem daunting – setting up a streaming radio station can be a very rewarding process. It can also be a wormhole that sucks your time, patience and desire to ever broadcast. There are many options for setting up server software – we have had good luck with IceCast Streaming Server – a FREE, open source audio streamer currently maintained (officially) by the foundation – the same people that brought you the vorbis video format and the .xspf playlist format.

The first trick to this process is getting the most recent version of IceCast. Although the site says the most recent version is 2.3.2 (at the time of this writing) – there are some updated releases out in the wild.

The 2.3.2 version is very good and you can use it at a production level but why not come along with us to find the most recently updated release…

Once on the site click on the forums link. Then scroll down to the dev branches topic. There you will find a lot of discussion about some unofficial IceCast branches that have been developed and maintained over the years – these branches represent hundreds of hours of work debugging, adding features and buffing up the already lean and mean IceCast server. One note – IceCast is a very efficient streaming server – very rarely does it need to be restarted and it uses very few resources on a PC – meaning it can run on older hardware with no problems.

The current branch we use here is maintained by a fine developer called karlH. He has created IceCast KH currently on release 25 29! Nice work karlH! You can download a tar to build on your linux server or a Windows binary .exe from our site (below) or directly from his site here: IceCast KH Streaming Radio Server Download Page – Choose the format of your choice from the most recent releases and download. You can read through all of the past23 29 releases and see the bugs fixed, features added, buffering tweaked etc. This guy is like a custom car hotrodder for IceCast. And yes, you can quote me on that.

Here is the changelist from the most recent version:
* kh29.1 is a win32 specific fix. work around a string termination bug in the compiler
* prevent crash with very small burst size (eg 0).
* fix possible race with relay restart and headers used in stats update
* fix possible mpeg issues causing a crash or getting stuck in an allocation loop on bad input.
* An FLV listener could trigger a corruption in the metadata for non-FLV listeners. More likely to occur when starting on-demand relays.
* relays that have only been connected for a few seconds will be treated as if it had failed to restart and listeners will be droped or moved.
* fix possible server stall if reload requested and auth listeners were pending on auth queue
* Fix a number of cases where listeners kept a relay from restarting because of an incorrect internal state, a stuck relay.
* revert to reserving a new relay source later in client processing. The relay is still installed immediately (with client) but the source could clash with another already reserved.
* stats cleanup on disabled or failed relay start
* on-demand relays minimum transfer set to 2Meg
* make rejected_mount and stream_auth work properly again for URL auth
* possible listener cleanup race if auth used at exit. We now keep listener on the worker even if inactive until complete.
* expanded FLV metadata, double and bool settings, adds audiocodecid, audiosamplerate, stereo and various entries from stats.
* slave relay could of been redirected, now it is marked as a slave by the master so bypassess various limit checks.
* If auth server does not respond then disable URL requests for listeners for 60 seconds. Keeps icecast from clogging up if link to auth server breaks. Some people use auth for non-auth accounting or listener intro, so extra option added to allow those by default (option presume_innocent set to yes to allow listener even if auth not active).
* Make auth refcount change based on threads holding it not clients, simplifies the shutdown or busy startup case.
* move non-ogg metadata update code into one place, and fix-up use of inline URL parsing and possible short write in rare cases.
* slow down listener thread (therefore reduce new incoming listeners) if relay starts up, more so if many relays start or auth queues are full.
* fix ogg stream dump-file.
* new listeners (with queryargs or user:pass) redirected because of icecast will have their supplied auth details added to new location.
* add error code to recoverable list for accept, and prevent listener thread slow down in those cases, seems to affect FreeBSD more than others although it could affect others.
* revert listener stat names for listclients to 2.3.2 case for now
* code cleanup and minor speeups
* minor log message cleanups.

In part two of this – we will install IceCast and configure it to start streaming. Until then you can read the IceCast Documentation.

Happy Streaming!

Download IceCast 2.3.2 kh24 kh29 Here
IceCast for Linux (tar)
IceCast KH29 - Linux .tar (1073)

IceCast for Win32 (exe)
IceCast KH29 - Win32 (1557)

2 thoughts on “Make Your Own Radio Station With IceCast Streaming Server: part 1”

  1. Hello,
    thanks for this information. I want to say something. I’m using icecast and shoutcast. But let me tell you, I prefer shoutcast than icecast. Cause with shoutcast everything is easier and it’s easy for people to listen to your radio station with their cellphones. However with icecast, even on icecast directory your station cannot list. I used icecast, but I love shoutcast.

  2. So you don’t like the directory, you seem to like Icecast server just fine.

    I agree, the directory is flaky, but that’s why you advertise your station.

Leave a Reply

Your email address will not be published. Required fields are marked *