Pour éditer le wiki, il faut demander un compte à un Lapin !
Difference between revisions of "WebRadio libre"
m (Bref... Accentuation) |
m (fix urls, mini update) |
||
(9 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | Les copains de [[la Gare XP]] font tourner une '''webradio'''. | + | 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 | + | {{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.}} |
+ | |||
+ | == Situation d'origine == | ||
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 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]. | ||
Line 16: | Line 19: | ||
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. | 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 55: | Line 60: | ||
* Possibilité d'utiliser un sous-domaine <code>radio.garexp.org</code>. | * Possibilité d'utiliser un sous-domaine <code>radio.garexp.org</code>. | ||
* Interface simplifiée disponible pour les animateurs radio qui doivent s'en servir alors qu'ils ne connaissent rien à 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 === | ||
Line 74: | Line 81: | ||
Les clients se connectent sur le 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 == | == État du projet == | ||
− | [[User:Capslock|Capslock]] a | + | [[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 === | ||
+ | |||
+ | 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. | ||
− | + | 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).
Contents
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.
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.