Configurer un serveur de streaming audio

28 Dec. 2006
Auteur : hsyl20
Responsable : TrustRobot
Score ( voter ) :
Connexes : Même auteur | Même responsable | Historique
Le but de ce tutoriel est de vous guider dans la mise en place d'un serveur de streaming audio. Ainsi vous pourrez diffuser exactement ce que vous entendez dans vos enceintes. Attention, tout ce que vous entendez sera envoyé (vos discussions Skype, le son des films que vous regardez...) !!!

1. Alternatives à la solution proposée

La solution proposée ci-dessous vous permet d'envoyer tout ce que vous entendez à vos clients. Si vous ne voulez envoyer que certaines musiques ou autres, envisagez d'utiliser Kaffeine ou VLC par exemple qui proposent une option de diffusion.

2. Configuration du serveur

Utilisateurs peu expérimentés

Afin de faciliter au maximum la tâche pour les utilisateurs peu expérimentés, j'ai conçu un script pour amaroK que vous pouvez trouver ici. Une fois installé et configuré correctement, il vous suffira de lancer amaroK pour commencer à diffuser (attention : TOUT ce que vous écoutez sera envoyé, pas seulement la musique écoutée dans amaroK) et le titre de la chanson en cours de lecture dans amaroK sera envoyé aux clients qui vous écoutent. Ce script nécessite perl, le module perl-URI, iconv, wget, Icecast2 et Darkice. Vous pouvez les installer avec les utilitaires de votre distribution (urpmi, yum, apt-get...) ou à partir des sources (cf http://www.icecast.org/ et http://darkice.sourceforge.net/). Veillez à ce que Icecast ne soit pas lancé en tant que service au démarrage. Une fois ces dépendances installées, le script doit pouvoir être exécuté sans problème. Le mot de passe root vous sera demandé car l'utilitaire Darkice a besoin d'être exécuté en tant que root. Si vous ne rencontrez pas d'erreur et si votre configuration est "standard" (vous utilisez alsa et vous écoutez sur la première carte son), vous pouvez passer à la configuration du client.

Utilisateurs un peu plus expérimentés ou n'utilisant pas amaroK

Si vous n'utilisez pas amaroK, la solution proposée ci-dessous ne vous permettra pas d'envoyer le titre de la chanson que vous écoutez à vos clients (à supposer que vous souhaitiez diffuser une chanson). Téléchargez ceci et décompressez les fichiers icecast.xml et darkice.cfg. Ce sera les deux seuls dont nous aurons besoin. On supposera dans la suite qu'ils se trouvent dans /home/user/icecast. Installez Icecast2 et Darkice. Vous pouvez les installer avec les utilitaires de votre distribution (urpmi, yum, apt-get...) ou à partir des sources (cf http://www.icecast.org/ et http://darkice.sourceforge.net/). Veillez à ce que Icecast ne soit pas lancé en tant que service au démarrage. Maintenant dans une console, exécutez les commandes suivantes :
$ icecast -b -c /home/user/icecast/icecast.xml $ su # darkice -c /home/user/icecast/darkice.cfg
Si vous ne rencontrez pas d'erreur et si votre configuration est "standard" (vous utilisez alsa et vous écoutez sur la première carte son), vous pouvez passer à la configuration du client. Une fois que vous avez terminé votre session de streaming, faites un Ctrl-C dans la console pour terminer Darkice puis un killall icecast.

Utilisateurs expérimentés / configuration avancée

Si vous avez rencontré des problèmes lors des étapes précédentes ou si vous souhaitez faire une configuration plus avancée du serveur, je vais vous donner quelques indications. Si cela ne suffit pas à votre bonheur, je vous recommande de lire la documentation de Icecast et de Darkice.

3. Configuration du client

La configuration du client est très simple. Vous devez tout d'abord obtenir l'adresse IP du serveur. Pour cela utilisez la commande ifconfig en root sur le serveur. Une fois que vous avez l'adresse IP, si vous n'avez pas changé les fichiers de configuration, vous devez ouvrir l'adresse http://ip_du_serveur:8000/music.ogg avec un client compatible. Par défaut, le serveur diffuse un flux au format Ogg Vorbis. Les clients qui supportent ce format sont nombreux (amaroK, Kaffeine, VLC, winamp, XMMS...).