Documentation technique : Debian
Documentation basée sur la distribution Debian

> > > Icecast 2 : Installation et configuration de base

Icecast 2 : Installation et configuration de base

Icecast2 est un serveur de streaming audio/vidéo open-source gérant les fichiers audio de type mp3 et ogg ainsi que les vidéos au format theora, particulièrement utile pour créer ses web radios et web tvs.

Il est le pendant libre de shoutcast.

Installation

Icecast2 n’est pas un logiciel qui évolue beaucoup. La version dans les dépots Debian est donc relativement à jour, nous choisissons donc de l’utiliser. Pour ce faire on utilisera la commande :

  1. sudo apt-get install icecast2

APT se chargera d’installer le serveur ainsi que l’ensemble de ses dépendances.

Première configuration de base

Le fichier de configuration d’Icecast2 (icecast.xml) se trouve dans le répertoire /etc/icecast2, on utilisera donc la commande suivante pour le modifier :

  1. sudo nano /etc/icecast2/icecast.xml

Attention : le fichier de configuration d’Icecast2 est au format XML, qui ne permet pas d’erreurs dans la syntaxe. Une erreur fréquente est l’oubli de fermeture d’une balise. Si une erreur existe dans le fichier de configuration et que le serveur ne démarre pas, on peut obtenir certaines informations concernant ladite erreur dans les fichiers de logs et notamment /var/log/icecast2/error.log.

Changer les mots de passe d’administration et de sources

La première chose à faire est de modifier les mots de passe par défaut à la fois pour l’administration mais aussi pour la connexion des sources.

Le code dans le fichier de configuration contenant ces mots de passe par défaut est :

  1. <authentication>
  2.         <!-- Sources log in with username 'source' -->
  3.         <source-password>hackme</source-password>
  4.         <!-- Relays log in username 'relay' -->
  5.         <relay-password>hackme</relay-password>
  6.  
  7.         <!-- Admin logs in with the username given below -->
  8.         <admin-user>admin</admin-user>
  9.         <admin-password>hackme</admin-password>
  10. </authentication>

Télécharger

Il suffit de modifier les valeurs de hackme et de admin.

NB : la signification de ces options sont :

  • source-password : mot de passe principal utilisé par les sources pour se connecter. Icecast2 permet d’avoir une identification spécifique par point de montage avec nom d’utilisateur et mot de passe mais ce mot de passe permet de se connecter à l’ensemble des points de montage en utilisant le nom d’utilisateur source [1] ;
  • relay-password : mot de passe utilisé pour les relais avec comme nom d’utilisateur relay comme pour source-password ;
  • admin-user : nom d’utilisateur pour accéder à l’interface web d’administration du serveur (nomalement http://ip_ou_nom_du_serveur:8000 par défaut) ;
  • admin-password : mot de passe administrateur de cette même interface ;

Modifier les informations de base du serveur

Il est ensuite important de modifier au moins le hostname du serveur qui sert à communiquer avec les annuaires de flux ainsi que la création des liens dans les playlistes. Cela fait partie des informations de base du serveur comme sa location et son admin qui, pour ces dernières sont des données facultatives.

On modifiera ces données de la sorte :

  1. <icecast>
  2.         <admin>email@admin_serveur.tld</admin>
  3.         <hostname>ssdomaine.admin_serveur.tld</hostname>
  4.         <location>Somewhere on earth</location>
  5.         .....
  6.         <!-- Suite de la configuration -->
  7.         .....
  8. </icecast>

Télécharger

Création d’un point de montage de base

Il est nécessaire ensuite de créer un point de montage de base sur lequel le client émetteur pourra se connecter pour envoyer sons ou vidéos et sur lequel également les clients auditeurs pourront recevoir le flux.

Il suffit d’ajouter dans la configuration quelque chose du genre (des informations sont mises en commentaire) :

  1. <icecast>
  2.      ......
  3.      <mount>
  4.         <!-- Nom du point de montage avec ou sans extension (.mp3,.ogg) -->
  5.         <mount-name>/point_test</mount-name>
  6.         <!-- Nom d'utilisateur spécifique à ce point,
  7.        si vous utilisez de vieux clients pour transmettre le flux, il faut mettre "source"
  8.        comme nom d'utilisateur -->
  9.         <username>utilisateur_du_point</username>
  10.         <!-- Mot de passe spécifique à ce point -->
  11.         <password>pass_pour_ce_point</password>
  12.         <!-- Nombre d'utilisateur maximal -->
  13.         <max-listeners>500</max-listeners>
  14.     </mount>
  15.     ......
  16. </icecast>

Télécharger

Tester la configuration

Afin de tester la configuration, il est nécessaire de changer d’utilisateur pour icecast2 tout d’abord :

  1. su icecast2 -s /bin/bash

Puis de lancer le serveur :

  1. icecast2 -c /etc/icecast2/icecast.xml

Vous devriez alors pouvoir voir le serveur à l’adresse http://ssdomaine.admin_serveur.tld:8000 et voir ses fichiers de logs dans le répertoire /var/log/icecast2.

Lancement en démon

Le démon Icecast2 est désactivé par défaut (utile le temps de bien régler la configuration), pour activer son fonctionnement, il suffit de modifier son fichier de configuration par défaut (fichier de configuration du script d’init) :

  1. sudo nano /etc/defaults/icecast2

Puis de modifier la ligne :

  1. ENABLE=false

En :

  1. ENABLE = true

Vous aurez alors la possibilité de lancer le démon [2] :

  1. sudo /etc/init.d/icecast2 start

Si vous n’avez pas modifié les données de port, le serveur devrait dorénavant être accessible à l’adresse : http://domaine.tld:8000 ainsi que toutes les autres adresses pointant sur le serveur si on ajoute le port :8000 à l’URL.

Résolution de quelques problèmes

Problème : le serveur a du mal à redémarrer

NB : Apparemment ce problème est résolu dans les dernières versions de Debian.

Il se peut qu’en utilisant la commande /etc/init.d/icecast2 restart le serveur s’arrête mais ne se relance pas, le problème étant que le serveur n’a pas le temps de s’éteindre avant que l’on essaie de le relancer. Pour ce faire, il peut être nécessaire d’augmenter le temps d’attente avant de le démarrer à nouveau. On édite d’abord le script de lancement :

  1. nano /etc/init.d/icecast2

et de modifier au niveau de l’action de restart en fin de fichier :

  1. restart)
  2.         echo -n "Restarting $DESC: "
  3.         start-stop-daemon --stop --oknodo --quiet --exec $DAEMON
  4.         sleep 1
  5.         start-stop-daemon --start --quiet --chuid $USERID:$GROUPID \
  6.                 --exec $DAEMON -- -b -c $CONFIGFILE
  7.         echo "$NAME."
  8.         ;;

Télécharger

en par exemple (seule la valeur de sleep est modifiée) :

  1. restart)
  2.         echo -n "Restarting $DESC: "
  3.         start-stop-daemon --stop --oknodo --quiet --exec $DAEMON
  4.         sleep 3
  5.         start-stop-daemon --start --quiet --chuid $USERID:$GROUPID \
  6.                 --exec $DAEMON -- -b -c $CONFIGFILE
  7.         echo "$NAME."
  8.         ;;

Télécharger

Le lien des listes XSPF sur la partie web ne fonctionnent pas

NB : Apparemment ce problème est résolu dans les dernières versions de Debian.

Si lorsque sur le serveur web d’icecast vous cliquez sur une liste de lecture au format XSPF et que vous vous retrouvez sur une erreur 404 ou du type Could not parse XSLT file, c’est que vous avez installé icecast avec le paquet de Debian Lenny dans lequel manque un fichier xslt.

On peut voir cela dans les logs du serveur icecast /var/log/icecast2/error.log sous la forme :

  1. [2011-01-19  23:10:00] WARN xslt/xslt_get_stylesheet Error checking for stylesheet file "/usr/share/icecast2/admin/xspf.xsl": No such file or directory

Ce fichier n’est même pas présent (le 15 janvier 2011) dans le paquet officiel actuel d’Icecast 2 2.3.2.

Pour palier à cela, nous allons récupérer les sources svn d’icecast2 et copier ledit fichier au bon endroit avec les commandes suivantes :

  1. # On vérifie que subersion est bien installé
  2. sudo apt-get install subversion
  3. # On récupère ensuite les sources dans notre Home
  4. cd ~
  5. svn co http://svn.xiph.org/icecast/trunk/icecast/ icecast
  6. # On finit en copiant le bon fichier
  7. cp icecast/admin/xspf.xsl /usr/share/icecast2/admin/xspf.xsl

Télécharger

Et le tour est joué, il vous suffit de réessayer de télécharger une des listes de lecture au format XSPF et tout devrait être revenu en ordre.

Notes

[1Certains anciens clients ne savent pas se connecter avec un nom d’utilisateur et un mot de passe, ils sont donc à éviter

[2Dans le cas contraire le message suivant sera affiché :

  1. icecast2 daemon disabled - read /etc/default/icecast2.
  • Auteur :
  • Publié le :
  • Mis à jour : 25/10/15

4 commentaires


Qui êtes-vous ?
[Se connecter]
Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.