Chloé – Arts & Sciences

Créer une WebTV qui switche entre direct et programmes enregistrés

par Chloé le 2 juillet 2009, dans la catégorie Audiovisuel, Informatique, Tutoriel

Dans cette note, je décris brièvement comment créer une WebTV contenant des programmes pré-enregistrés ainsi que des programmes en direct (live).Contraintes :

  1. Minimiser le downtime entre le direct et le différé
  2. N’utiliser qu’un seul lecteur Flash, afin de ne pas avoir à mettre la page de diffusion à jour systématiquement.
  3. Minimiser les interventions sur le serveur de diffusion

Voici l’idée derrière la réalisation de ce type de WebTV:

On a un programme qui va défiler en boucle et en continu. Il est pushé par un client quelconque capable d’envoyer du RTMP vers Red5 ou Wowza. Ce flux est nommé static. Il prend la forme d’un point de montage /static sur lequel est envoyé un fichier constitué de l’assemblage de tous les programmes récurrents.

On a occasionnellement, lors de la diffusion d’évènements en direct, l’envoi d’un deuxième flux que l’on va appeler live, avec Flash Media Live Encoder, qui prendra la forme d’un point de montage /live sur le serveur de streaming.

Le lecteur Flash va :

  • se connecter au flux statique /static
  • tester toutes les 10 secondes si le point de montage /live est disponible
  • si /live est disponible
    • on coupe le flux /static
    • on lit le flux /live
    • on ajoute un écouteur d’évènement qui retourne au premier point si /live n’est pas disponible.

Variantes possibles: l’ensemble des programmes est statique et on veut que le visiteur les lise dès le départ. En ce cas on fabrique un gros fichier FLV que l’on envoie en mode VOD. On remplace le /static par un fichier /static.flv, et voilà :-) D’autres variantes sont possibles et dans un prochain article je ferai une liste de logiciels utiles pour ce type de stream.

:, , , , , , ,

2 Les commentaires

  • Johann

    Bonjour,

    merci pour cette idée.
    Petite question, quel lecteur flash utilises tu?
    j’ai un streaming live à faire sur 24h et j’aimerai utilisé cette solution pour afficher des infos aux clients connectés en attendant le live.

    merci de ta réponse

  • Chloé

    Hello,

    j’ai développé un lecteur mais je ne partage pas les sources. C’est plutôt facile à développer en s’appuyant sur le toolkit que j’ai mis à disposition sur ce même site (cherche bien).

    L’idée est de lire un flux, de poller un autre, si cet autre se déclenche, arrêter de lire le premier et lire le deuxième (et dans l’évènement de déconnexion, mettre du code qui reprend la lecture du premier). A chaque fois que le premier flux est lu, le polling du deuxième se met en route.

    C’est tout à fait simple :-)

    Chloé

Laisser un commentaire

Vous cherchez quelque chose ?

Utilisez ce formulaire pour rechercher un contenu:

Vous ne trouvez pas votre bonheur ? Contactez-moi avec un commentaire, je verrai que faire pour vous.