Streaming comme dans un blockbuster : Laravel-HLS entre en scène
Chez OBI Partner, on a l’habitude de sauver des projets comme Tom Cruise sauve le monde dans Mission Impossible. Mais cette fois, la mission est différente : streamer des vidéos sans que tout parte en fumée.
Parce que soyons clairs :
Les vidéos qui chargent en boucle, c’est comme un générique qui ne finit jamais.
Les bases de données qui pleurent, c’est digne d’un épisode de Dark.
Et les devs qui jurent “¡pero en mi máquina sí funciona!”, ça ressemble à une parodie mal doublée sur Netflix.
C’est là qu’apparaît notre héros : laravel-hls.
🎥 Le pitch
Laravel-HLS, c’est un package open source qui fait le job de producteur vidéo dans ton app Laravel :
Il convertit tes fichiers en flux HLS adaptatif grâce à
ffmpeg.Il ajoute du chiffrement AES-128, histoire que tes vidéos ne se baladent pas nues sur Internet.
Il bosse en queues Laravel, comme une équipe de montage qui ne bloque pas le tournage principal.
Et il te fournit directement la playlist
.m3u8pour diffuser ton film en streaming.
Bref : tu uploades une vidéo, et ça sort prêt pour Netflix (bon… en version artisanale 😅).
🎬 Acte I : Installation
Tu appelles le renfort via Composer :
Tu balances la config dans ton projet :
Dans
config/hls.php, tu règles le scénario : résolutions, bitrates, chiffrement, file d’attente, stockage…Tu ajoutes le trait à ton modèle vidéo :
Et BOOM : tu récupères ta playlist avec une simple route
/hls/{id}/playlist.
🎬 Acte II : Les coulisses
💣 Le chiffrement : comme dans tout bon thriller, il y a une clé secrète. Ici, AES-128 protège tes segments vidéo. Sans la clé → pas de lecture → pas de spoil.
⚡ Le montage parallèle : la conversion se fait en arrière-plan avec les jobs Laravel. Ton serveur web n’a donc pas besoin d’être Rambo pour gérer le rendu vidéo.
🚀 Le déploiement : tu peux intégrer ça dans ton pipeline CI/CD, pour lancer automatiquement les conversions dès qu’un fichier atterrit dans ton projet.
🎬 Acte III : Le plan d’action CI/CD
Exemple avec GitLab CI :
stages: [test, convert, deploy]
test:
stage: test
image: php:8.3-cli
script:
- composer install --no-dev
- vendor/bin/phpunit
convert:
stage: convert
image: php:8.3-cli
script:
- php artisan queue:work --once --queue=hls
only:
- main
deploy:
stage: deploy
script:
- php artisan migrate --force
- php artisan hls:generate
Ici, c’est comme une mission commando :
test vérifie que l’équipe est prête,
convert s’occupe du montage,
deploy diffuse le film à l’affiche 🎞️.
🎬 Bonus : Les spin-offs possibles
E-learning : tes cours passent en streaming sécurisé, plus de fuite de contenu.
VOD interne : tu deviens le Netflix du comité d’entreprise.
Événements live : conférences, concerts ou lotos en ligne (oui oui 👀).
🎬 La suite de la saga
Laravel-HLS fonctionne déjà très bien, mais la suite pourrait inclure :
CMAF pour plus de compatibilité,
DRM niveau “Hollywood”,
Scalabilité avec workers distribués,
Tableau de bord style IMDB pour suivre les conversions.
🎬 Conclusion
➡️ Si tu veux une forge CI/CD qui déploie tes apps comme un buffet, on a GitLab.
➡️ Si tu veux du modulaire façon food-truck, tu prends Gitea + Woodpecker.
➡️ Et si tu veux diffuser des vidéos façon Netflix, laravel-hls est ton acteur principal.
Chez OBI Partner, on aime dire :
“Pas besoin d’Hollywood, tant que ta vidéo sort en streaming, sans spoilers et sans écrans noirs.” 🍿
👉 Alors, prêt à tourner ton premier blockbuster en Laravel ?