Tuesday, March 05, 2019

Configuring Icecast and BUTT

In my last post, I described some of the recent changes we've made to our live interpretation tech and described some lessons learned.  Now I want to try and walk someone through the process of setting up a similar system to ours.  I'm going to focus on Windows, Icecast and Broadcast Using This Tool (BUTT).  I may add a second post to show how this can be configured using Linux as well, but for now Windows will do.

For starters, you'll need a Windows machine (probably Windows 7 based on my recent experience, though YMMV).  After that you will:

  • Configure your Windows machine with either a static IP address or a DHCP reservation with your firewall.  (I'm a big fan of the DHCP reservation so you can take your machine elsewhere and it'll still work fine).
  • Download the two packages mentioned above: Icecast and BUTT.

Install the Tools

  • Install Icecast using the downloaded installer.  You can accept the defaults, but you might want to install it somewhere other than Program Files as you'll need to edit the configuration file and, given that it's a server, you might want to run as a non-system/non-privileged user.
  • Install BUTT using the downloaded installer.

Configure Icecast

Icecast uses an XML configuration file.  Edit that file in your favorite text editor.  You will need to make the following changes (at minimum ... there may be more things you can do to harden the server).
  1. Change the value of the <location>Earth</location> tag.  The value doesn't matter much, but Icecast will gripe at you if you don't.
  2. Change the <admin>icemaster@localhost</admin> tag to your contact address
  3. Change the <hostname>localhost</hostname> tag to your system's hostname
  4. In the <limits> section:
    1. set <queue-size>16384</queue-size>
    2. set <burst-size>16384</burst-size>
  5. In <authentication>, set the source, relay and admin passwords. 
Save the configuration and start the server with the icecast.bat file.  If you've done everything right, you should see a console window like this:

Configure BUTT

BUTT offers a nice UI for configuring the tool.  So, once you've started it, you can configure it using the UI.

Configure the server

  1. Click the settings button to the right of the VU meter
  2. Click the ADD button under the server drop down to configure your server.  Enter the following:
    1. Name: I used localhost just because, but you can call it what you want
    2. Type: Icecast
    3. Address: localhost
    4. Port: 8000
    5. Password: <source password from icecast config file>
    6. IceCast mountpoint: live.mp3 (or whatever you want it to be.  This is will be part of the URL for the Icecast server)

Configure Audio Settings

On the Audio tab you will configure the audio encoding settings.  The default assumes full CD quality 44100/stereo.  As this is voice only, you can greatly reduce your overhead and network usage by reducing this.  To do this, you will: 
  1. Select your audio input device
  2. Set channel to Mono
  3. Set Samplerate to 22050Hz
  4. Set the streaming bitrate to 64k

Save the settings and start streaming.

After you start, you might want to update the title of the stream using the Stream tab and update song name manually option.

Note: there is also an option on this tab to start streaming automatically.  Once you know you have the settings correct, enabling this option might be a good idea.  It simplifies the process.


Now that you have your system up and running, you can test the sound by starting VLC (or any streaming client) and opening the stream.  You should adjust your audio to suit.


I'm a big fan of creating documentation for volunteers to use.  As such, I created a HOWTO document for our team.  I've uploaded a sanitized version of this document here for you to use as a starting point.

No comments: