Pour éditer le wiki, il faut demander un compte à un Lapin !

Difference between revisions of "WebRadio libre"

From Le L∞p's Wiki
Jump to: navigation, search
(Created page with "Les copains de la Gare XP font tourner une '''webradio'''. Actuellement la mise en oeuvre est 100% proprietaire, et ils souhaitent changer ca. A vrai dire, ce ne sont pas ...")
 
m (fix urls, mini update)
 
(11 intermediate revisions by 3 users not shown)
Line 1: Line 1:
Les copains de [[la Gare XP]] font tourner une '''webradio'''. Actuellement la mise en oeuvre est 100% proprietaire, et ils souhaitent changer ca. A vrai dire, ce ne sont pas les seuls a exprimer ce besoin, c'est pourquoi il peut etre interessant de travailler sur la mise en place d'une webradio basee sur des solutions libres, afin que tout le monde puisse en profiter (et, soyons fous, mutualiser les connaissances et les ressources).
+
Les copains de [[la Gare XP]] font tourner une '''webradio'''. À l'origine, la mise en œuvre était 100% propriétaire, et ils souhaitaient changer ça. À vrai dire, ce ne sont pas les seuls à exprimer ce besoin, c'est pourquoi il peut être intéressant de travailler sur la mise en place d'une webradio basée sur des solutions libres, afin que tout le monde puisse en profiter (et, soyons fous, mutualiser les connaissances et les ressources).
 +
[[File:Webradio Info FusKee speciale Hackerspaces.jpg|thumb|right|450px|Emission spéciale Hackerspaces]]
  
== Situation actuelle ==
+
{{Attention|Cette page décrit le projet tel qu'il a été imaginé avant la mise en œuvre. Entre temps, un [http://radio.garexp.org/wiki/Accueil wiki spécifique] a été mis en place ; il faudrait <s>remanier</s> mettre à jour cette page, et compléter le wiki de la Radio.}}
  
La Radio XP est streamee depuis un Mac G4, a l'aide du logiciel [http://butt.sourceforge.net/ Butt], vers un serveur de stream heberge par [http://streaming.icreo.fr/creer-une-webradio Icreo].
+
== Situation d'origine ==
  
C'est Matthieu@GareXP qui gere et coordonne la radio au sein de la Gare.
+
La Radio XP est diffusée depuis un Mac G4, à l'aide du logiciel [http://butt.sourceforge.net/ Butt], vers un serveur de diffusion hébergé par [http://streaming.icreo.fr/creer-une-webradio Icreo].
  
La radio est accessible via [http://garexp.org/?page_id=18 la page dediee du site de la Gare], et bien entendu par tout client multimedia si on utilise [http://188.165.193.62:8978/listen.pls l'adresse du serveur Icreo].
+
C'est Matthieu@GareXP qui gère et coordonne la radio au sein de la Gare.
 +
 
 +
La radio est accessible via [http://garexp.org/?page_id=18 la page dédiée du site de la Gare], et bien entendu par tout client multimédia si on utilise [http://188.165.193.62:8978/listen.pls l'adresse du serveur Icreo].
  
 
=== Mac G4 ===
 
=== Mac G4 ===
Line 15: Line 18:
 
=== Butt ===
 
=== Butt ===
  
Parce que son [http://butt.sourceforge.net/butt1.png interface est (tres) simple], et qu'il donne une indication visuelle de l'etat du stream facile a comprendre pour tout le monde.
+
Parce que son [http://butt.sourceforge.net/butt1.png interface est (très) simple], et qu'il donne une indication visuelle de l'état du flux facile à comprendre pour tout le monde.
 +
 
 +
{{Note|butt ne sait pas préciser un login, il faut donc configurer le stream d'en face avec le login par défaut : <code>source</code>.}}
  
 
=== Icreo ===
 
=== Icreo ===
Line 21: Line 26:
 
Parce qu'il fallait trouver quelque chose de fiable rapidement et que personne ne se sentait capable de mettre autre chose en place.
 
Parce qu'il fallait trouver quelque chose de fiable rapidement et que personne ne se sentait capable de mettre autre chose en place.
  
La formule souscrite est [http://streaming.icreo.fr/webradio-streaming-ingenierie l'offre Basic]. 10Go de stockage, 100 users, 192kbps.
+
La formule souscrite est [http://streaming.icreo.fr/webradio-streaming-ingenierie l'offre Basic]. 10 Go de stockage, 100 utilisateurs, 192 kbps.
  
Un screenshot des statistiques generees par Icreo : http://pix.toile-libre.org/upload/original/1358342394.png<br />
+
Une capture d'écran des statistiques générées par Icreo : http://pix.toile-libre.org/upload/original/1358342394.png<br />
Pas forcement representatif vu que les fetes de fin d'annee ont fait le vide, aussi bien chez les auditeurs que dans la programmation.
+
Pas forcement représentatif vu que les fêtes de fin d'année ont fait le vide, aussi bien chez les auditeurs que dans la programmation.
  
=== Les soucis rencontres ===
+
=== Les soucis rencontrés ===
  
 
==== Stockage ====
 
==== Stockage ====
  
Les 10Go de stockage permettent d'alimenter la radio lorsqu'aucun stream live n'est en cours. Le souci, c'est que 10Go, ca fait pas beaucoup, et la radio tourne vite en boucle.
+
Les 10 Go de stockage permettent d'alimenter la radio lorsqu'aucun flux n'est en cours de diffusion. Le souci, c'est que 10 Go, ça fait pas beaucoup, et la radio tourne vite en boucle.
  
Une [[méthode Rache‏‎]] serait de faire un script qui, regulierement, vire des fichiers du FTP et les remplace par d'autres. Ce script serait utile des aujourd'hui, et sera peut-etre utile pour le futur setup.
+
Une [[méthode Rache‏‎]] serait de faire un script qui, régulièrement, vire des fichiers du FTP et les remplace par d'autres. Ce script serait utile dès aujourd'hui, et sera peut-être utile pour la future configuration.
  
==== Fonctionnalites ====
+
==== Fonctionnalités ====
  
Certaines fonctionnalites ne sont pas disponibles sans multiplier la facture :
+
Certaines fonctionnalités ne sont pas disponibles sans multiplier la facture :
  
* Lecteur radio a placer sur le site web
+
* Lecteur radio à placer sur le site Web
* Programmation d'emissions pre-enregistrees
+
* Programmation d'émissions pré-enregistrées
* Pas d'API : impossibilite d'automatiser certaines taches
+
* Pas d'API : impossibilité d'automatiser certaines tâches
* <small>(plein d'autres qui m'echappent sur le moment)</small>
+
* <small>(plein d'autres qui m'échappent sur le moment)</small>
  
 
==== Prix ====
 
==== Prix ====
  
20 euros c'est pas la mort mais ils seraient mieux employes a financer un serveur (VPS ou autre). Si on peut les eviter, c'est encore mieux car certains lieux n'ont pas forcement le budget de la Gare ou de La Suite, par exemple.
+
20 euros, c'est pas la mort mais ils seraient mieux employés à financer un serveur (VPS ou autre). Si on peut les éviter, c'est encore mieux car certains lieux n'ont pas forcement le budget de la Gare ou de La Suite, par exemple.
  
 
== Cahier des charges ==
 
== Cahier des charges ==
  
* Stream de fichiers lorsqu'aucun stream live n'est en cours
+
* Diffusion de fichiers lorsqu'aucun flux en direct n'est en cours
* Enregistrement des live
+
* Enregistrement des directs
* Programmation d'emissions pre-enregistrees
+
* Programmation d'émissions pré-enregistrées
* Lecteur radio a placer sur le site
+
* Lecteur radio à placer sur le site
* Possibilite d'utiliser un sous-domaine <tt>radio.garexp.org</tt>.
+
* Possibilité d'utiliser un sous-domaine <code>radio.garexp.org</code>.
* Interface simplifiee disponible pour les animateurs radio qui doivent s'en servir alors qu'ils ne connaissent rien a la technique sous-jacente
+
* Interface simplifiée disponible pour les animateurs radio qui doivent s'en servir alors qu'ils ne connaissent rien à la technique sous-jacente
 +
:* Embrayage/débrayage du stream live
 +
:* Suivi des auditeurs
  
 
=== Contraintes ===
 
=== Contraintes ===
  
* La source du stream est derriere la Freebox, et doit se battre avec les flux bittorrent et autres congestions du reseau local. On est censes mettre en place une seconde connexion, qui sera utilisee pour les Services Essentiels Et Autres Trucs Serieux, laissant la premiere connexion se demerder avec les flux Facebook et autres futilites. Mais pour l'instant, ce n'est pas fait.
+
* La source du flux est derrière la Freebox, et doit se battre avec les flux Bittorrent et autres congestions du réseau local. On est censés mettre en place une seconde connexion, qui sera utilisée pour les Services Essentiels Et Autres Trucs Sérieux, laissant la première connexion se démerder avec les flux Facebook et autres futilités. Mais pour l'instant, ce n'est pas fait.
* L'utilisateur neophyte doit pouvoir debrayer le stream "passif" (fichiers MP3) et passer en mode "live" facilement. Les animateurs de la radio ne sont pas tous des geeks !
+
* L'utilisateur néophyte doit pouvoir débrayer le flux "passif" (fichiers MP3) et passer en mode "direct" facilement. Les animateurs de la radio ne sont pas tous des geeks !
  
== Etude ==
+
== Étude ==
  
La mise en oeuvre imaginee :
+
La mise en œuvre imaginée se base sur [http://www.icecast.org/ Icecast] et [http://www.sourcefabric.org/en/airtime/ Airtime] :
  
 
   ALSA/PulseAudio/Jack/etc --> Icecast --> Airtime
 
   ALSA/PulseAudio/Jack/etc --> Icecast --> Airtime
 
   \____________________________________/ \________/
 
   \____________________________________/ \________/
             Reseau local                  Internet
+
             Réseau local                  Internet
  
Les fichiers MP3 sont stockes en local, ce qui permet d'en mettre autant qu'on a d'espace de stockage disponible. Etant sur le reseau local, on peut profiter de la rapidite de transfert, et pourquoi pas de ressources partagees sur le reseau.
+
Les fichiers MP3 sont stockés en local, ce qui permet d'en mettre autant qu'on à d'espace de stockage disponible. Étant sur le réseau local, on peut profiter de la rapidité de transfert, et pourquoi pas de ressources partagées sur le réseau.
  
La carte son envoie son flux au serveur Icecast, qui lui-meme l'envoie au serveur Airtime.
+
La carte son envoie son flux au serveur Icecast, qui lui-même l'envoie au serveur Airtime.
  
 
Les clients se connectent sur le serveur Airtime.
 
Les clients se connectent sur le serveur Airtime.
  
== Etat du projet ==
+
=== Fonctionnalités Airtime ===
 +
 
 +
Par rapport au cahier des charges, ces points ont besoin d’être examinés de plus près :
 +
* Suivi des auditeurs : pas simple à trouver, pas complet ?
 +
* Interface simplifiée ?
 +
* Stream par défaut : lorsqu'aucun stream n'est programme il faut balancer du son depuis la bibliothèque. Ça pourrait se faire en programmant des playlists, mais il serait plus pratique d'avoir une fonction qui envoie du random quand rien n'est programmé.
 +
 
 +
== État du projet ==
 +
 
 +
[[User:Capslock|Capslock]] a fait le gros du boulot, et le serveur commence [http://aiguilleur.gare.xp/munin/garexp.org/radio.garexp.org/ à trouver ça agréable].
 +
 
 +
Un wiki spécifique à ce projet a été mis en place pour documenter l'ensemble : http://radio.garexp.org/wiki/
 +
 
 +
== Solution technique ==
 +
 
 +
<small>(cette section est à migrer sur le wiki de la Radio XP)</small>
 +
 
 +
=== Lecteur à intégrer sur un site Web ===
  
[[User:Capslock|Capslock]] a commence de jouer avec Airtime.
+
Chez [https://wiki.sourcefabric.org/display/CC/Web+Audio+Player+for+Airtime+Streams SourceFabric] (l'éditeur d'Airtime) ils proposent d'utiliser [http://www.jplayer.org/ jPlayer]. jPlayer est un plugin jQuery pour créer un lecteur HTML5 avec un fallback Flash pour IE.
  
[[User:Olive|Olive]] a organise [http://rockette-libre.org/4-janvier-2013/ deux] [http://rockette-libre.org/11-janvier-2013/ sessions] sur le sujet pour la [http://rockette-libre.org Rockette Libre]. A defaut d'avoir assiste a ces sessions, on peut imaginer qu'il a de bons contacts pour filer la patte et partager de l'experience !
+
La configuration est super simple. Exemple pour exploiter le flux ogg :
  
 +
<syntaxhighlight lang="javascript">
 +
$(document).ready(function(){
 +
        $("#jquery_jplayer_1").jPlayer({
 +
                ready: function () {
 +
                        $(this).jPlayer("setMedia", {
 +
                                oga: "http://radioxp.leloop.org:8000/ogg"
 +
                        }).jPlayer("play");
 +
                },
 +
                ended: function (event) {
 +
                        $(this).jPlayer("play");
 +
                },
 +
                swfPath: "js",
 +
                supplied: "oga"
 +
        });
 +
});
 +
</syntaxhighlight>
  
 +
Gros avantage de cette solution: il est très aisé de customiser l'apparence de ce lecteur.
  
 
[[Category:Projets]]
 
[[Category:Projets]]

Latest revision as of 13:52, 27 February 2015

Les copains de la Gare XP font tourner une webradio. À l'origine, la mise en œuvre était 100% propriétaire, et ils souhaitaient changer ça. À vrai dire, ce ne sont pas les seuls à exprimer ce besoin, c'est pourquoi il peut être intéressant de travailler sur la mise en place d'une webradio basée sur des solutions libres, afin que tout le monde puisse en profiter (et, soyons fous, mutualiser les connaissances et les ressources).

Emission spéciale Hackerspaces
Attention.png Attention : Cette page décrit le projet tel qu'il a été imaginé avant la mise en œuvre. Entre temps, un wiki spécifique a été mis en place ; il faudrait remanier mettre à jour cette page, et compléter le wiki de la Radio.

Situation d'origine

La Radio XP est diffusée depuis un Mac G4, à l'aide du logiciel Butt, vers un serveur de diffusion hébergé par Icreo.

C'est Matthieu@GareXP qui gère et coordonne la radio au sein de la Gare.

La radio est accessible via la page dédiée du site de la Gare, et bien entendu par tout client multimédia si on utilise l'adresse du serveur Icreo.

Mac G4

Pourquoi un Mac G4 : parce que c'est ce qu'ils avaient sous la main, et qu'il y a un Apple Fan Boy dans la place.

Butt

Parce que son interface est (très) simple, et qu'il donne une indication visuelle de l'état du flux facile à comprendre pour tout le monde.

Icone information.png Note : butt ne sait pas préciser un login, il faut donc configurer le stream d'en face avec le login par défaut : source.

Icreo

Parce qu'il fallait trouver quelque chose de fiable rapidement et que personne ne se sentait capable de mettre autre chose en place.

La formule souscrite est l'offre Basic. 10 Go de stockage, 100 utilisateurs, 192 kbps.

Une capture d'écran des statistiques générées par Icreo : http://pix.toile-libre.org/upload/original/1358342394.png
Pas forcement représentatif vu que les fêtes de fin d'année ont fait le vide, aussi bien chez les auditeurs que dans la programmation.

Les soucis rencontrés

Stockage

Les 10 Go de stockage permettent d'alimenter la radio lorsqu'aucun flux n'est en cours de diffusion. Le souci, c'est que 10 Go, ça fait pas beaucoup, et la radio tourne vite en boucle.

Une méthode Rache‏‎ serait de faire un script qui, régulièrement, vire des fichiers du FTP et les remplace par d'autres. Ce script serait utile dès aujourd'hui, et sera peut-être utile pour la future configuration.

Fonctionnalités

Certaines fonctionnalités ne sont pas disponibles sans multiplier la facture :

  • Lecteur radio à placer sur le site Web
  • Programmation d'émissions pré-enregistrées
  • Pas d'API : impossibilité d'automatiser certaines tâches
  • (plein d'autres qui m'échappent sur le moment)

Prix

20 euros, c'est pas la mort mais ils seraient mieux employés à financer un serveur (VPS ou autre). Si on peut les éviter, c'est encore mieux car certains lieux n'ont pas forcement le budget de la Gare ou de La Suite, par exemple.

Cahier des charges

  • Diffusion de fichiers lorsqu'aucun flux en direct n'est en cours
  • Enregistrement des directs
  • Programmation d'émissions pré-enregistrées
  • Lecteur radio à placer sur le site
  • Possibilité d'utiliser un sous-domaine radio.garexp.org.
  • Interface simplifiée disponible pour les animateurs radio qui doivent s'en servir alors qu'ils ne connaissent rien à la technique sous-jacente
  • Embrayage/débrayage du stream live
  • Suivi des auditeurs

Contraintes

  • La source du flux est derrière la Freebox, et doit se battre avec les flux Bittorrent et autres congestions du réseau local. On est censés mettre en place une seconde connexion, qui sera utilisée pour les Services Essentiels Et Autres Trucs Sérieux, laissant la première connexion se démerder avec les flux Facebook et autres futilités. Mais pour l'instant, ce n'est pas fait.
  • L'utilisateur néophyte doit pouvoir débrayer le flux "passif" (fichiers MP3) et passer en mode "direct" facilement. Les animateurs de la radio ne sont pas tous des geeks !

Étude

La mise en œuvre imaginée se base sur Icecast et Airtime :

 ALSA/PulseAudio/Jack/etc --> Icecast --> Airtime
 \____________________________________/ \________/
           Réseau local                  Internet

Les fichiers MP3 sont stockés en local, ce qui permet d'en mettre autant qu'on à d'espace de stockage disponible. Étant sur le réseau local, on peut profiter de la rapidité de transfert, et pourquoi pas de ressources partagées sur le réseau.

La carte son envoie son flux au serveur Icecast, qui lui-même l'envoie au serveur Airtime.

Les clients se connectent sur le serveur Airtime.

Fonctionnalités Airtime

Par rapport au cahier des charges, ces points ont besoin d’être examinés de plus près :

  • Suivi des auditeurs : pas simple à trouver, pas complet ?
  • Interface simplifiée ?
  • Stream par défaut : lorsqu'aucun stream n'est programme il faut balancer du son depuis la bibliothèque. Ça pourrait se faire en programmant des playlists, mais il serait plus pratique d'avoir une fonction qui envoie du random quand rien n'est programmé.

État du projet

Capslock a fait le gros du boulot, et le serveur commence à trouver ça agréable.

Un wiki spécifique à ce projet a été mis en place pour documenter l'ensemble : http://radio.garexp.org/wiki/

Solution technique

(cette section est à migrer sur le wiki de la Radio XP)

Lecteur à intégrer sur un site Web

Chez SourceFabric (l'éditeur d'Airtime) ils proposent d'utiliser jPlayer. jPlayer est un plugin jQuery pour créer un lecteur HTML5 avec un fallback Flash pour IE.

La configuration est super simple. Exemple pour exploiter le flux ogg :

$(document).ready(function(){
        $("#jquery_jplayer_1").jPlayer({
                ready: function () {
                        $(this).jPlayer("setMedia", {
                                oga: "http://radioxp.leloop.org:8000/ogg"
                        }).jPlayer("play");
                },
                ended: function (event) {
                        $(this).jPlayer("play");
                },
                swfPath: "js",
                supplied: "oga"
        });
});

Gros avantage de cette solution: il est très aisé de customiser l'apparence de ce lecteur.