Posté par Yo' le vendredi 17 août 2007 (vue 11340 fois)
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...
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!).
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).
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.
J'ai choisi ncmcp (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:
~ ncmcp
Une fois lancé, il se connecte directement au serveur mpd (sur le port 6600 par défaut).
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.
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:
~ ncmcp -P XXXXXXXX
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
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
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.
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).
Il suffit d'arrêter les daemons, sous root:
# /etc/init.d/icecast2 stop
# /etc/init.d/mpd stop
http://www.musicpd.org
http://www.icecast.org/
http://blog.effraie.org/post/2006/11/06/MPD-et-icecast2-Webradio-ou-lecteur-ultime
Imprimé depuis http://www.xrousse.org - Le contenu de ce site est sous license Creative Commons Paternité 2.0. (http://creativecommons.org/licenses/by/2.0/fr)