Streamfizz

3 novembre 2025

11 min de lecture

Plongeons au cœur de l'encodage de vos vidéos : l'orchestrateur Streamfizz

Geoffrey  SignoratoG
Geoffrey Signorato
Lead développeur
Technique
Plongeons au cœur de l'encodage de vos vidéos : l'orchestrateur Streamfizz

L'architecture de transcodage vidéo de Streamfizz : orchestration intelligente et optimisation GPU

Chez Streamfizz, l'infrastructure de transcodage vidéo constitue le cœur battant de notre plateforme. En tant que spécialiste français de la vidéo, nous avons toujours mis un point d'honneur à développer une architecture performante, économe et parfaitement adaptée aux besoins de nos clients. Notre nouvelle version v2 représente une évolution majeure de notre système d'orchestration et de transcodage, optimisée pour tirer parti des GPU L4 de Scaleway tout en maîtrisant rigoureusement les coûts.

La genèse de l'architecture cerveau-bras

Dès les premiers jours de Streamfizz, nous avons fait le choix architectural d'une séparation claire entre intelligence et exécution : l'orchestrateur comme "cerveau" et les transcodeurs comme "bras". Cette approche, inspirée des principes de microservices et des systèmes distribués, nous permettait déjà de :

  • Découpler la logique métier : L'orchestrateur analyse le fichier source et établit la liste optimale des jobs nécessaires
  • Optimiser les ressources : Chaque composant peut être dimensionné indépendamment selon les besoins
  • Assurer la résilience : Un échec sur un transcodeur n'impacte pas l'orchestration globale

Cette philosophie s'est révélée visionnaire avec l'émergence des infrastructures cloud et l'avènement des accélérateurs GPU pour le transcodage vidéo.

BullMQ : la référence pour la gestion de queues fiable

BullMQ est avant tout un gestionnaire de jobs par queue (job queue manager) - un système qui permet d'organiser et d'exécuter des tâches de manière ordonnée et asynchrone. Le principe est fondamental : au lieu d'exécuter immédiatement une opération coûteuse qui pourrait bloquer votre application pendant des minutes, vous la placez dans une "file d'attente" (queue) où elle sera traitée par des "workers" dédiés.

Cette architecture apporte une robustesse exceptionnelle : si un worker crash pendant un job, BullMQ le relance automatiquement. Si le système redémarre, tous les jobs en attente sont préservés grâce à Redis. C'est cette fiabilité qui a fait de BullMQ la référence, utilisé par Netflix, Spotify et des milliers d'entreprises pour traiter des millions de jobs critiques chaque jour.

Chez Streamfizz, BullMQ orchestre l'ensemble de notre pipeline de transcodage avec une précision chirurgicale :

FFmpeg : le couteau suisse du multimédia

FFmpeg est THE outil de référence pour le traitement multimédia depuis plus de 20 ans. Créé par Fabrice Bellard en 2000, ce framework open-source est capable de décoder, encoder, transcoder, muxer, demuxer, streamer, filtrer et jouer pratiquement n'importe quel format audio ou vidéo existant. De YouTube à Netflix en passant par VLC, FFmpeg alimente la quasi-totalité de l'écosystème vidéo mondial.

Ce qui rend FFmpeg indispensable, c'est sa capacité à exploiter les accélérateurs matériels modernes : CPU multi-cœurs, GPU NVIDIA via NVENC, GPU AMD via VCE, et même les puces dédiées d'Apple. Pour Streamfizz, FFmpeg est le moteur qui transforme n'importe quel fichier vidéo en streams HLS optimisés, en exploitant pleinement la puissance de nos GPU L4.

L'art du transcodage vidéo avec FFmpeg et GPU L4

Les GPU L4 de NVIDIA, optimisés pour l'inférence et le transcodage, offrent un rapport performance/consommation exceptionnel pour nos workloads vidéo. Leur capacité à tirer parti des codecs NVENC a révolutionné l'industrie du streaming en permettant des gains de performance de 10 à 50x par rapport au CPU seul.

Notre implémentation exploite pleinement cette puissance :

Points techniques clés de notre pipeline :

  • Encoding adaptatif : Chaque résolution (360p, 480p, 720p, 1080p) bénéficie de paramètres optimisés
  • HLS natif : Segmentation automatique en chunks de 3 secondes pour un streaming optimal
  • GPU acceleration : Utilisation systématique des codecs NVENC sur les L4
  • Progress tracking : Monitoring en temps réel de l'avancement via BullMQ

Kubernetes : l'orchestrateur de containers qui révolutionna le cloud

Kubernetes (souvent abrégé k8s) est un système d'orchestration de containers créé par Google et open-sourcé en 2014. Inspiré de Borg, le système interne que Google utilise pour gérer ses milliards de containers, Kubernetes résout un problème fondamental : comment déployer, gérer et faire communiquer des milliers d'applications conteneurisées sur des centaines de serveurs de manière automatisée. Le principe est révolutionnaire : au lieu de gérer manuellement chaque serveur et chaque application, vous décrivez à Kubernetes "ce que vous voulez" (10 instances de votre application transcoder avec 1 GPU chacune) et il se charge de "comment y arriver" (répartir sur les nœuds disponibles, redémarrer en cas de crash, gérer la montée en charge).

Aujourd'hui, Kubernetes alimente les infrastructures de Netflix, Airbnb, Spotify, et pratiquement toutes les entreprises tech modernes. Chez Streamfizz, il orchestre l'ensemble de notre backend : nos orchestrateurs (le "cerveau" qui tourne sur CPU), nos transcodeurs GPU (les "bras" qui exécutent), gère automatiquement les montées en charge, et assure la haute disponibilité de tous nos services critiques.

Le défi Kubernetes : orchestration GPU intelligente

La gestion des ressources GPU sur Kubernetes représente l'un des défis techniques les plus complexes de notre architecture. Contrairement aux ressources CPU qui peuvent être divisées et partagées, un GPU L4 constitue par défaut une ressource atomique dans Kubernetes : soit il est entièrement alloué à un pod, soit il est libre. Bien que des techniques de partage (comme le time-slicing) existent, elles nécessitent des configurations avancées et peuvent impacter les performances.

Cette contrainte nous a menés à développer une logique d'orchestration sophistiquée :

L'économie circulaire des ressources GPU

Notre approche "infinite loop" pour la gestion des pods GPU repose sur plusieurs principes économiques et techniques :

Monitoring continu : Une boucle infinie analyse en permanence l'état de la queue BullMQ pour ajuster le nombre de pods GPU actifs. Cette approche nous permet de maintenir un équilibre parfait entre performance et coût.

Protection des jobs actifs : Grâce à la logique kubernetes-queue, nous nous assurons qu'aucun pod traitant un job ne soit interrompu prématurément. Chaque pod signale son état d'occupation via un système de heartbeat.

Optimisation énergétique : En ne maintenant que le nombre strictement nécessaire de GPU L4 actifs, nous réduisons significativement notre empreinte carbone et nos coûts d'infrastructure.

Pipeline audio : la quête de la qualité optimale

Notre traitement audio parallèle illustre parfaitement notre approche de la qualité adaptative. Chaque fichier source génère automatiquement deux versions audio :

Lecture progressive : l'expérience utilisateur avant tout

L'une des forces de notre architecture réside dans sa capacité à offrir une expérience de lecture immédiate, même pendant le transcodage. Chaque job terminé déclenche automatiquement une mise à jour en temps réel du player côté client via WebSockets, permettant une expérience fluide et progressive.

Concrètement, dès qu'une résolution 480p est disponible, l'utilisateur peut commencer à regarder sa vidéo pendant que les autres résolutions se génèrent en arrière-plan. Si l'audio haute qualité n'est pas encore prêt, le player bascule temporairement sur l'audio basse qualité. Cette approche révolutionne l'expérience utilisateur : plus besoin d'attendre que 100% du transcodage soit terminé pour profiter de son contenu.

Cette logique de "streaming progressif" s'étend à tous nos assets : thumbnails pour la navigation, preview pour le scrubbing, transcripts pour l'accessibilité. Chaque élément devient disponible dès sa génération, créant une expérience utilisateur fluide et responsive.

Scaleway : la souveraineté numérique française

Notre choix de Scaleway pour l'ensemble de notre infrastructure s'inscrit dans notre engagement pour la souveraineté numérique française. L'écosystème Scaleway nous offre :

Object Storage S3 compatible : Stockage de tous nos assets vidéo dans des datacenters français, garantissant la conformité RGPD et la latence optimale pour nos utilisateurs européens.

GPU L4 haute performance : Accès privilégié aux dernières générations de GPU NVIDIA optimisées pour le transcodage vidéo.

Réseau privé sécurisé : Tous nos échanges de fichiers vidéo transitent via le réseau privé Scaleway, éliminant tout risque d'exposition des contenus clients.

L'avenir du transcodage vidéo chez Streamfizz

Notre architecture v2 représente bien plus qu'une simple évolution technique : c'est une révolution dans notre approche du transcodage vidéo. En combinant l'intelligence de BullMQ, la puissance des GPU L4, et la robustesse de l'écosystème Scaleway, nous avons créé un système qui s'adapte dynamiquement aux besoins, optimise automatiquement les coûts, et garantit une expérience utilisateur exceptionnelle.

Cette nouvelle architecture nous positionne idéalement pour les défis à venir : support des codecs AV1, transcodage temps réel pour le live, et intelligence artificielle appliquée à l'optimisation vidéo. Mais surtout, elle illustre parfaitement notre engagement envers l'innovation technique au service de l'expérience utilisateur, tout en préservant notre indépendance technologique et notre ancrage français.

Le futur du streaming vidéo se construit aujourd'hui dans nos datacenters français, avec des technologies ouvertes et une expertise 100% hexagonale.

Ressources techniques

Geoffrey  SignoratoG

Geoffrey Signorato

Lead développeur

Publié le 3 novembre 2025

Mis à jour le 3 novembre 2025

Partager cet article :

Prêt à simplifier votre usage de la vidéo ?

Demandez une démonstration personnalisée dès aujourd'hui.