Description

TFM est le club du BDE gérant la radio étudiante de l'école. C'est nul, mais passons. Le ResEl héberge les services techniques permettant de diffuser leurs chroniques, sous forme d'une WebRadio.

Utilisation

Côté utilisateur

Pour écouter la webradio, il suffit de se connecter sur tfm.clubs.resel.fr et de se logguer avec son compte ResEl.

Côté TFM

L'équipe TFM doit utiliser l'ordinateur du S&L. Le logiciel s'appelle <?> qui va se connecter à Icecast en tant que source son. Le S&L doit faire les branchements des micros, connectés à l'ordinateur, ainsi que les platines sons pour gérer la musique, etc... Puis ils peuvent lancer le flux.

Mise en place

 Vue d'ensemble générale

L'infrastructure de la WebRadio TFM met en place plusieurs logiciels et systèmes.

Tout d'abord, il y a le PC du S&L qui est connecté au montage son (table de mixage, entrée musique et micros) de l'équipe et qui utilise le logiciel qui sert de source son.

Cette source son se connecte à la VM Stentor qui héberge Icecast, un serveur de diffusion de flux Audio qui sert de relai pour le son audio.

Finalement, le son est diffusé sur le site TFM qui est hébergé sur Golf, en tant que site de clubs

Lorsque l'équipe ne diffuse pas, le logiciel LiquidSoap, intégré au site, diffuse de la musique.

Au niveau DNS, tfm est un hostAlias de Stentor, tandisque tfm-flux est un CNAME configurée pointée sur elle. Il y a aussi le virtual host tfm.club.resel.fr pointant sur le site sur Golf.

Icecast2 : diffusion de flux audio

Icecast2 est le serveur de diffusion de flux audio, pour pouvoir diffuser les flux reçus et les retransmettre sur le site.

Icecast2 est installé depuis les miroirs Debian.

Il est contrôlé par systemctl <cmd> icecast2.

Configuration

La configuration spécifique est dans /etc/icecast2/icecast.xml. On trouve les identifiants pour la connexion des sources, des relais, des admins, la configuration réseau, les logs. La configuration un peu plus intéressante est celle du point de montage :

  <relay>
      <server>127.0.0.1</server>
      <port>8080</port>
      <mount>/tfm.ogg</mount>
      <local-mount>/different.ogg</local-mount>
      <on-demand>0</on-demand>

      <relay-shoutcast-metadata>0</relay-shoutcast-metadata>
  </relay>
Le serveur Icecast déclare un relai qui diffusera le son sur le relai écoutant sur l'URL : https://127.0.0.1:8080/tfm.ogg. TODO : trouver à quoi sert ce relai mais à mon avis il s'agit juste d'une config de test useless laissée la.

Un point de montage est tout simplement une URL sur laquelle va être diffusée un flux audio.

Les différents points de montage de musique ne sont pas déclarés statiquement, ce sont les sources qui se connectent à Icecast2 avec les identifiants de la conf pour se déclarer.

Comme expliqué, il y aura à terme deux points de montage :

  • La chronique par l'équipe TFM : sur /live.mp3.
  • La musique diffusé le reste du temps : sur /tfm.mp3.

    Debug

Pour débugguer les problèmes, on peut se connecter directement à Icecast via l'url http://stentor.adm-pub.resel.fr:8000/. On peut même écouter le flux, attention cependant les liens sont fait pour rediriger vers le site publique, et il faut suffixer manuellement les urls.

LiquidSoap : diffusion de musique

LiquidSoap sert à diffuser de la musique depuis une playlist lorsque qu'aucune chronique n'est en cours.

LiquidSoap est installée sur Golf dans le dossier du site TFM.

La configuration est dans /etc/liquidsoap/tfm/liq. Extrait intéressant de la conf :

tfmplaylist = playlist(mode="normal", reload=3600, reload_mode="seconds", "/srv/www/club/tfm/playlist.liq")
tfmplaylist = fa/srv/www/club/tfm/musicllback(track_sensitive=false,[input.http("http://tfm:8000/live.mp3"), tfmplaylist])
tfmplaylist = smart_crossfade(normalize(mksafe(tfmplaylist)))
out = output.icecast(%mp3, description="TFM", url="https://tfm-flux.resel.fr/tfm.mp3", host = "tfm", port = 8000, password = "tfmvousaime", mount = "/tfm.mp3", tfmplaylist)
La dernière ligne montre que LiquidSoap se connecte à Icecast et déclare le point de montage /tfm.mp3. Il envoie aussi d'autre métadonnée comme le nom de la chanson qui passe, l'url officielle, le mot de passe pour se connecter.

La seconde ligne montre que la flux doit être le flux http disponible à tfm-flux.resel.fr/live.mp3 (qui est celui d'une chronique) et que quand celui ci n'est pas disponible, on fallback sur la playlist. LiquidSoap fait donc régulièrement une requête GET vers stentor.adm:8000/live.mp3 pour savoir si le flux d'une chronique est en diffusion. Si 404, il "comble" avec la playlist.

La playlist est définie dans le dossier du site du club : /srv/www/club/tfm/playlist.liq et les 10 musiques de la playlist sont aussi hébergées dans le dossier /srv/www/club/tfm/music. Voir playlist.liq pour plus de détails.

Site TFM

Le site TFM est l'interface web disponible pour le public. Elle fait partie des sites de clubs. Quelque chose d'étrange : le site ne fait mention que de tfm-flux.resel.fr/live.mp3 ce qui est étrange puisque ça devrait être tfm.adm.resel.fr....

 Logiciel de diffusion sur le PC S&L

Sur le PC S&L il y a un logiciel qui permet de diffuser le son vers Icecast.

Avant ça, le S&L doit faire le montage son, brancher une platine de mixage, des micros, une entrée son (en général un ipod ou un portable....) puis relié ça en tant qu'entrée son au PC.

TODO : retrouver le nom du logiciel et comment il fonctionne mais de mémoire je crois qu'il font un tunnel ssh sur stentor pour déclarer le flux. Ou pas, peut-être qu'il se déclare tout simplement avec les identifiants qui vont bien.

Lien utiles

Modifications

  • 2006 : Mise en place initiale par [Hugo Attal]
  • 2016 : Réparation suite au DNS par Théo Jacquin