Enable the Icecast daemon by adding the following line to your /etc/rc.conf file:
You'll need to make a copy the default Icecast config file:
$ cd /usr/local/etc/
$ cp icecast.xml.sample icecast.xml
Now you'll need to edit the icecast.xml file. Notable thing to change:
<source-password>- obviously the default hackme isn't a good choice
<admin-password>- double ditto
You'll want to use pkg_install the following:
- audio/darkice - Encodes audio from the sound card and sends it to the Icecast server.
- audio/icecast2 - Serves up the web stream.
- audio/streamripper - Saves the web stream to files. We use this to build the program archive.
- www/lynx - Terminal web browser, this is optional but it helps verify that Icecast is setup correctly.
The following pages will walk you through the configuration of these packages.
Darkice handles the nitty gritty of reading audio from the sound card and feeding it to Icecast. You can create multiple streams with different bit rate from a single input. The configuration detailed here creates two streams, one high bandwidth users and one for low bandwidth users.
This HOWTO walks you through the process of building a FreeBSD server to put a radio station on the internet. When you're finished you'll have a:
- Apache2 web server
- MySQL 5 database server
- Icecast2 MP3 webstream
- Drupal based website with:
- Program schedule
- MP3 Archive of broadcasts
This is the setup pioneered for use by KPSU, a college radio station in Portland Oregon, to stream and archive our broadcasts on the internet. I've released the code as the Drupal Audio and Station modules. You can find a list of some of the websites using the Station module.
All the software is free and open source. The only thing you've got to pay for is your time and hosting. While the details are FreeBSD specific, the general setup can be used for any UNIX like OS.
First, setup FreeBSD, use the handbook for that. Sorry to be so vague on details but that part of the setup is going to vary greatly depending on your hardware. The handbook will do a better job of explaining it than I could hope to do.
Once you've got a running server, start making your way through the following pages: