Icecast : Créer un serveur de stream musical

Introduction



Icecast sert à installer un serveur de Stream sur sa machine.
Pratique pour diffuser de la musique à travers MIXXX par exemple.

Installation



Sur Gentoo, on installe le paquet icecast :

Code BASH :
emerge -av net-misc/icecast



Configuration



Voici un exemple de configuration.
Le fichier de config se trouve dans /etc/icecast2/icecast.xml.
Il est un peu commenté, le principal est de faire le point de montage pour les logiciels :

Code XML :
<icecast>
    <limits>
        <clients>100</clients>
        <sources>2</sources>
        <queue-size>524288</queue-size>
        <client-timeout>30</client-timeout>
        <header-timeout>15</header-timeout>
        <source-timeout>10</source-timeout>
        <burst-on-connect>1</burst-on-connect>
        <burst-size>65535</burst-size>
    </limits>
 
    <authentication>
        <!-- Sources log in with username 'source' -->
        <source-password>adrien</source-password>
        <relay-password>superpassworddelaballe</relay-password>
 
        <!-- Admin logs in with the username given below -->
        <admin-user>adrien</admin-user>
        <admin-password>superpassworddelaballe</admin-password>
    </authentication>
 
    <hostname>cluster.linuxtricks.fr</hostname>
    <location>Dijon, FRANCE</location>
    <admin>[email protected]</admin>
 
    <!-- Port d'écoute à ouvrir dans le FW -->
    <listen-socket>
        <port>8000</port>
    </listen-socket>
 
    <!-- Point de montage pour MIXXX -->
    <mount>
        <mount-name>/mix</mount-name>
        <username>adrien</username>
        <password>superpassworddelaballe</password>
        <max-listeners>100</max-listeners>
    </mount>
 
    <fileserve>1</fileserve>
 
    <paths>
        <basedir>/usr/share/icecast</basedir>
 
        <logdir>/var/log/icecast</logdir>
        <webroot>/usr/share/icecast/web</webroot>
        <adminroot>/usr/share/icecast/admin</adminroot>
        <!-- <pidfile>/usr/share/icecast/icecast.pid</pidfile> -->
 
        <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 -->
    </logging>
 
    <security>
        <chroot>0</chroot>
        <changeowner>
            <user>icecast</user>
            <group>nogroup</group>
        </changeowner>
    </security>
</icecast>


Lancer le serveur



Pour lancer le serveur (en root) :

Code BASH :
icecast -c /etc/icecast2/icecast.xml



Configurer un client : Exemple avec MIXXX



Dans la diffusion en Direct de MIXXX, indiquer le serveur Icecast2.
Indiquer le point de montage défini précédemment, puis l'identifiant et le mot de passe :

mixxx-icecast



Pour passer en live, on clique sur "Broadcast"

mixxx-broadcast-icecast



Et sur la page du serveur Icecast, on voit le point de montage et on peut écouter ce qui est diffusé :

icecast-server