Des clips qui partent de l'action, pas de l'échauffement
· 4 min de lecture

Deux remarques revenaient chez les personnes qui regardaient leurs films : la narration semblait un peu rapide, et l'écran défilait un peu vite. On aurait dit deux réglages à ajuster. En réalité, tout tenait à ce que le film montrait vraiment.
Deux petites remarques, une vraie question
Un film PageToVid est fait de courts enregistrements de navigateur : l'enregistreur ouvre le site, défile jusqu'à la bonne section, survole, clique, et le moteur vidéo tisse ces clips sous la voix. Quand un spectateur trouve le défilement pressé, le réflexe naturel est de le ralentir.
Nous l'avions fait, deux fois. Les remarques revenaient. Alors plutôt que de tourner un autre bouton, nous avons posé une meilleure question : que voit réellement le spectateur, image par image ? La réponse nous a menés à deux améliorations qui rendent chaque film plus calme et plus fiable.
La boîte à outils vidéo, dans chaque film
Une grande part de la finition d'un film vient de ffmpeg, la boîte à outils de référence pour l'audio et la vidéo. Il masterise la narration pour que la voix sonne posée et régulière, et il transforme les enregistrements bruts du navigateur en vidéo propre, à cadence fixe, qui se lit sans à-coups.
La lecture des journaux de production a montré que cet outil n'était pas toujours présent dans notre conteneur. Notre build installe les paquets sans exécuter leurs scripts d'installation, un bon réflexe pour des images reproductibles, et c'est justement dans ce script que ce paquet téléchargeait son binaire. Les étapes qui s'en servaient étaient écrites pour continuer poliment en son absence : les films se terminaient, simplement sans cette dernière finition.
Nous installons désormais ffmpeg directement dans l'image, et chaque appel passe par un seul résolveur qui trouve toujours un binaire qui fonctionne. Le mastering s'applique à chaque voix, et chaque clip devient une vidéo fluide à cadence constante. Un outil manquant ne peut plus passer inaperçu.
Un nombre qui racontait toute l'histoire
Une fois l'outil en place, un rendu de test a signalé quelque chose d'étrange : un clip censé durer environ 17 minutes, dans un film de moins de deux. Ce nombre impossible expliquait tout.
Un enregistrement de navigateur dure toute la vie de la session. Il contient la page blanche, le chargement, un défilement d'échauffement rapide qui réveille les sections chargées à la demande, et seulement ensuite l'action calme et scénarisée. Ces enregistrements comportent aussi des trous dans leurs horodatages, et une conversion naïve remplit chaque trou d'images répétées : un enregistrement court peut alors durer des minutes.
Cela répondait aussi aux remarques de départ. Les scènes lisaient leurs clips depuis la première image : les spectateurs regardaient notre défilement de préparation, pas l'action prévue. Aucun réglage de vitesse n'aurait pu corriger cela.
Ne garder que l'action
La solution consiste à ne garder que la fin de chaque enregistrement, la fenêtre qui contient l'action scénarisée. Nous avons rendu cette coupe exacte, en deux passes :
- Réempaqueter l'enregistrement dans un format doté d'un vrai index de recherche. Cela prend quelques millisecondes et ne touche aucun pixel.
- Mesurer sa durée réelle, partir de la fin moins la fenêtre d'action, et couper avec une limite de durée stricte, pour que le résultat ne puisse jamais dépasser l'action, quoi que disent les horodatages.
L'enregistreur horodate aussi l'action pendant qu'il filme : la coupe suit le moment mesuré plutôt qu'une estimation fixe. Chaque clip commence désormais sur la première image de ce dont parle la voix, et finit avec elle.
Des garde-fous des deux côtés du passage de relais
Nous voulions que la durée d'un clip soit une donnée sur laquelle le film peut toujours compter. Nous avons donc ajouté deux garde-fous indépendants, un à chaque endroit concerné :
- Dans l'enregistreur, chaque clip porte une durée. Si la mesure échoue, il prend la limite connue de la coupe, et toute mesure reste dans cette limite.
- Dans la composition, un clip sans durée connue se fige sur sa dernière image sûre après une courte fenêtre prudente.
Quand la voix d'une scène dure plus que son clip, l'image se pose simplement sur la dernière image. Nous avons aussi donné quatre fois plus de mémoire au cache d'images du moteur vidéo et lançons un seul rendu à la fois par machine : chaque film dispose des ressources dont il a besoin du début à la fin.
Ce que remarquent les spectateurs
Ces changements sont invisibles dans le code et évidents à l'écran. La narration est masterisée, elle sonne régulière et posée. Le défilement est calme, car la scène montre le mouvement prévu, pas la préparation. Et chaque scène commence sur son sujet.
La leçon que nous gardons de ce chapitre est simple : une remarque sur la qualité est un indice, pas un réglage. Prendre au sérieux un nombre bizarre nous a menés plus loin que n'importe quel bouton. Vous pouvez voir comment l'enregistreur filme un site sur la page des fonctionnalités.
Voyez-le sur votre propre site
Collez une page et obtenez la vidéo commentée dont parle ce blog. La première est offerte.
À lire ensuite


