Publié le : 30/07/2020
Tutoriel pour apprendre à coder un streamer vidéo basique en Haskell et à le déployer sur Heroku
Introduction
Haskell est un classique dans le monde de la recherche sur les langages de programmation, mais il fournit également un écosystème agréable pour développer des applications concrètes. En effet, c’est un langage très expressif, et qui dispose de nombreuses bibliothèques. De plus, il est purement fonctionnel et repose sur un système de types évolué, ce qui lui permet d’éviter de nombreuses sources de bugs.
L’objectif de ce tutoriel est d’illustrer l’utilisation de Haskell sur une petite application concrète (de l’implémentation jusqu’au déploiement), ainsi que les avantages apportés par le langage (lisibilité de code, sûreté de développement…). L’application présentée ici est un streamer vidéo basique dont le code source est disponible en ligne. Il s’agit d’une version simplifiée d’un projet réel, qui a également donné lieu à une présentation dans un meetup.
Présentation du projet
L’objectif du projet est de réaliser un système de streaming vidéo permettant de diffuser une région de son écran via une connexion réseau à faible débit montant.
L’architecture envisagée est composée :
- d’un serveur web streamer-serve, qui fournit aux spectateurs une page web et le flux d’images, en HTTP ;
- d’un programme streamer-record, qui s’exécute sur la machine du diffuseur pour prendre des captures d’écran et les envoyer au server web, via un websocket.
On notera que cette application ne diffuse pas de son, ni même de véritable flux vidéo (avec compression temporelle), mais uniquement des images successives.
Vous pouvez voir l’intégralité du tutoriel chez developpez.com