Firefox : problème de performances lors du déplacement temporel (seek) sur les vidéos x264

Personne observant du code informatique affiché.

De nombreux développeurs et utilisateurs ont signalé un problème spécifique avec Firefox concernant la gestion du déplacement temporel (seek) sur des vidéos encodées en x264 (MP4). Ce problème survient lorsqu’on utilise fréquemment la propriété .currentTime ou la méthode .fastSeek() d’un objet HTMLVideoElement, notamment via des fonctions telles que requestAnimationFrame ou requestVideoFrameCallback.

Détail du problème

Le navigateur Firefox semble regrouper et retarder les demandes répétées de déplacement dans le temps (seek) au lieu de les exécuter immédiatement. Ce comportement entraîne une latence notable et une imprécision de l’affichage des images souhaitées, ce qui affecte négativement l’expérience utilisateur dans des contextes interactifs précis, comme les éditeurs vidéo en ligne, les applications d’annotation ou les lecteurs vidéo avancés.

Il est intéressant de constater que ce problème ne semble pas concerner d’autres codecs modernes comme l’AV1, indiquant une gestion différente du décodage par Firefox selon les codecs.

Impact concret sur les utilisateurs

Cette latence peut être problématique dans plusieurs scénarios :

  • Montage et édition vidéo sur le web, nécessitant des déplacements précis sur la timeline.
  • Applications d’annotation vidéo en temps réel.
  • Applications interactives où une réponse rapide à la manipulation temporelle est critique.

Comparaison avec d’autres navigateurs

Des tests réalisés sur Chrome ou Safari démontrent généralement une bien meilleure réactivité lors de ces déplacements temporels sur les vidéos x264. Cette différence souligne un problème spécifique à Firefox concernant sa gestion interne du décodage vidéo.

Solutions temporaires et recommandations

En attendant une correction officielle de Mozilla, voici quelques pistes pour réduire l’impact du problème :

  • Préférez l’encodage vidéo AV1 pour vos contenus interactifs si votre infrastructure le permet.
  • Limitez les appels fréquents à .currentTime ou .fastSeek() en utilisant des mécanismes de debounce ou throttling côté client.
  • Participez activement aux discussions sur le bug tracker officiel de Mozilla pour encourager une résolution rapide.

Conclusion

Il est important que Mozilla prenne conscience de l’importance de ce bug pour améliorer la compatibilité et les performances globales de Firefox. En attendant, adopter les bonnes pratiques citées plus haut permettra de limiter l’impact négatif sur les utilisateurs finaux.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *