Icecast server - basic setup

Other Articles Available

------------- -------------

2. Icecast

Definition: Icecast is a streaming media server which supports Ogg Vorbis and MP3 audio streams. It can be used to create an Internet radio station or a private jukebox,. It is very versatile in that new formats can be added easily and supports open standards for communication and interaction; it is also multiplatform, Version 2.3 (used to setup our test station in this guide) supports the following UNIX Platforms: Linux (including Redhat, Debian, Fedora, etc), FreeBSD, OpenBSD, Solaris and several Windows platforms: Windows NT, Windows 2000, Windows XP

Icecast is distributed under the GNU GPL, meaning its free ;-), you can use it without restrictions as long as you respect its Terms and Conditions; the full text of the latest GNU GPL (General Public Licence) is available at GNU's Not Unix! - Free Software, Free Society Website

Media Players That Support Icecast Streaming (Windows platforms)

  • Foobar2000
  • Winamp 2.x, 5.x (Not 3.x)
  • Zinf
  • MPlayer
  • VLC

Icecast Requirements

There are two components used by Icecast in order to work properly : the component providing the content (source clients) and the component which is responsible for serving that content to listeners (the server; this is the function of icecast).

Icecast configuration

Icecast Win32 version is easy to configure and most default values are enough to setup a basic radio station; there are, however, a few changes to do in the configuration file before you be able to launch your very own radio station. Icecast uses a XML file to edit its configuration options; to open the configuration file:

  • Launch Icecast Server
  • Click on Configuration - Edit configuration

Icecast Main screenThis action will open a Notepad Window with the Icecast.xml file ready to modify (It's good idea to make a copy of Icecast.xml BEFORE you modify it).

For a basic setup only the parameters on red should be changed, however feel free to modify all those parameters necessary to fit your rquirements:

Limits

<limits>
    <clients>100</clients>
    <sources>2</sources>
    <threadpool>5</threadpool>
    <queue-size>102400</queue-size>
    <client-timeout>30</client-timeout>
    <header-timeout>15</header-timeout>
    <source-timeout>10</source-timeout>
    <burst-on-connect>1</burst-on-connect>
    <burst-size>65536</burst-size>
</limits>
  • Clients: Total number of concurrent listeners supported by the server
  • Sources: Maximum number of connected sources supported by the server - Icecast supports several sources at the same time, for instance, you can send the same broadcast signal but with several speeds, each one will be treated as an unique source.
  • Threadpool This is the number of threads that are started to handle client connections, default value is enough for streams with a low to medium traffic
  • Queue-size This is the maximum size in bytes of a listener queue
  • Client-timeout NOT in use
  • Header-timeout The maximum time (in seconds) to wait for a request to come in once the client has made a connection to the server. In general this value should not need to be tweaked
  • Source-timeout If a connected source does not send any data within this timeout period (in seconds), then the source connection will be removed from the server
  • Burst-on-connect With this enabled, a connecting client will be sent a burst of audio data from the stream to help the media player on the listener side to fill out the buffer quickly, however this will introduce a small latency (difference in time between when the source plays a clip and the listener hears a clip).
  • Burst-size The burst size is the amount of data (in bytes) to burst to a client at connection time, The default is 64kbytes which is a typical size used by most clients so changing it is not usually required. Only used if burst-on-connect is enabled

Authentication

This section contains all the users and passwords used for administration purposes or to connect sources and relays, some parameters in this section should be modified

<authentication>
    <source-password>YOUR PASSWORD HERE </source-password>
    <relay-user>relay</relay-user>
    <relay-password>YOUR PASSWORD HERE </relay-password>
    <admin-user>admin</admin-user>
    <admin-password>YOUR PASSWORD HERE </admin-password>
</authentication>

  • Source-password used by sources to connect to Icecast. Currently, the username for all source connections must be 'source'. This is likely to change in the future
  • admin-user and admin-password used for all administration functions. This includes retrieving statistics, accessing the web-based administration screens, etc. The administration interface can be accessed anytime that the server is working, using its ip address, with the format: http://your-ip:your-port/admin more information can be found below in the administration section
  • relay-user and relay-password Used in the master server as part of the authentication when a slave requests the list of streams to relay. The default username is 'relay'

YP Directory Settings

Use the following settings if you want your station to be listed on YP Icecast Directory Servers, You can config more than one listing, adding a new set of parameters and using the correct yp-url (provided by the listing server)

<directory>
   <yp-url-timeout>15</yp-url-timeout>
   <yp-url>http://dir.xiph.org/cgi-bin/yp-cgi</yp-url>
</directory>

  • yp-url-timeout is the maximum time Icecast will wait for a response from a directory server. The default value should be sufficient for most directory servers
  • yp-url Is thew address used by Icecast to comunicate with the Directory Server, This address must be provided by the Server owner

Misc Server Settings

<hostname>Your IP address here<hostname>

   You can use these two if you only want a single listening socket: (Note: Default values will work setting up a basic radio station)

   <port>8000</port>
   <bind-address>Your IP address here </bind-address>

Note: If you don't know your IP address follow the next steps:

IPConfig under DOS

A. Start - All programs - Accessories - Command Prompt
B. Type ipconfig «ENTER»
C. Take note of the number in front of the line IP Address
D. Close the Command Prompt Window

  • Port: The port used by the socket to boradcast de station
  • Bind-address: An optional IP address that can be used to bind to a specific network card. If not supplied, then it will bind to all interfaces

You may also have multiple <listen-socket> elements, in that case you should define a pair (port- bind-address) by each element available

<listen-socket>
   <port>8000</port>
   <bind-address>127.0.0.1</bind-address>
</listen-socket>
<listen-socket>
   <port>8001</port>
   <bind-address>127.0.0.1</bind-address>
   <shoutcast-compat>1</shoutcast-compat>
</listen-socket>
<fileserve>1</fileserve>
<shoutcast-mount>/live.nsv</shoutcast-mount>

  • shoutcast-compat: This flag (optional) will indicate that this port will operate in 'shoutcast-compatibility' mode. Use it only if you wish to use any of the shoutcast DJ tools, in that case, you will need to configure at least one socket as shoutcast-compatible

  • fileserve: An optional mountpoint to use when shoutcast DSP compatible clients connect. The default is /stream but can be overridden here to use an alternative name which may include an extension that some clients require for certain formats

There are several configuration settings that can be modified to satisfy your own requirements, but most of them are only need if you want to configure several streams with one server or you prefer to broadcast with several speeds using the same server, those settings are beyon this guide, however we encourage you to try them in order to obtain the best of Icecast.

Icecast Starting the server function

Starting Icecast Server is as easy as push one button; just click on Start server button, Icecast will start broadcasting the station send by the source client

To connect to your station follow the next steps after you setup and open the source client:

  1. Open Winamp
  2. On Winamp's menu click or select File
  3. Click or select play url
  4. type your-ip-address:your-port/stream.ogg (I.E 192.168.2.1:8000/stream.ogg)
  5. Enter

Syndicate

Syndicate content