Image de couverture : Comprimer 2 000 vidéos par jour avec FFmpeg et Laravel : méthode, chiffres et ROI
tech

Comprimer 2 000 vidéos par jour avec FFmpeg et Laravel : méthode, chiffres et ROI

09 April 2026
5 min de lecture
3 vues
Sébastien Muler

Comprimer 2 000 vidéos par jour avec FFmpeg et Laravel : méthode, chiffres et ROI

Une équipe stocke des milliers de courtes vidéos de vérification. Chaque clip dure 30 secondes. Individuellement, rien d'alarmant. Collectivement, sur des millions d'enregistrements avec une rétention de 2 à 4 ans, la facture de stockage devient un poste budgétaire à part entière.

C'est le problème qu'a résolu Shakil Alam dans un article publié sur DEV Community : en orchestrant FFmpeg depuis Laravel, il comprime aujourd'hui plus de 2 000 vidéos par jour, économisant 20 à 30 Go de stockage quotidiennement. Chez MulerTech, on a lu cet article avec attention — parce que cette problématique concerne bien plus d'entreprises qu'on ne le croit.


Ce que les chiffres révèlent

Avant toute décision technique, Shakil a mesuré. C'est le point de départ indispensable. Voici les résultats réels constatés en production sur une journée type :

Métrique Valeur
Vidéos traitées 2 203
Espace économisé 15,66 Go
Taux de compression moyen 62,1 %
Meilleure compression enregistrée 99,92 %

Un taux de compression de 62 % en moyenne signifie concrètement : pour 100 Go de vidéos entrantes, il n'en reste que 38 Go après traitement. Sur un an, avec une rétention imposée, l'économie se chiffre en centaines de gigaoctets — parfois en téraoctets.

Ce qui rend ce résultat crédible, c'est qu'il est obtenu sans dégradation visible pour les équipes de review. La qualité perceptuelle reste suffisante pour l'usage métier.


L'architecture Laravel + FFmpeg : ce qui se passe en coulisse

La solution repose sur trois éléments bien connus de l'écosystème PHP/Symfony (et Laravel) : les jobs en arrière-plan, une librairie d'abstraction FFmpeg, et une politique de compression différée sur les fichiers non actifs.

1. Ne jamais toucher un fichier en cours d'utilisation

La règle numéro un du pipeline : on ne comprime jamais un fichier qui vient d'être uploadé ou qui est en cours de review. Un délai de sécurité est appliqué (par exemple, n'intervenir que sur des fichiers vieux de plusieurs jours), ce qui garantit zéro risque de corruption pendant un accès concurrent.

2. Dispatching via les queues Laravel

Chaque video éligible génère un job Laravel dispatché dans une queue dédiée. Ces jobs s'exécutent en arrière-plan, sans bloquer l'application principale. Le throttling est configurable pour éviter de saturer le CPU du serveur pendant les heures de pointe.

// Exemple simplifié de dispatch
CompressVideoJob::dispatch($video->id)
    ->onQueue('video-compression')
    ->delay(now()->addDays(3));

3. FFmpeg pour la compression

FFmpeg est appelé avec des paramètres H.264/H.265 adaptés au contenu (vidéos de type screencast ou face-cam avec peu de mouvement). Le codec, le bitrate et la résolution sont ajustés selon le profil du fichier source. Le fichier comprimé remplace l'original uniquement après vérification de l'intégrité.

// Vérification avant remplacement
if ($compressedSize < $originalSize * 0.95) {
    Storage::delete($video->path);
    $video->update(['path' => $compressedPath]);
}

4. Dashboard et métriques

L'équipe suit en temps réel : nombre de vidéos traitées, espace économisé, taux de compression par batch. Ces métriques alimentent les décisions budgétaires et permettent de projeter les économies futures.


Calculer son ROI avant de coder

Avant de déployer quoi que ce soit, la question à poser est simple : est-ce que ça vaut le coup pour mon cas ?

Voici une estimation rapide applicable à n'importe quelle structure :

Données d'entrée :

  • Volume de vidéos uploadées par jour
  • Taille moyenne d'un fichier
  • Durée de rétention imposée (légale ou métier)
  • Coût du stockage cloud (ex. : 0,02 $/Go/mois sur S3)

Exemple concret :

  • 500 vidéos/jour × 50 Mo = 25 Go/jour
  • Sur 365 jours = 9,1 To/an
  • À 62 % de compression → économie de ~5,6 To/an
  • Coût évité : ~112 $/mois, soit 1 344 $/an sur un seul bucket

Pour une PME traitant des vidéos de formation, de conformité ou de support client, ce calcul peut représenter plusieurs milliers d'euros d'économies annuelles — pour un investissement de développement limité et non récurrent.


Ce que MulerTech peut faire pour vous

Cette approche est directement transposable dans un contexte Symfony/PHP, avec les mêmes principes : Messenger pour les jobs asynchrones, FFmpeg via php-ffmpeg/php-ffmpeg, et un système de flags en base pour identifier les fichiers éligibles.

Nous proposons un audit + pilote 1 % en deux étapes :

Étape 1 — Audit (1 à 2 jours) :

  • Inventaire du volume de fichiers médias en production
  • Estimation du taux de compression atteignable selon le type de contenu
  • Projection ROI sur 12 mois
  • Identification des risques (fichiers actifs, intégrité, rollback)

Étape 2 — Pilote sur 1 % du stock :

  • Déploiement du pipeline sur un sous-ensemble représentatif
  • Mesure réelle du taux de compression et de la qualité perceptuelle
  • Rapport de résultats avant toute décision de déploiement complet

L'objectif : vous donner des chiffres réels sur votre stock, pas des estimations théoriques.


Conclusion

La compression différée de vidéos n'est pas un sujet réservé aux grandes plateformes. Toute entreprise qui accumule des fichiers médias avec une durée de vie longue est concernée : cabinets de formation, éditeurs SaaS, services de conformité, plateformes RH.

L'article de Shakil Alam le démontre avec des chiffres concrets : 62 % de compression moyenne, 20 à 30 Go économisés par jour, zéro impact sur l'usage métier. La technologie (FFmpeg + queues) est mature, documentée et accessible.

Si vous stockez des vidéos en production et que vous n'avez jamais mesuré ce que ça vous coûte vraiment, c'est probablement le bon moment pour le faire.

Partager cet article