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, ainsi que les platines sons / table de mixage pour gérer la musique, et connecter le tout au PC en tant que source son. Puis ils peuvent lancer le flux.

Fonctionnement

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 X qui va être la source du flux.

Cette source son se connecte à la VM Stentor qui héberge Icecast, un serveur de diffusion de flux audio. Icecast va recevoir le flux source de X et le rediffuser.

Finalement, le site TFM qui est hébergé sur Golf en tant que site de clubs, sert d'interface où les utilisateurs peuvent se connecter. Il embed le flux depuis Icecast et diffuse divers infos.

Lorsque l'équipe ne diffuse pas, le logiciel LiquidSoap, aussi installé sur Golf, diffuse de la musique en se connectant en tant que source à Icecast, et le site embed ce flux.

Au niveau DNS, tfm est un hostAlias de Stentor. tfm-flux est un CNAME configuré sur le DNS pointant sur Cyric qui profixie vers stentor.adm-pub:8000 (conf dans /etc/apache2/sites-enabled/proxys/tfm-flux.resel.fr). 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. On peut le contrôler 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. Il est installé ici et pas sur Stentor (par exemple) pour que TFM puisse modifer la playlist l'accès FTP à leur site.

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.

Le site est codé PHP par Hugo Attal. Les sources sont disponibles dans le dossier sur golf. Le code ne fait pas l'objet d'un versionnage des sources.

On retrouve dans le code source un embed du flux tfm-flux.resel.fr:8000/live.mp3

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'ils 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

  • 2013 : Mise en place initiale par [Hugo Attal]
  • 2016 : Réparation globale par Théo Jacquin