Ceci est une ancienne révision du document !



Comment créer sa webradio ?

Ce tutoriel a pour but d'expliquer le plus simplement possible l'installation d'une Webradio sous Ubuntu.

Les webradios sont des stations plus ou moins semblables aux stations de radio. La particularité d’une webradio est qu’elle est diffusée sur Internet.

Vérifiez que les dépôts Universe/Multiverse soient activés.

Cliquez pour installer les paquets (Ubuntu ≥ 8.04 LTS).

Installez les paquets icecast2 mpd.

Créer un fichier de configuration par défaut :

sudo dpkg-reconfigure mpd

La configuration de MPD se fait par un simple fichier texte. Éditer le fichier /etc/mpd.conf.

Voici un exemple du fichier « mpd.conf » à modifier en fonction de votre configuration !

######################## REQUIRED PATHS ########################
# You can put symlinks in here, if you like. Make sure that
# the user that mpd runs as (see the 'user' config parameter)
# can read the files in this directory.
music_directory		"/home/pseudo/Musiques" #<----- LE CHEMIN VERS VOS FICHIERS DE MUSIQUES
playlist_directory	"/var/lib/mpd/playlists"
db_file			"/var/lib/mpd/tag_cache"
log_file		"/var/log/mpd/mpd.log"
error_file		"/var/log/mpd/errors.log"
pid_file		"/var/run/mpd/pid"
################################################################


######################## DAEMON OPTIONS ########################
#
# If started as root, MPD will drop root privileges and run as
# this user instead.  Otherwise, MPD will run as the user it was
# started by.  If left unspecified, MPD will not drop root
# privileges at all (not recommended).
#
user                            "mpd"
#
# The address and port to listen on.
#
#bind_to_address                 "127.0.0.1"
#port                            "6600"
#
# Controls the amount of information that is logged.  Can be
# "default", "secure", or "verbose".
#
#log_level                       "default"
#
################################################################


########################## PERMISSIONS #########################
#
# MPD can require that users specify a password before using it.
# You may specify one ore more here, along with what users who
# log in with that password are allowed to do.
#
password                        "VOTRE_MOT_DE_PASSE@read,add,control,admin"  #<----- REMPLASSER 'VOTRE_MOT_DE_PASSE'
#
# Specifies what permissions a user who has not logged in with a
# password has.  By default, all users have full access to MPD
# if no password is specified above, or no access if one or
# more passwords are specified.
#
#default_permissions             "read,add,control,admin"
#
################################################################


########################## AUDIO OUTPUT ########################
audio_output {
        type                    "shout"
        name                    "Mydoom666 Stream" #<----- NOM DE VOTRE WEBRADIO
        host                    "127.0.0.1"
        port                    "8000"

        mount                   "/mydoom666" #<----- NOM DE LA PLAYLIST SANS L'EXTENSION
        password                "VOTRE_MOT_DE_PASSE" #<----- REMPLASSER 'VOTRE_MOT_DE_PASSE'
        quality                 "5.0"
#        bitrate                 "128"
        format                  "44100:16:1"
#        user                    "source"                # optional
        description             "Mydoom666's Zik" #<----- LA DESCRIPTION DE VOTRE WEBRADIO
        genre                   "MaZikaMoi"
#        public                  "yes"                    # optional
}
#
# Force all decoded audio to be converted to this format before
# being passed to the audio outputs.
#
#audio_output_format             "44100:16:2"
#
################################################################


############################# LIMITS ###########################
#
# These are various limits to prevent MPD from using too many
# resources.  You should only change them if they start
# restricting your usage of MPD.
#
connection_timeout              "60" 
max_connections                 "5" #<----- NOMBRE DE CONNECTION MAXIMUM
max_playlist_length             "16384"
max_command_list_size           "2048"
max_output_buffer_size          "8192"
#
################################################################

Éditez le fichier /etc/icecast2/icecast.xml, fichier de configuration de Icecast2.

Il y a pas grand chose à modifier, à part les mots de passe. ;-)

Exemple de fichier (à adapter à votre configuration) :

FIXME Préciser ce qu’il y a à modifier sans montrer l'intégralité du fichier. — Ner0lph, le 13/04/2008, à 23:55
<icecast>
    <limits>
        <clients>5</clients>
        <sources>5</sources>
        <threadpool>5</threadpool>
        <queue-size>524288</queue-size>
        <client-timeout>30</client-timeout>
        <header-timeout>15</header-timeout>
        <source-timeout>10</source-timeout>
        <!-- If enabled, this will provide a burst of data when a client 
             first connects, thereby significantly reducing the startup 
             time for listeners that do substantial buffering. However,
             it also significantly increases latency between the source
             client and listening client.  For low-latency setups, you
             might want to disable this. -->
        <burst-on-connect>1</burst-on-connect>
        <!-- same as burst-on-connect, but this allows for being more
             specific on how much to burst. Most people won't need to
             change from the default 64k. Applies to all mountpoints  -->
        <burst-size>65535</burst-size>
    </limits>
 
    <authentication>
        <!-- Sources log in with username 'source' -->
        <source-password>argounay</source-password>
        <!-- Relays log in username 'relay' -->
        <relay-password>argounay</relay-password>
 
        <!-- Admin logs in with the username given below -->
        <admin-user>admin</admin-user>
        <admin-password>argounay</admin-password>
    </authentication>
 
    <!-- Uncomment this if you want directory listings -->
    <!--
    <directory>
        <yp-url-timeout>15</yp-url-timeout>
        <yp-url>http://dir.xiph.org/cgi-bin/yp-cgi</yp-url>
    </directory>
     -->
 
    <!-- This is the hostname other people will use to connect to your server.
    It affects mainly the urls generated by Icecast for playlists and yp
    listings. -->
    <hostname>127.0.0.1</hostname>
 
    <!-- You can use these two if you only want a single listener -->
    <!--<port>8000</port> -->
    <!--<bind-address>127.0.0.1</bind-address>-->
 
    <!-- You may have multiple <listener> elements -->
    <listen-socket>
        <port>8000</port>
        <!-- <bind-address>127.0.0.1</bind-address> -->
    </listen-socket>
    <!--
    <listen-socket>
        <port>8001</port>
    </listen-socket>
    -->
 
    <!--<master-server>127.0.0.1</master-server>-->
    <!--<master-server-port>8001</master-server-port>-->
    <!--<master-update-interval>120</master-update-interval>-->
    <!--<master-password>hackme</master-password>-->
 
    <!-- setting this makes all relays on-demand unless overridden, this is
         useful for master relays which do not have <relay> definitions here.
         The default is 0 -->
    <!--<relays-on-demand>1</relays-on-demand>-->
 
    <!--
    <relay>
        <server>127.0.0.1</server>
        <port>8001</port>
        <mount>/example.ogg</mount>
        <local-mount>/different.ogg</local-mount>
        <on-demand>0</on-demand>
 
        <relay-shoutcast-metadata>0</relay-shoutcast-metadata>
    </relay>
    -->
 
    <!-- Only define a <mount> section if you want to use advanced options,
         like alternative usernames or passwords
    <mount>
        <mount-name>/example-complex.ogg</mount-name>
 
        <username>othersource</username>
        <password>hackmemore</password>
 
        <max-listeners>1</max-listeners>
        <dump-file>/tmp/dump-example1.ogg</dump-file>
        <burst-size>65536</burst-size>
        <fallback-mount>/example2.ogg</fallback-mount>
        <fallback-override>1</fallback-override>
        <fallback-when-full>1</fallback-when-full>
        <intro>/example_intro.ogg</intro>
        <hidden>1</hidden>
        <no-yp>1</no-yp>
        <authentication type="htpasswd">
                <option name="filename" value="myauth"/>
                <option name="allow_duplicate_users" value="0"/>
        </authentication>
        <on-connect>/home/icecast/bin/stream-start</on-connect>
        <on-disconnect>/home/icecast/bin/stream-stop</on-disconnect>
    </mount>
 
    <mount>
        <mount-name>/auth_example.ogg</mount-name>
        <authentication type="url">
            <option name="mount_add"       value="http://myauthserver.net/notify_mount.php"/>
            <option name="mount_remove"    value="http://myauthserver.net/notify_mount.php"/>
            <option name="listener_add"    value="http://myauthserver.net/notify_listener.php"/>
            <option name="listener_remove" value="http://myauthserver.net/notify_listener.php"/>
        </authentication>
    </mount>
 
    -->
 
    <fileserve>1</fileserve>
 
    <!-- set the mountpoint for a shoutcast source to use, the default if not
         specified is /stream but you can change it here if an alternative is
         wanted or an extension is required
    <shoutcast-mount>/live.nsv</shoutcast-mount>
    -->
 
    <paths>
		<!-- basedir is only used if chroot is enabled -->
        <basedir>/usr/share/icecast2</basedir>
 
        <!-- Note that if <chroot> is turned on below, these paths must both
             be relative to the new root, not the original root -->
        <logdir>/var/log/icecast2</logdir>
        <webroot>/usr/share/icecast2/web</webroot>
        <adminroot>/usr/share/icecast2/admin</adminroot>
        <!-- <pidfile>/usr/share/icecast2/icecast.pid</pidfile> -->
 
        <!-- Aliases: treat requests for 'source' path as being for 'dest' path
             May be made specific to a port or bound address using the "port"
             and "bind-address" attributes.
          -->
        <!--
        <alias source="/foo" dest="/bar"/>
          -->
        <!-- Aliases: can also be used for simple redirections as well,
             this example will redirect all requests for http://server:port/ to
             the status page
          -->
        <alias source="/" dest="/status.xsl"/>
    </paths>
 
    <logging>
        <accesslog>access.log</accesslog>
        <errorlog>error.log</errorlog>
        <!-- <playlistlog>playlist.log</playlistlog> -->
      	<loglevel>4</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error -->
      	<logsize>10000</logsize> <!-- Max size of a logfile -->
        <!-- If logarchive is enabled (1), then when logsize is reached
             the logfile will be moved to [error|access|playlist].log.DATESTAMP,
             otherwise it will be moved to [error|access|playlist].log.old.
             Default is non-archive mode (i.e. overwrite)
        -->
        <!-- <logarchive>1</logarchive> -->
    </logging>
 
    <security>
        <chroot>0</chroot>
        <!--
        <changeowner>
            <user>nobody</user>
            <group>nogroup</group>
        </changeowner>
        -->
    </security>
</icecast>

Pour faire tourner Icecast2 en tache de fond, éditez le fichier /etc/default/icecast2 et modifiez à la fin du fichier pour obtenir :

ENABLE=true

Terminé ! :-D

Relancer les services mpd et icecast2 :

sudo /etc/init.d/mpd restart
sudo /etc/init.d/icecast2 restart

Puis créer la base de donnée de MPD :

sudo mpd –create-db
Vous pouvez maintenant accéder au serveur icecast2 à l’adresse http://adresse.com:8000/ (http://127.0.0.1:8000/ si vous êtes en local).

La playlist se trouve à l’adresse : http://adresse.com:8000/nom_de_la_playlist.m3u.

Vous avez choisi le nom de cette playlist lors de la configuration du fichier « mpd.conf ». (Que vous pouvez modifier a tout moment, il faudra juste penser a relancer les services pour que les modifications soient prises en compte.

GMPC

GMPC est un client qui permet l’utilisation de MPD avec une interface graphique.

Installez le paquet gmpc pour installer GMPC.

Dernière étape, ouvrir le port 8000 dans le pare-feu. Le port 8000 (par défaut) est celui utilisé par Icecast2 pour envoyer les flux aux clients. Pour cela, utilisez Firestarter.

Il est possible d’administrer votre serveur a distance en ouvrant le port 6600 (par défaut). Il suffira ensuite dans GMPC de bien spécifier l’adresse distante du serveur.

Attention, ces ports doivent être ouverts dans votre routeur et redirigés vers l’adresse IP de la machine serveur.
  • tutoriel/comment_creer_une_webradio.1208266595.txt.gz
  • Dernière modification: Le 18/04/2011, 14:50
  • (modification externe)