« Fichier vidéo introuvable pour cette qualité » — Causes & Correctifs
Cette erreur signifie que le système de lecture (navigateur, app, CDN, encodeur) ne peut localiser un rendu correspondant à la qualité demandée. C'est un désaccord manifeste-segment.
Causes principales (Plus à moins fréquent)
| Cause | Où ça vit | Correctif |
|---|---|---|
| Rendu manquant sortie encodeur | Transcodeur (AWS MediaConvert, Mux, Bitmovin, FFmpeg) | Relancez encodage. Vérifiez échelle : 1080p, 720p, 480p, 360p toutes présentes. |
| Manifeste (M3U8/MPD) référence segment inexistant | Packager / Origin | Régénérez manifeste. Validez avec ffprobe -show_segments ou hlsvalidator.com. |
| Mismatch cache CDN / Origin | Cache edge a vieux manifeste, nouveaux segments (ou inverse) | Purgez cache CDN (Cloudflare, Akamai, CloudFront). Attendez expiration TTL. |
| Échec licence DRM pour qualité spécifique | Serveur licences (Widevine, PlayReady, FairPlay) | Vérifiez logs licences. Rotation clés ? Mismatch protection sortie (HDCP) sur device ? |
| Bug logique ABR (Lecteur) | Video.js, hls.js, Shaka, ExoPlayer, AVPlayer | Mettez à jour lecteur. Loggez événements switch qualité. Fallback manuel vers qualité inférieure. |
| Corruption stockage / Origin | S3, GCS, Azure Blob, Origin Shield | Vérifiez objet existe (requête HEAD). Check etag/taille. Ré-uploadez segments manquants. |
| Restriction géographique / device | Auth token, geo-block, liste allow device | Confirmez token inclut qualité demandée. Test depuis région/device autorisé. |
| Live : Segment pas encore publié | Packager Live (MediaLive, Wowza, Nimble) | Buffer latence trop bas. Augmentez targetDuration / player liveSyncDuration. |
Check-list débogage
- Ouvrez DevTools → Réseau → Filtrez « m3u8 » ou « mpd » → Cliquez manifeste → Vérifiez entrées
EXT-X-STREAM-INFbandwidth matchent URLs segments. - Copiez URL segment en échec → Collez dans navigateur. 404 ? → Problème Origin/CDN. 200 ? → Problème Lecteur/DRM.
- Testez avec Validateur HLS ou Conformance DASH-IF.
- Vérifiez logs encodeur : « Échec écriture segment », « Disque plein », « Erreur licence ».
- Logs lecteur :
videojs.log.level('debug'),hls.js config.debug=true.
Contournements rapides pour spectateurs
- Sélectionnez manuellement qualité inférieure dans menu lecteur.
- Rafraîchissez page / rouvrez app (force nouveau fetch manifeste).
- Videz cache navigateur / données app.
- Essayez différent PoP CDN (VPN / autre FAI).
Pour Ingénieurs : Implémentez échelles encodage redondantes (deux pipelines encode indépendants) + validation manifeste pré-publish + purge cache CDN au deploy. Surveillez alerte segment_404_rate > 0,1 %.
