Shoutcast is Nullsoft's infrastructure for the creation, distribution, and playback of streaming mp3 audio. It has several components, but is very easy to use.

The Broadcaster:

The Broadcaster is the program/machine that actually takes the mp3 or even live audio, reencodes at the desired bitrate if necessary in the case of mp3s, and sends the stream off to the server. The Broadcaster makes the playlist, voiceovers, inserts any ads that a station may carry, all the standard stuff. Broadcasting can be done with, among others, the Nullsoft Winamp DSP plugin in Windows or Shout and IceS for Linux. I'm not aware of any Mac solutions except maybe Audion, and their page is short on information. The Nullsoft Winamp DSP supports multiple streams, so one instance of the program can broadcast the same stream to multiple servers at multiple bitrates. However, the Nullsoft DSP is only available for Windows.

The Server/Relay

The Server receives the stream from the Broadcaster, and is the program/machine that listeners connect to. The Broadcaster and Server can easily be run on the same machine. The bitrate may be set by the Server administrator, if a stream is recieved at a higher bitrate then has been permitted the Server may transcode it down to the proper rate or simply reject the stream and disconnect the broadcaster. A Relay is a server that connects and recieves an audio stream from another server, then rebroadcasts it. Some stations have relays that transcode the stream to a lower bitrate to deliver a low-bandwith version of their stream. Relays can get the stream directly from the server or bounce off other relays. Multiple Broadcasters, Servers, and Relays can run on the same box, but each requires its own port. Their are many server options such as Shoutcast, Icecast, Nanocast, Rimps, edna, etc. and are available for Windows, Linux, FreeBSD, BSDi, Solaris, and OS X.

Clusters

Servers and Relays take up almost no resources other than bandwith, for which they are ravenous as the standard bitrate is 128 KBps. At 128 KBps a full T-1 can only sustain 12 connections, not accounting for overhead bandwith usage. A cluster is a single server and its collection of relays. Clusters are grouped by bandwith; if theres is a Server/Relay Cluster streaming at 128 KBps, but part of the Cluster is transcoding to (a horrendous) 24 KBps, the 24 KBps Cluster will be listed seperately from the 128 KBps Cluster from which it originates. Clusters are useful as they provide redundancy and distribute bandwith usage.

The Listener

Any self respecting mp3 player for any platform can recieve mp3 streams, so it's pretty much your personal preference that determines your choice. I use Winamp because of all the visualization plugins available, but will try Sonique as it appears to have some serious style going on. The listener gets a Station playlist from Shoutcast.com, or a Station's website, or wherever the listener gets their playlists. The playlist lists all the servers in the Cluster of a certain Station, if there is only one server, there is only one listing in the playlist. A Listener can open different listings to connect to different servers if a server is full or is giving to much packet loss.

Shoutcast.com

Shoutcast.com lists streams based on number of listeners, bitrate, genre, Station name, recently played songs, or randomly depending how you choose. Most Broadcasters have the ability to list your stream on Shoutcast, and most people choose to as its free and all you have to do is toggle the option. It has a little table in the upper right that has statistics such as current number of listeners to active stations, and the number of active stations. It also has a number of people "served" but I don't know if this means page views or listening sessions. Either way, the number is in the range of 250 million. It has the stuff you would expect: download links for WinAmp and Shoutcast, Forums, Documentation, and news.

Conclusion

Shoutcast is a very nicely functioning system, but it clearly illustrates the need for a good content delivery network and the advancement of new protocols such as Internet2. Two users could be sitting next to each other on a LAN listening to the same Station, but each of them will have to open a seperate connection to the server, and each will require the full transmission of 128 KBps or whatever the Station is broadcasting at. Even a very small Station requires huge amounts of bandwith if it wishes to broadcast at an acceptable sound quality. But it works for now.