Créer une webRadio libre et gratuite pour diffuser votre musique avec MPD et Icecast2

Cette note explique rapidement comment mettre en place un serveur audio (MPD), puis diffuser le flux au format OggVorbis sur Internet (Icecast2). Cette solution permet donc de réaliser facilement une webRadio peu gourmande en ressources, dont les usages variés raviront le musicien: diffusion de musique sur plusieurs PC aux 4 coins du monde, diffusion de compositions…

Le principe

MPD (Music Player Daemon) est un comme son nom l’indique un lecteur/serveur audio qui fonctionne sous forme de daemon (à la manière du serveur de mail exim4 par exemple, c’est à dire en tâche de fond). Cette solution remplacera avantageusement votre vieux lecteur xmms car sans interface graphique, la performance est optimale et sans fioriture. MPD se contrôle donc au moyen d’un client, qui va lui envoyer des commandes. Il existe plusieurs clients, certains graphiques, certains en console. J’utilise personnellement ncmpc, interface ncurse, légère, en mode texte, rapide et simple à utiliser (et tout au clavier!).

Installer et configurer MPD

Cette première partie détaille la configuration de MPD en tant que serveur audio autonome sur un seul ordinateur. Cela permet de lire l’ensemble de vos fichiers audio au format ogg ou mp3, d’écouter des webradios et bien plus encore…

Le package mpd est dans toutes les distributions et s’installe facilement avec aptitude par exemple sous Debian.

Editer le fichier /etc/mpd.conf, en changeant les paramètres

music_directory
playlist_directory
et éventuellement db_file, log_file, error_file et pid_file, surtout si vous prévoyez d’utiliser mpd dans un compte non root.

Par exemple chez moi:

music_directory        "/mnt/share/mp3"
playlist_directory    "/mnt/share/mp3/playlist"
db_file            "/mnt/share/mp3/.mpd/tag_cache"
log_file        "/mnt/share/mp3/.mpd/mpd.log"
error_file        "/mnt/share/mp3/.mpd/errors.log"
pid_file        "/mnt/share/mp3/.mpd/pid"

Eventuellement précisez quelle carte audio utiliser si vous en avez plusieurs:

audio_output {
    type        "alsa"
    name        "Via Chip"
    device      "hw:1,0" # optional
    format      "44100:16:2" #optional
}
mixer_type      "software"
state_file         "/var/lib/mpd/state"

NB: pour plus de sécurité, vous pouvez décommenter et modifier le paramètre user plus loin dans le fichier de configuration (mais dans ce cas, vous devez vous assurer que le user saisi a les droits d’écritures sur les fichiers définis précédemment (de log par exemple).

Lancer MPD

La première fois, il faut demander de créer la base de données du serveur, à partir de la commande:

# mpd --create-db

Pour lancer mpd:

# /etc/init.d/mpd start

Normalement, mpd se lancera à chaque démarrage du système, comme n’importe quel daemon.

Installer un client pour contrôler mpd

J’ai choisi ncmpc (la version ncurse de mcp, pur produit en ligne de commande), qui s’installe à partir du package Debian du même nom.

ncmcp se lance dans un terminal via la commande:

~ ncmpc

Une fois lancé, il se connecte directement au serveur mpd (sur le port 6600 par défaut).

Commandes de base de ncmpc

Je ne détaille pas, les principales commandes de ncmcp sont accessibles via la touche F1.

En synthèse l’utilisation est simple: votre bibliothèque musicale est accessible via la touche F3. Vous ajoutez des fichiers et des répertoires à votre playlist en vous déplaçant dans vos fichiers, puis en les sélectionnant à l’aide de la touche Espace.

La playlist est accessible via la touche F2. Vous pouvez sauvegarder une playlist en appuyant sur S. Vous pouvez lancer une recherche dans tous vos fichiers via la touche F5.

Configurer Icecast2, serveur de streaming

A ce stade, MPD émet un flux en local (sur vos enceintes). Nous allons le configurer pour qu’il émette également un flux oggVorbis en streaming.

Simplement modifier la section nommée SHOUT STREAMING du fichier /etc/mpd.conf:

audio_output {
        type            "shout"
        name            "Ma station"
        host            "mon hostname"
        port            "8000"
        mount           "/stream.ogg"
        password        "monpassword"
#     quality         "7.0"
        bitrate         "128"
        format          "44100:16:1"
#
# Optional Paramters
        user            "source"
        description     "Description de la Radio"
        genre           "Jazz"
} # end of audio_output

Laisser le nom ‘source’ pour le user (à priori).
Au niveau du hostname, j’ai mis le nom du serveur, sur le réseau interne (son IP privée même…).
Le mot de passe est important, vous devrez le reporter dans Icecast (à priori).

Au passage, décommentez également la ligne 198:

password                "XXXXXXX@read,add,control,admin"

Cela permet de protéger l’accès à MPD avec un mot de passe. Du coup, vous pourrez vous connecter au serveur via la commande:

~ ncmpc -P XXXXXXXX

Installation et configuration du serveur de diffusion Icecast2

Icecast2 permet de diffuser le flux généré par le serveur audio MPD à tout l’internet, en streaming. Icecast2 permet de diffuser un flux ”source”, mais également de relayer une autre station (relay, non expliqué et non mis en place ici).

Installer le package icecast2 via aptitude.

# vim /etc/icecast2/icecast.xml

Le fichier de configuration est en XML, c’est un peu touffu, mais facile à comprendre à la lecture.

Quelques paramètres que j’ai changé:

Ligne 3: Nombre de clients pouvant se connecter simultanément. J’ai limité, ayant un petit serveur peu puissant à la maison.

<clients>5</clients>

Ligne 25: reportez le mot de passe ‘monpassword’ de la source (mpd).

        <source-password>monpassword</source-password>

Ligne 31: mot de passe admin: j’ai mis celui défini dans mpd pour le compte admin (XXXXXXXX), mais je pense qu’il peut être différent.

       <admin-password>passwordAdminIcecast</admin-password>

Ligne 45: le hostname du serveur: j’ai mis mon adresse IP fixe

    <hostname>xx.yy.zz.ww</hostname>

Pour lancer Icecast2 au démarrage, en tant que daemon, il suffit d’éditer /etc/default/icecast2

et de modifier l’option ENABLE=true à la fin du fichier.

Stoppez icecast2 s’il est lancé pour recharger le fichier de configuration.

#/etc/init.d/icecast2 stop

Lancer le système

Sous root, faire

#/etc/init.d/mpd start
#/etc/init.d/icecast2 start

Pour créer la bibliothèque multimedia de mpd, faire:

# mpd --create-db

Lecture du flux OggVorbis

Sur la base du paramétrage précédent, le flux audio est accessible  à l’adresse:

http://hostname_publique:8000/stream.ogg

N’importe quel lecteur multimédia (xmms, vlc, Winamp…) sera capable de lire ce flux.

Administrer Icecast2

L’interface d’Icecast2 est accessible à l’adresse:

http://hostname_publique:8000

Dans la partie Admin, vous pouvez vous logguer en saisissant les identifiants du compte admin définis dans Icecast (admin / passwordAdminIcecast dans mon exemple).

Arrêter la diffusion

Il suffit d’arrêter les daemons, sous root:

# /etc/init.d/icecast2 stop
# /etc/init.d/mpd stop

Références:

http://www.musicpd.org
http://www.icecast.org/

http://blog.effraie.org/post/2006/11/06/MPD-et-icecast2-Webradio-ou-lecteur-ultime

GD Star Rating
loading...