Create Your Own Radio Station Online
This tutorial will help you build an online radio station so that you can stream music over the Internet. You will learn how to set up a Shoutcast server on Ubuntu Gutsy and also to set up Icecast 0.4. Please note that some of the settings for this project may require you to make decisions on copywrite issues, please observer all copyright issues. Download the shoutcast server (latest version): http://www.shoutcast.com/download/files.phtml
Copy it to the /usr directory and create a folder called shout: sudo cp sc_serv_1.9.8_Linux.tar.gz sudo mkdir shout cd /usr/shout tar zxvf sc_serv_1.9.8_Linux.tar.gz chmod 755 sc_serv Edit the config File: vim sc_serv.conf Now the important part is changing the password line. So you will see the work Password, make sure you change it to a good password. Password=MakeANewPassword Start the Server: sudo ./sc_serv You should see that it is running. Create a way to feed Music Into the Server This will use ices0.4 so you will be able to use mp3s. Linux Server Training Options -- CentOS or Ubuntu Courses
| | | | | |
http://downloads.us.xiph.org/releases/ices/ices-0.4.tar.gz Save the file to the /usr directory. sudo tar -zxvf ices-0.4.tar.gz This will create a folder called ices-0.4. Move into this folder. cd ices-0.4 Install Needed Applications Make sure your /etc/apt/sources.lst has these sources as you will need them to download the files you need.
deb http://archive.ubuntu.com/ubuntu gutsy main restricted deb-src http://archive.ubuntu.com/ubuntu gutsy main restricted deb http://archive.ubuntu.com/ubuntu gutsy-updates main restricted deb-src http://archive.ubuntu.com/ubuntu gutsy-updates main restricted deb http://archive.ubuntu.com/ubuntu gutsy universe deb-src http://archive.ubuntu.com/ubuntu gutsy universe deb http://security.ubuntu.com/ubuntu gutsy-security main restricted deb-src http://security.ubuntu.com/ubuntu gutsy-security main restricted deb http://security.ubuntu.com/ubuntu gutsy-security universe deb-src http://security.ubuntu.com/ubuntu gutsy-security universe deb http://archive.ubuntu.com/ubuntu gutsy multiverse deb-src http://archive.ubuntu.com/ubuntu gutsy multiverse deb http://archive.ubuntu.com/ubuntu gutsy-backports main restricted universe multiverse deb http://archive.canonical.com/ubuntu gutsy partner deb http://packages.medibuntu.org/ gutsy free non-free It is important you have all of these resources in order to get the applications you need. Be sure to update and then install several required applications. sudo apt-get update
sudo apt-get install libshout3 libshout3-dev liblame-dev libxml-dev Make sure you have a compiler. sudo apt-get install gcc g++ make
Compile ices Move into the directory that you created. cd /usr/ices-0.4
./configure --with-lame
If you do not have errors then continue, if you do have errors then download the needed dependencies. Your whole process will fail if you do not resolve these dependencies. make
sudo make install Create a mp3 Directory You can create the directory anywhere but one good location might be /mp3. sudo mkdir /mp3 Copy your mp3s into that location. Now create your playlist of the mp3s that you have in the directory. find /mp3 -type f -name “*.mp3” > /mp3/playlist.txt
Now edit your config file for ices. sudo vim /usr/local/etc/ices.conf.dist
Individual topics that must be changed are listed and then you can see how they look in the text file below.
Change the Playlist to /mp3 You will need to enter the whoe path to the playlist.txt. playlist handler. --> <File>/mp3/playlst.txt<File>Change the Hostname You may have to run the command: hostname
This should provide the hostname that you should enter for your server. <!-- Hostname or ip of the icecast server you want to connect to --> <Hostname>radio/Hostname> Change the Password <!-- Encoder password on the icecast server --> <Password>AGoodPassword</Password>Change Protocol to icy <!-- Header protocol to use when communicating with the server. Shoutcast servers need "icy", icecast 1.x needs "xaudiocast", and icecast 2.x needs "http". --> <Protocol>icy</Protocol> l<?xml version="1.0"?> <ices:Configuration xmlns:ices="http://www.icecast.org/projects/ices"> <Playlist> <!-- This is the filename used as a playlist when using the builtin playlist handler. --> <File>/mp3/playlst.txt<File> <!-- Set this to 0 if you don't want to randomize your playlist, and to 1 if you do. --> <Randomize>1</Randomize> <!-- One of builtin, perl, or python. --> <Type>builtin</Type> <!-- Module name to pass to the playlist handler if using perl or python. If you use the builtin playlist handler then this is ignored --> <Module>ices</Module> <!-- Set this to the number of seconds to crossfade between tracks. Leave out or set to zero to disable crossfading (the default). <Crossfade>5</Crossfade> --> </Playlist>
<Execution> <!-- Set this to 1 if you want ices to launch in the background as a daemon --> "/usr/local/etc/ices.conf.dist" 78L, 3143C daemon --> <Background>0</Background> <!-- Set this to 1 if you want to see more verbose output from ices --> <Verbose>0</Verbose> <!-- This directory specifies where ices should put the logfile, cue file and pid file (if daemonizing). Don't use /tmp if you have l33t h4x0rz on your server. --> <BaseDirectory>/tmp</BaseDirectory> </Execution>
<Stream> <Server> <!-- Hostname or ip of the icecast server you want to connect to --> <Hostname>radio/Hostname> <!-- Port of the same --> <Port>8000</Port> <!-- Encoder password on the icecast server --> <Password>AGoodPassword</Password> <!-- Header protocol to use when communicating with the server. Shoutcast servers need "icy", icecast 1.x needs "xaudiocast", and icecast 2.x needs "http". --> <Protocol>icy</Protocol> </Server>
<!-- The name of the mountpoint on the icecast server --> <Mountpoint>/ices</Mountpoint> <!-- The name of the dumpfile on the server for your stream. DO NOT set this unless you know what you're doing. <Dumpfile>ices.dump</Dumpfile> --> <!-- The name of you stream, not the name of the song! --> <Name>Default stream</Name> <!-- Genre of your stream, be it rock or pop or whatever --> <Genre>Default genre</Genre> <!-- Longer description of your stream --> <Description>Default description</Description> <!-- URL to a page describing your stream --> <URL>http://localhost/</URL> <!-- 0 if you don't want the icecast server to publish your stream on the yp server, 1 if you do --> <Public>0</Public>
<!-- Stream bitrate, used to specify bitrate if reencoding, otherwise just used for display on YP and on the server. Try to keep it accurate --> <Bitrate>128</Bitrate> <Genre>Default genre</Genre> <!-- Longer description of your stream --> <Description>Default description</Description> <!-- URL to a page describing your stream --> <URL>http://localhost/</URL> <!-- 0 if you don't want the icecast server to publish your stream on the yp server, 1 if you do --> <Public>0</Public>
<!-- Stream bitrate, used to specify bitrate if reencoding, otherwise just used for display on YP and on the server. Try to keep it accurate --> <Bitrate>128</Bitrate> <!-- If this is set to 1, and ices is compiled with liblame support, ices will reencode the stream on the fly to the stream bitrate. --> <Reencode>0</Reencode> <!-- Number of channels to reencode to, 1 for mono or 2 for stereo --> <!-- Sampe rate to reencode to in Hz. Leave out for LAME's best choice <Samplerate>44100</Samplerate> --> <Channels>2</Channels> </Stream> </ices:Configuration>
Start up the program and it should be working.
ices -c /usr/local/etc/ices.conf.dist
|