Aller au contenu

Les bandes-annonces Steam sont en HLS : le MP4 est assemblé dans votre navigateur

Une bande-annonce Steam n’est pas un fichier à saisir — c’est une playlist de fragments. Le téléchargeur lit les qualités de la playlist, et votre navigateur les assemble en un seul MP4.

Steam publiait autrefois les bandes-annonces comme de simples fichiers MP4 et WebM, et ces champs existent encore dans son API de magasin. Ils sont désormais toujours vides. Ce que Steam publie à la place est une playlist maître HLS : un petit fichier texte qui décrit les versions de la bande-annonce et pointe vers des fragments de quelques secondes chacun.

D’abord la playlist, ensuite les fragments

Le travail du résolveur s’arrête tôt ici. Il lit les métadonnées de la page du magasin, prend l’URL de la playlist maître de la bande-annonce, l’analyse et renvoie une ligne par version avec sa résolution, son débit et sa cadence d’images. Il ne récupère jamais de fragments vidéo et n’assemble jamais rien — cela reviendrait à faire transiter toute la vidéo par un serveur sans raison.

Ce que lit le résolveurCe que fait ensuite le navigateur
Playlist maître : versions, résolutions, débits, groupe audioChoisit la version que vous avez sélectionnée
Le modèle de segment à l’intérieur de la playlistRécupère les fragments de cette version depuis le CDN de Steam et les assemble
Le groupe audio que nomme le maîtreFusionne la piste vidéo et la piste audio AAC en un seul MP4

L’assemblage se fait dans l’onglet déjà ouvert, depuis le CDN de Steam lui-même (video.akamai.steamstatic.com). Une bande-annonce de deux minutes représente environ 90 fragments, la barre de progression se remplit donc en quelques secondes sur une connexion normale.

Lire la liste des qualités

Les fragments sont copiés octet par octet dans le MP4 final. L’image et le son sont exactement ce que lit le client Steam lui-même à cette résolution — l’assemblage est un changement de conteneur, pas un réencodage, rien n’est donc adouci au passage.

Ce qui peut mal tourner

Deux choses, toutes deux liées au réseau plutôt qu’à la vidéo. Si les métadonnées du magasin Steam ne répondent pas, le résolveur réessaie une fois avant de signaler un échec. Si la playlist elle-même ne peut pas être analysée, la même nouvelle tentative s’applique — et si elle échoue encore, la page le dit au lieu de proposer un téléchargement qui n’aboutirait pas.

Une page de jeu sans vidéos renvoie no_video. Cela inclut les pages dont le seul média est une galerie de captures d’écran, ce qui est courant pour les titres non sortis.

En bref

Questions

La bande-annonce téléchargée est-elle de moins bonne qualité que celle que lit Steam ?

Non. Les fragments sont copiés dans le MP4 octet par octet, l’image et le son correspondent donc à la version que vous avez choisie — le même flux que lit le client Steam à cette résolution.

Pourquoi un téléchargement Steam affiche-t-il une barre de progression, contrairement à Pinterest ?

Parce que le CDN de Steam autorise le navigateur à lire les fragments, la page télécharge donc vraiment le fichier et peut signaler sa progression. Le CDN de Pinterest ne le permet pas, ce téléchargement doit donc être une simple navigation.

Une page de jeu n’affiche aucune vidéo — pourquoi ?

Cette page n’a ni bande-annonce ni clip de gameplay attachés. Les galeries de captures d’écran ne sont pas de la vidéo, et les jeux non sortis n’ont souvent ni l’un ni l’autre avant d’approcher de leur lancement.

Outils de cet article

Tous les articles