Run Your Own Webradio Station With Icecast2 And Ices2

Version 1.0
Author: Falko Timme

This tutorial describes how to set up an audio streaming server with Icecast2. In order that Icecast2 can stream audio to listeners we install Ices2. Ices2 is a program that sends audio data to an Icecast2 server to broadcast to clients. Ices2 can either read audio data from disk (Ogg Vorbis files), or sample live audio from a sound card and encode it on the fly. In this article we will let Ices2 read .ogg files from the local hard disk.

I do not issue any guarantee that this will work for you!

 

1 Preliminary Note

As mentioned in the introduction, Ices2 can read from multiple sources and send audio data to the Icecast2 server. In this article we will let Ices2 read .ogg files from the local hard disk (playlist mode), and we will install Icecast2 and Ices2 on the same system.

Ices2 supports Ogg Vorbis files only, so if you have .mp3 files that you want to stream you should convert them to .ogg. (In earlier versions Ices supported MP3 files as well, but this support was given up because MP3 is a patented and proprietary encoding technology whereas Ogg Vorbis is an open and patent-free audio encoding technology.)

In this example my system uses Debian Etch. The procedure should be identical for Ubuntu systems. My system has the IP address 192.168.0.100.

 

2 Install And Configure Icecast2

To install Icecast2 we simply run

apt-get install icecast2

Afterwards we must edit /etc/icecast2/icecast.xml. Most default values should work fine for now, but you should change the passwords in the <authentication>...</authentication> section. The source-password is the password that Ices2 will later on use to connect to Icecast2; the admin-password is the password that the admin will use in Icecast2's web interface; we won't use the relay-password, but anyway you should change it.

vi /etc/icecast2/icecast.xml
[...]
    <authentication>
        <!-- Sources log in with username 'source' -->
        <source-password>password1</source-password>
        <!-- Relays log in username 'relay' -->
        <relay-password>password2</relay-password>

        <!-- Admin logs in with the username given below -->
        <admin-user>admin</admin-user>
        <admin-password>password3</admin-password>
    </authentication>
[...]

Afterwards edit /etc/default/icecast2 and set ENABLE to true:

vi /etc/default/icecast2
# Defaults for icecast2 initscript
# sourced by /etc/init.d/icecast2
# installed at /etc/default/icecast2 by the maintainer scripts

#
# This is a POSIX shell fragment
#

# Full path to the server configuration file
CONFIGFILE="/etc/icecast2/icecast.xml"

# Name or ID of the user and group the daemon should run under
USERID=icecast2
GROUPID=icecast

# Edit /etc/icecast2/icecast.xml and change at least the passwords.
# Change this to true when done to enable the init.d script
ENABLE=true

That's it already, we can now start the Icecast2 server:

/etc/init.d/icecast2 start

You can now direct your browser to http://192.168.0.100:8000/ (replace 192.168.0.100 with your own IP address or FQDN) and browse through the web interface:

Share this page:

Suggested articles

10 Comment(s)

Add comment

Comments

By: Jason

I got the same result & I as well would like instructions for using the browser to listen to the stream.

By: WriterX

Thank you for making my life much, much easier than all the other Icecast guides did. Being a noob to linux you really helped me out, especially when it came to just installing Icecast. One simple command... not a few pages of complicated orders and instructions that I could not understand.

Respect, and my thanks!

By: Filip

Thank you very much for this writeup. However I ran into a problem. I did exactly the steps above but the server refuses connection when I try to open ADDR:8000 in my browser. `systemctl status icecast2.service` says the service is running. Anyone else experiences it as well? Thank you.

By: Filip

Solved. Sadly the only thing that helped was to restart the Debian machine. From that moment on everything works as configured.

By: mohan

excellent job guys

By: Pipo

 dont know whats missing here but i did everything like above but it does not work. I must say i have Apache running on the server so maybe thats the problem.

any suggestions on how to get it working with debian 9 (stretch) ?

By: Zort

OK but if dont work, try to change 8000 to 8001. It is great solution for me. 

By: vivekgupta

for playing mp3 file what configuration we have do

By: XDV

vi /etc/ices2/ices-playlist.xmlcould not edit this file. it is READONLY

 

By: Rocatel

Bonjour, merci pour le travail, ca fonctionne parfaitement. cependant j'ai une question. Peut on mettre plusieurs sources audio ? Genre 2 ou 3 ?Merci