Always wanted to set up your own radio station? Well, with the Icecast broadcasting system, you can set up a multi-channel radio station on your home or office network. The best part? You get to pick the tracks.
In the words of its official documentation, Icecast is "...a streaming media server which currently supports Ogg Vorbis and MP3 audio streams...it can be used to create an Internet radio station or a privately running jukebox and many things in between". It's arguably one of the oldest -- and most popular -- audio streaming systems available, and the reason I'm grinning so much lately is that we recently set up one on an old Linux box we had lying around in the office. As a result, users anywhere on our office LAN can tune in and listen to any of the three channels of streaming music we've set up, without any of the lags and disruptions commonly associated with online radio stations.
Sounds cool? You bet it is! And it's incredibly easy to set up as well...once you know the basics.
There are two primary components to the Icecast project:
The server: The server component of the project, appropriately enough named icecast, accepts audio content from one or more source clients, and streams it out to players. The server also keeps track of connected clients, and makes available information on the audio tracks being played, their duration, and their mountpoints. A single Icecast server can have multiple streams being broadcast simultaneously, each one located at a different mountpoint (think of a mountpoint as a channel on the radio).
The source client: The source client, named iceS, reads an audio file, either in MP3 or Ogg Vorbis format, and streams it to a server. Typically, the source client must log in to the server with correct authentication credentials before the server will accept the audio content. iceS can also be programmed to use playlists to send audio files to the server in a pre-defined sequence.
Once you've got the Icecast server and source client set up, any player capable of reading an Icecast stream can connect to the server and begin "listening" to the audio stream being played. Most of today's audio players, including Winamp and Windows Media Player, are capable of decoding Icecast streams, making it easy to test and use the system.
If you need to stream live audio instead of pre-canned audio files, Icecast can easily be hooked up to audio encoders to enable you to do this (at different bitrates if necessary). And Icecast also includes support for a couple of more advanced features: relaying, in which an audio stream from one server is mirrored on to another server for more optimal resource usage; and support for YP listings, in which the server's audio streams are displayed in real-time in a public YP directory.
Now that you have the background -- let's get to work, by installing and configuring Icecast.