DEV Community

loading...

How to setup a streaming multimedia server (internet radio station)

djemos profile image Dimitris Tzemos Updated on ・3 min read

This is for slackel linux.
Same settings can be used in any linux distribution. You have to install icecast, mpd and gmpc (optional) in your linux distribution.

what is Icecast

Icecast is free server software for streaming multimedia. Icecast, is a program that streams audio data to listeners.

what is mpd

mpd is a music player daemon - a daemon for playing music

what is gmpc

Gnome Music Player Client (gmpc) is a gui front-end for mpd

Let begin:

  • Obtain a dns domain

"Obtain a DNS domain" and create one with a dynamic dns provider (e.g. https://www.noip.com )
Port forward tcp, udp port 8000 using your router interface
i hope you know how to do this. e.g. if your laptop has internal ip 192.168.2.4 for example you have to set router port forwarding 192.168.2.4 to 8000 port so users can reach you from outside to 192.168.2.4 internal ip

  • Getting and Installing icecast mpd and its gui front-end gmpc

     sudo slapt-get -u
     sudo slapt-get -i icecast mpd gmpc
    
  • Setting up icecast config file

Open file /etc/icecast.xml and change some settings:

<source-password>hackme</source-password> to whatever you like
<relay-password>hackme</relay-password> to whatever you like
<admin-user>admin</admin-user> to whatever you like
<admin-password>hackme</admin-password> to whatever you like
<shoutcast-mount>/live</shoutcast-mount> to whatever you like, if it is not set then default /stream will be used e.g. set it to live

<hostname>localhost</hostname> to your dynamic domain name e.g. mediaserver.noip.me

 <!-- add this if you want your station listing on icecast directory, so people all over the world can find you -->
 <directory>
    <yp-url-timeout>15</yp-url-timeout>
    <yp-url>http://dir.xiph.org/cgi-bin/yp-cgi</yp-url>
    <public>1</public>
 </directory>
 <security>
  <chroot>0</chroot>
   <changeowner>
     <user>nobody</user>
     <group>nogroup</group>
   </changeowner>
  </security>  

Save file /etc/icecast.xml

  • prepare your mp3 files directory

put your mp3 files under a directory e.g. ~/Desktop/mp3

  • create your .mpdconf
    run

     mpd-initial.sh
    

a file ~/.mpdconf will be created in your home directory

  • Edit this file and change it as follows

    music_directory     "~/Desktop/mp3"
    playlist_directory      "~/.mpd/playlists"
    log_file            "~/.mpd/log"
    pid_file            "~/.mpd/pid"
    state_file          "~/.mpd/state"
    bind_to_address "localhost"
    port                "6600"
    input {
        plugin "curl"
     }
    audio_output {
    type        "shout"
    encoding    "mp3"           # optional
    name        "Ariadni Greek Radio"
    host        "localhost"
    port        "8000"
    mount       "/live" # same as above in icecast.xml
    password    "hackme" # password_same_as icecast_server_password_above"
    bitrate     "128"
    format      "44100:16:2"
    description "Watever you like e.g Rock" # optional
    url  "http://mediaserver.noip.me"   # optional but same as above in icecast.xml
    genre   "your genre e.g. Greek"     # optional
    public  "yes"     # optional
    mixer_type    "software"  # optional
    }
    # Need this so that mpd still works if icecast is not running
    audio_output {
    type "alsa"
    name "fake out"
    driver "null"
    mixer_type      "software"
    }
    # Character Encoding
    # If file or directory names do not display correctly for your locale then you 
    # may need to modify this setting.
    #
    filesystem_charset "UTF-8"
    #
    # This setting controls the encoding that ID3v1 tags should be converted from.
    #
    id3v1_encoding  "ISO-8859-1"
    #
    
  • create a playlist

    find ~/Desktop/mp3/*.mp3 > ~/.mpd/playlists/myplaylist.m3u
    
  • run icecast and mpd

    sudo icecast -c /etc/icecast.xml -b
    mpd ~/.mpdconf
    
  • run gmpc from menus and stop or play the songs you like.
    check "Repeat mode" and "Random mode" under Control menu

tip:
can create a file ~/icecast.sh including the lines

    sudo icecast -c /etc/icecast.xml -b
    mpd ~/.mpdconf

and run it to not have to type again every time want to run your media server. Just type

    sh ~/icecast.sh

You and your listeners can listen to your internet radio by typing in a browser or vlc or clementine or smplayer the url
http://mediaserver.noip.me:8000/live

In slackel.gr site the ariadni radio http://ariadni.noip.me:8000/live has been set up as above and streaming from my laptop.

Discussion (3)

pic
Editor guide
Collapse
iptvlive profile image
iptv-live • Edited

Thanks, we use Live Streaming in our project for IPTV Playlists

Collapse
hykimhok profile image
hykimhok

I can't join iptv.live. Can you help me?

Collapse
th3n00bc0d3r profile image
Muhammad

Live Streaming Radio... Really Interesting to try and setup with.