Qu’est-ce que le préchargement vidéo ?
Le préchargement vidéo est une indication donnée à un navigateur ou à un lecteur sur la quantité d’une ressource média à récupérer avant que le spectateur ne lance la lecture. Sur l’élément HTML video, l’attribut preload accepte none, metadata ou auto, et le navigateur peut l’ignorer.
Comment fonctionne le préchargement vidéo
Le standard HTML définit l’attribut preload des éléments audio et video comme une indication comportant trois mots-clés. none indique que l’auteur ne s’attend pas à ce que le spectateur ait besoin du média, ou que le serveur souhaite limiter le trafic inutile. metadata indique qu’il est raisonnable de récupérer les dimensions, la liste des pistes et la durée, et éventuellement les premières images. auto, ou l’attribut avec une valeur vide, permet au navigateur de privilégier le spectateur, jusqu’à télécharger par anticipation la ressource entière. Lorsque l’attribut est absent ou invalide, la valeur par défaut dépend de l’implémentation, et le standard suggère le comportement de récupération des métadonnées. Un navigateur peut ignorer entièrement l’indication, par exemple en raison des préférences explicites de l’utilisateur ou de la connectivité disponible. La valeur peut être modifiée après le début du chargement ; une page contenant de nombreuses vidéos peut donc utiliser none et faire passer un lecteur à auto lorsque le spectateur lance la lecture.
Points clés
- Les valeurs sont des indications, pas des budgets en octets. Avec
metadata, le standard HTML indique qu’un navigateur récupère généralement quelques images en plus des dimensions, de la liste des pistes et de la durée ; avecauto, il peut télécharger le fichier entier. Aucune valeur ne plafonne le transfert ; mesurez donc les requêtes effectuées par chaque navigateur cible avant la lecture. - Le comportement effectif peut différer du balisage.
autoplaypeut prendre le pas surpreloadlorsque le navigateur autorise la lecture automatique, car une vidéo en cours de lecture doit être mise en mémoire tampon quelle que soit l’indication, et les navigateurs appliquent leur propre politique. Le code source des éléments média de Chromium, tel que consulté en octobre 2026, ramèneautoàmetadatasur les connexions mobiles et traitenonecommemetadatadès qu’un script appelle la méthodeload()de l’élément. Les listes de règles publiées deviennent obsolètes : la règle Data Saver de l’article de web.dev sur le préchargement ne figure pas dans ce code source. - L’attribut ne contrôle pas les lecteurs fondés sur Media Source Extensions, comme hls.js, car c’est l’application qui récupère le média et l’ajoute elle-même à l’élément. Utilisez le réglage propre au lecteur. Par défaut, hls.js charge automatiquement la liste de lecture du niveau de qualité et les premiers fragments une fois le manifeste analysé ; lorsque
autoStartLoadest défini surfalse, ce chargement attend un appel àstartLoad(). Dans les deux cas,loadSource()demande le manifeste, que hls.js analyse pour en extraire les niveaux de qualité et les pistes disponibles. Pour ne rien demander au flux avant la lecture, retardez égalementloadSource(). - Les navigateurs peuvent demander un fichier média par plages d’octets ; le standard HTML laisse le choix de la plage à l’implémentation. Dans un MP4 non fragmenté, l’index est généralement écrit à la fin du fichier, sauf si l’encodeur l’a déplacé au début, comme le fait l’option
faststartde FFmpeg. Pour le lire sans transférer tout ce qui le précède, le serveur doit donc répondre aux requêtesRangeavec206 Partial Content. HTTP autorise un serveur à ignorerRangeet à envoyer le fichier entier. preload="none"n’empêche pas le chargement de l’image d’affiche. Le standard HTML prévoit la récupération de cette image à la création de l’élément ou à la modification de son attributposter, indépendamment depreload. C’est l’attributloading="lazy"du standard qui diffère à la fois l’image d’affiche et le préchargement jusqu’à ce que l’élément approche de la zone d’affichage, et uniquement lorsque les scripts sont activés ; vérifiez que vos navigateurs cibles l’implémentent pour la vidéo.
Quand le préchargement vidéo est utile
Définissez explicitement preload, car la valeur par défaut diffère selon les navigateurs. none convient aux pages où la lecture est peu probable ou qui répertorient de nombreuses vidéos, metadata convient aux lecteurs qui ont besoin de la durée et des dimensions avant la lecture, et auto convient à une vidéo que le spectateur est censé regarder, au prix du transfert d’un média qui ne sera peut-être jamais lu.
Comment Transloadit aide à préparer le préchargement vidéo
Le préchargement est décidé par le navigateur ou le lecteur au moment de la lecture ; ce n’est donc pas un réglage de Transloadit. Transloadit prépare les fichiers chargés par le lecteur : le Robot /video/thumbs extrait des images d’une vidéo pour servir d’aperçus, qui peuvent fournir l’image d’affiche présentée par un lecteur avant la récupération du moindre média.
Définissez la valeur de preload dans votre propre balisage ou dans la configuration du lecteur, et choisissez l’image extraite à publier comme image d’affiche.
Références
- Standard HTML : éléments média, dont les attributs preload, poster et loading
- MDN : l’élément video et ses attributs preload, poster et loading
- web.dev : lecture rapide grâce au préchargement audio et vidéo
- RFC 9110 : sémantique HTTP, section 14 (requêtes par plages) et section 15.3.7 (206 Partial Content)
- Code source de Chromium : HTMLMediaElement::load(), PreloadType() et EffectivePreloadType()
- Documentation de l’API hls.js : autoStartLoad et startLoad()
- Code source de hls.js : loadSource() et startLoad()
- Code source de hls.js : chargeur de listes de lecture, onManifestLoading() et checkAutostartLoad()
- Documentation des formats FFmpeg : multiplexeur MOV/MP4 et option faststart