Icecast vs. Shoutcast - Which is Better?

Icecast vs. Shoutcast
In this article, we compare the two most popular streaming servers, Icecast and Shoutcast, and explore which one might be right for you.

Background

The history of Icecast and Shoutcast goes back to the early days of internet radio. In 1998, during a time when Winamp was gaining popularity as MP3 player software, Nullsoft created Shoutcast (DNAS) as a competitor to RealAudio, the dominant audio and video streaming technology of the day. The key differentiator of Shoutcast was that it streamed MP3 compressed audio instead of RealAudio's proprietary codecs. This occurred right at the beginning of broadband adoption in the Western world, at a time when bandwidth was beginning to become less constrained and the average modem speed was creeping beyond 56K. By combining high bitrates and better compression, higher quality audio streaming was possible with the MP3 codec, and Nullsoft was quick to jump on this opportunity and create an ecosystem where Shoutcast could serve internet radio streams and Winamp could play those streams. (An even bigger opportunity came Winamp's way a year later, with the release of Napster, which propelled compressed audio technology into ubiquity.)

Icecast was first released in 1999 as an open source alternative to proprietary and patent-encumbered streaming audio technologies of the day, which included both RealAudio and Shoutcast. In 2004, Icecast 2 brought improved metadata support, compatibility with Shoutcast clients, and more advanced configuration options, which were features that lead to widespread adoption in the internet radio community.

There's one twist - In 2012, Karl Heyes forked a branch of Icecast called Icecast-KH, to overhaul some of the internals and multithreaded performance, as well as add some experimental features like listener authentication. Over the years, this branch has served as a test bed for new Icecast features, and due to author's closer collaboration with industry, many of these features were built at the request of stream hosting providers. As a result, Icecast-KH has become the defacto Icecast server used by most streaming hosting companies. A list of differences between Icecast and Icecast-KH is available here.

Codecs

The exact list of codecs that are supported by Icecast and Shoutcast is somewhat nebulous. For example, the Icecast homepage says "Ogg (Vorbis and Theora), Opus, WebM and MP3", without mentioning AAC at all, which is one of the most popular codecs today. Similarly, the Shoutcast homepage doesn't mention any codecs beyond MP3 and AAC ("up to 320 kbps").

To find out which codecs Icecast and Shoutcast actually support, we tested them with each codec that Rocket Broadcaster can encode:

Codec
 
Icecast 2.4.4
Icecast-KH 2.4.0-kh10
Shoutcast v2.5.5.733
Shoutcast v2.6.0.750
MP3 Yes Yes Yes Yes
AAC Yes Yes Yes No
HE-AAC v1 Yes Yes Yes No
AAC+ (HE-AAC v2) Yes Yes Yes No
Ogg Vorbis Yes Yes No No
Ogg Opus Yes Yes No No
Ogg FLAC Yes Yes No No
Also note that older versions of Icecast (such as 2.3) had issues with AAC streams stuttering or having choppy playback.

Features

Icecast and Shoutcast are very similar feature-wise, but there are some differences to consider depending on your use case:

  • Directory listing: Many broadcasters choose Shoutcast because they want to have their stream advertised on the Shoutcast.com directory. Icecast has a similar directory, though it has lower visibility. However, there's dozens of stream directories on the web that you can submit your radio stream to for free, including TuneIn (the largest by far), so we don't recommend basis your decision off this feature.
  • Flexible configuration: Icecast-KH is the most flexible streaming server when it comes to configuration. Certain features like wildcard mounts allow you to specify certain rules that apply to all mounts, and is useful if you need to implement extra features that are based on this, such as geoblocking.
  • SSL / TLS / HTTPS Streams: Icecast and Icecast-KH both natively support HTTPS, but Shoutcast does not. However, it's a common practice for HTTPS to be wrapped around HTTP via a second webserver or "reverse proxy", so some stream hosting companies are still able to provide HTTPS streaming for Shoutcast.
  • Listener statistics: None of these streaming servers provide listener statistics other than the current listener count for each stream. More advanced listener analytics are usually provided by your stream hosting provider, so the statistics capabilities of Icecast vs. Shoutcast are less relevant.

Performance

To get a rough idea of the performance of Icecast and Shoutcast, we ran a simple benchmark where we measured the average CPU usage of each server over 60 seconds, with 1000 listeners connected to a single 64 kbps MP3 source, using HTTP. CPU usage of each streaming server process was sampled once per second with psrecord. All benchmarks were performend on an Intel i5-7600K running Ubuntu 18.04. CPU usage numbers are a total across all cores, with the maximum being 400%.

Server Software
 
Average CPU Usage (%) for 1000 Listeners
Lower is better
Streaming Performance Index
Higher is better
Icecast 2.4.4 7.1 ± 2.5 26
Icecast-KH 2.4.0-kh10 7.4 ± 2.6 25
Shoutcast v2.5.5.733 4.6 ± 2.6 40
Shoutcast v2.6.0.750 7.2 ± 2.8 26

The winner here is Shoutcast 2.5, using roughly 40% less CPU at 1000 listeners. However, the CPU usage is slow low for each application that you're likely to run out of network bandwidth before running out of CPU power, so it's somewhat moot.

About Streaming Performance Index >

In the last column, we've calculated a Streaming Performance Index metric, which we've invented in order to make comparing performance across different CPUs and systems easier. This metric attempts to characterize the performance of the software in a way that's independent of the CPU performance, and is calculated according to this formula:

Streaming Performance Index Formula

where:

  • x = The streaming performance index
  • L = The number of concurrent listeners connected
  • Cusage = The fraction of CPU usage used
  • Scpu = The sysbench 4 threaded CPU speed (events/second) - Obtained by: sysbench --test=cpu --cpu-max-prime=20000 --threads=4 run

Support

The weakest aspect of these streaming servers is support, with no commercial support program officially being offered for any of them. Shoutcast support is provided primarily through a community forum. Icecast and Icecast-KH support is provided through mailing lists, IRC and a community forum as well.

If you're running your own streaming server, we recommend browsing the Icecast and Icecast-KH bug trackers to see if any open issues might affect your usage.

If you're not hosting your own streaming server, then you're dependent on the expertise of your stream hosting provider. We recommend choosing your stream host carefully, and if you're serious about keeping your station on the air, monitor your stream uptime with Radio Mast.

Future Outlook

As of January 2019, Shoutcast appears to be in the midst of commercializing their streaming server, and now ask a monthly fee for features that were previously free. We expect this to result in less stream hosting providers offering Shoutcast service, which will reduce the userbase for Shoutcast. Additionally, Shoutcast has changed owners several times, with subsequent rebalancing of priorities, including the recent shift towards commercialization. However, communication regarding the commercialization has been non-existent, so we're unsure what the future availability of Shoutcast will look like.

Icecast-KH continues to be a testbed for new Icecast features, and through continual engagement of the Icecast-KH author with stream hosting providers, we expect Icecast-KH to continue leading the pack in terms of features. With both Icecast and Icecast-KH, the web has been littered with reports and anecdotes over the years of the "latest version" being unstable for many users. Our own experience has been that there's certain versions of each that are more stable than others, so if you're running your own streaming server, we recommend monitoring it carefully. If you're choosing a stream hosting provider, the stability of Icecast is their responsibility, so we recommend choosing providers that focus on streaming audio, as they're more likely to have dedicated the resources needed to ensure their Icecast servers are stable.

Even if hosting your stream with a third party, we still recommend monitoring your stream uptime with Radio Mast in order to catch unplanned outages such as your encoder's internet connection dropping.

Conclusion

Given the various strengths and weaknesses of each streaming server and the different needs of each individual broadcaster, you have to decide for yourself which streaming server is best for you. As a general recommendation, we suggest evaluating Icecast-KH first, but carefully monitoring the stability of whichever streaming server you choose.
Feedback
Like this article, have a comment, or a suggestion? Send us some feedback!