Raspberry Pi Radio partie 5 : le mode light

Cet article suit celui-ci!

Prérequis

Avoir au moins une radio pourvue d’une source, comme décrit dans les étapes précédentes de ce tutoriel!

Objectif

Si vous n’utilisez votre radio que pour streamer de la musique en continu, sans voix ni mixage spécifique, alors nous pouvons nous passer d’Icecast! En effet, et je l’ai découvert après avoir rédigé les articles précédents, MPD dispose de son propre serveur HTTP et peut donc absolument s’autosuffire.
Magnéto, Serge.

Procédure

1- Couper la musique

Dans la mesure où nous allons faire un grand ménage, il convient dans un premier temps de couper tout ce qui doit être coupé. Selon que vous ayez opté pour ympd ou ncmpc pour contrôler votre source, coupez-la donc avec la commande qui va bien.

2- Arrêter Icecast2 et le désactiver

sudo service icecast2 stop
sudo systemctl disable icecast2

Nous avons besoin de faire cela car nous allons réutiliser le port précédemment pris par Icecast pour MPD – de cette manière, c’est transparent pour l’extérieur et vous n’avez pas à changer l’adresse de votre flux.

3- Mettre à jour la configuration de MPD

sudo nano /etc/mpd.conf 

Vous souvenez-vous du bloc de sortie audio_output? Il est temps de le commenter complètement en rajoutant des # devant chaque ligne :

#audio_output {
#    type "shout"
#    encoder "lame"
#    encoder "vorbis" # optional
#    name "Radio"
#    host "localhost"
#    port "8000"
#    mount "/radio.ogg"
#    password ""
#    quality "5.0"
#    bitrate "192"
#    format "44100:16:1"
#    protocol "icecast2" # optional
#    user "source" # optional
#    description "" # optional
#    url "https://xxx" # optional
#    genre "VGM" # optional
#    public "no" # optional
#    timeout "2" # optional
#    mixer_type "software" # optional
#}

Maintenant, nous allons chercher le bloc dont le type est httpd , et le configurer de la sorte :

audio_output {
    type "httpd"
    name "Stream"
    encoder "vorbis"                        # optional, vorbis or lame
    port "8000"
    bind_to_address "0.0.0.0"               # optional, IPv4 or IPv6
#   quality         "5.0"
    bitrate         "192"                   # do not define if quality is defined
    format          "44100:16:1"
    max_clients     "0"                     # optional 0=no limit
    always_on       "yes"
    tags            "yes"
}

Quelques détails sont à retenir ici :
– Le champ name n’a pas grande importance, car il n’y a plus besoin d’un point de montage pour Icecast, uniquement d’un numéro de port dédié par source.
– Le port doit être le même que dans le bloc de type shout que nous avons commenté ci-dessus (afin de ne pas changer la configuration de Nginx – enfin, presque pas)
– La ligne Quality doit être commentée si la ligne Bitrate ne l’est pas, et vice-versa. Personnellement, le bitrate me parle bien plus que le facteur qualité, mais c’est votre bizness.
– Always_on permet de ne pas virer salement tout le monde lorsqu’il n’y a plus de musique à jouer,
– Tags permet de s’assurer d’avoir les informations issues des tags ID3 de vos morceaux MP3 (et probablement d’autres formats de musique, mais je suis de la vieille école des MP3…).

Ceci étant fait, vous pouvez sauvegarder et quitter, et relancer MPD :

sudo service mpd start

4- Mettre à jour Nginx

Cette partie s’adresse à celles et ceux ayant utilisé Nginx pour l’accès extérieur à leur flux audio. En réseau interne pur, vous pouvez zapper cette étape.
Bien que l’URL d’accès à votre stream n’ait pas besoin de changement, l’URL interne pointant vers votre stream doit légèrement changer, car comme précisé plus tôt, il n’y a plus de point de monte.
Ouvrez donc la configuration de votre site Nginx :

sudo nano /etc/nginx/sites-available/radio

Localisez le bloc location /radio et sa première ligne :

location /radio {
        proxy_pass http://127.0.0.1:8000/radio.ogg;

Ajoutez un # devant cette ligne, et ajoutez en dessous la ligne suivante :

proxy_pass http://127.0.0.1:8000;

Contenant évidemment le même numéro de port que précédemment.
Comme vous pouvez le constater, plus besoin de /radio.ogg, le port suffit. C’est beau la vie!

Sauvegardez et quittez, puis relancez Nginx :

sudo service nginx reload

Conclusion

Si vous n’avez rien loupé (genre bloc mal commenté), tout devrait être OK maintenant, et vous devriez pouvoir accéder à votre flux radio pareil qu’avant, sans avoir Icecast qui grignote des ressources pour rien du tout – ce qui devrait vous aider dans le cas de plusieurs sources simultanées!

Dans le prochain chapitre, nous allons nous assurer que notre radio puisse se relancer en cas de besoin.

Leave a Reply

Your email address will not be published. Required fields are marked *