Setting up Mp3 Streaming Server (Icecast) on VPS (port 80)

Step 1: Download RPM from following url as per your VPS architecture (e.g. Centos 64bit)

http://pkgs.org/centos-6-rhel-6/centalt-x86_64/icecast-2.3.3-1.el6.x86_64.rpm.html

cd /opt
wget http://pkgs.org/centos-6-rhel-6/centalt-x86_64/icecast-2.3.3-1.el6.x86_64.rpm/download/

Step 2: Install it using yum

yum install icecast-2.3.3-1.el6.x86_64.rpm

Step 3: Set Config

vim /etc/icecast.xml

Change source password, relay password, admin password. Also set mount point to ‘/live

<authentication>
<!-- Sources log in with username 'source' -->
 <source-password>mynewpass</source-password>
<!-- Relays log in username 'relay' -->
 <relay-password>mynewpass</relay-password>
<!-- Admin logs in with the username given below -->
 <admin-user>admin</admin-user>
 <admin-password>mynewpass</admin-password>
 </authentication>
<listen-socket>
 <port>8000</port>
  <shoutcast-mount>/live</shoutcast-mount>
 </listen-socket>

And that’s it. It will start listening on port 8000, when you start service.

Optionally you can also have multiple mount points by adding following config.

<mount>
 <mount-name>/live</mount-name>
 <password>pass-live</password>
 <max-listeners>100</max-listeners>
<dump-file>/tmp/live.mp3</dump-file>
 <fallback-mount>/live-backup</fallback-mount>
 <fallback-override>1</fallback-override>
 <fallback-when-full>1</fallback-when-full>
</mount>

Step 4: Start service + Set for auto start on boot

service icecast start
chkconfig incecast on

Step 5: Run on Port 80

If you want to run it on port 80, due to firewall issue of listeners … you can manage it using mod_proxy module of apache.

For that, check your httpd.conf and see if mod_proxy module is not commented.

LoadModule proxy_module modules/mod_proxy.so

Next, go to your apache public_html, and in .htaccess write following rule.

# streaming on port 80 - icecast
RewriteRule ^live.mp3$ http://domain.com:8000/live [P,L]

This will enable streaming via http. You can now access http://domain.com/live.mp3 to connect to live broadcast.

Step 6: Setting Streaming Server

Icecast is supported many free streaming servers like VLC and Winamp. But i prefer Samcast due to simpler interface but it’s trial and shows popup at random time to buy.

Open Samcast.
Click of Settings link on top -> Capture sound form device
You can select ‘Sound Mapper’ to broadcast speaker out or ‘Mic’

Click Encoder -> Click +
Choose MP3 Lame encoder -> Click OK

On first tab ‘Converter’ select your desired bitrate to stream (16k) and mode (mono/stereo)

On second tab ‘Server details’, select ‘Server Type’ to IceCast
Server IP: your-domain.com

Server Port: 8000 (default)
Password: mynewpass (as set above in tutorial)
Mount: /live (as set in config)
Optionally set, station name, description and website options.

Click OK, and it will add new encoder.

Select newly added encoder and click ‘Play’ button.
If everything goes fine, it’s will update status as ‘Encoding’

Now on main Samcast window, click circle blue button ‘Start’ to start streaming.

Debugging: If you wish to see log, please check

# tail -f /var/log/icecast/error.log

Step 7: Setting up client

We can have desktop clients like winamp or vlc which work smooth. Just open file and give your streamer path.

In our case, it’s http://domain.com/live.mp3
You will hear the playback after little buffering.

If you wish to have web based player, visit following link
http://andy.ehandysoft.com/shoutcast-players.html

JWPlayer is also very stable and work for mp3 streaming. A

In both cases, all we have to do is to give file path:
http://domain.com/live.mp3

That’s It. Phew, long article.

Share your thoughts & feedback

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: