Cet article est la suite de celui-ci!
Prérequis
Au moins avoir suivi les parties 1 et 2 de cette série de tutos.
Objectif
Là, on rentre dans le dur des spécificités de Raspbian et je suis fier (même si vous vous en foutez) de vous dire que les lignes suivantes sont le fruit de ma propre transpiration! Je suis donc ravi de vous en faire profiter.
L’ajout d’une source n’est pas facile car MPD n’existe que pour faire tourner une source à la fois, même si elle est propagée sur plusieurs sorties simultanément.
Ce qui veut dire, en toute logique, que pour avoir plusieurs sources simultanées, il faut… Plusieurs MPD. Suivez le guide!
Procédure
- Duplication des fichiers utilisés
Dans un premier temps, nous allons dupliquer l’ensemble des éléments de MPD qui nous intéressent vers une instance que nous appellerons MPD2 :
sudo cp -a /etc/mpd.conf /etc/mpd2.conf sudo cp -a /var/lib/mpd /var/lib/mpd2 sudo cp -a /run/mpd /run/mpd2 sudo cp -a /usr/bin/mpd /usr/bin/mpd2 sudo cp -a /etc/init.d/mpd /etc/init.d/mpd2 sudo cp -a /lib/systemd/system/mpd.service /lib/systemd/system/mpd2.service sudo cp -a /etc/default/mpd /etc/default/mpd2 sudo cp -a /var/log/mpd /var/log/mpd2
2. Mise à jour de /etc/init.d/mpd2
sudo nano/etc/init.d/mpd2
Ce fichier permet de lancer notre seconde instance de mpd au démarrage. Afin que cela fonctionne, il va falloir altérer les lignes suivantes :
# Provides: mpd2 ... NAME=mpd2 DESC="Music Player Daemon #2" DAEMON=/usr/bin/mpd2 MPDCONF=/etc/mpd2.conf ... if dpkg-statoverride --list --quiet /run/mpd2 > /dev/null; then ... dpkg-statoverride --force --quiet --update --add $( dpkg-statoverride --list --quiet /run/mpd2 ) 2> /dev/null
Sauvegardez et quittez.
3. Mise à jour de /lib/systemd/system/mpd2.service
sudo nano /lib/systemd/system/mpd2.service
La suite consiste à mettre à jour le fichier de service de notre nouvelle instance. Altérez donc les lignes suivantes :
EnvironmentFile=/etc/default/mpd2
ExecStart=/usr/bin/mpd2 --no-daemon /etc/mpd2.conf
...
Also=mpd2.socket
Sauvegardez et quittez.
4. Mise à jour de mpd2.conf
Le coeur du problème! Maintenant que les fichiers périphériques sont mis à jour, il est temps de s’attaquer à notre seconde source.
sudo nano /etc/mpd2.conf
Deux manières de faire : soit vous séparez tout le monde (chaque source a sa librairie), soit les deux sources ont la même librairie. Personnellement (faites votre choix), j’ai opté pour séparer tout le monde, MAIS le lien symbolique dans music_directory pointe sur la même librairie que ma source principale.
music_directory "/var/lib/mpd2/music" ... playlist_directory "/var/lib/mpd2/playlists" ... db_file "/var/lib/mpd2/tag_cache" ... log_file "/var/log/mpd2/mpd.log" ... sticker_file "/var/lib/mpd2/sticker.sql"
Maintenant, pour les lignes suivantes, c’est de l’obligatoire :
pid_file "/run/mpd2/pid" ... state_file "/var/lib/mpd2/state" ... port "6601" #Sinon MPD2 sera sur le même port que MPD, donc niet!
Pour ce qui est du bloc audio_output{} :
– Changez impérativement mount (pour la suite, j’utiliserai /radio2.ogg)
– Gardez impérativement le port 8000 (qui ne change jamais pour Icecast!)
Ceci fait, sauvegardez et fermez.
5. Mise à jour de /etc/icecast2/icecast.xml
sudo nano /etc/icecast2/icecast.xml
Ici, nous allons simplement rajouter la fallback mount entre les deux que nous avons renseignées lors de la partie 2 de ce guide :
<mount>
<mount-name>/radio2.ogg</mount-name>
<fallback-mount>/silence.mp3</fallback-mount>
<fallback-override>1</fallback-override>
</mount>
Enregistrez et fermez.
6. Lancez!
Attention, astuce ici : il faut avant chaque lancement de MPD2 faire une copie du fichier PID de mpd. Je n’ai pas trouvé comment faire ça autrement 🙁
sudo cp -a /run/mpd /run/mpd2 sudo systemctl start mpd2
Suivi de, si tout va bien :
sudo systemctl status mpd2
Si vous n’avez aucune erreur et Active (running), alors vous avez gagné!
Configurer la playlist pour votre seconde source
Attention! Lors de l’écriture de cet article, ympd qui est le l’éditeur web ne fonctionne pas pour la seconde instance de mpd, malgré le -p 6601 spécifié pour le lancement (je m’y prends comme un pied probablement).
Du coup, seul ncmpc fonctionne pour l’édition de playlist!
sudo ncmpc -p 6601
Conqueluzion
Nous avons une seconde source qui tourne. A noter que si la stabilité de Icecast+une seule source est bonne même avec Jeedom et WordPress à côté, j’ai des réserves sur Icecast+2 sources dans les mêmes circonstances, en tout cas sur mon Raspberry Pi 3.
Dans le prochain chapitre, nous allons nous débarrasser d’Icecast!