Blog - hevc.js référencé par dash.js et Shaka Player, à l'invitation de leurs mainteneurs

Six mois après sa sortie, hevc.js a un sample officiel dans dash.js et une section dans le README de Shaka Player. Les deux fois, la demande venait des mainteneurs.

Par Thibaut Lion — 27 octobre 2026

hevc.js, décodeur HEVC en WebAssembly référencé par dash.js et Shaka Player

En avril, on a sorti hevc.js, un décodeur HEVC en WebAssembly qui permet de lire du H.265 dans les navigateurs qui ne le décodent pas, en le transcodant en H.264 à la volée (l'article de lancement est ici). Depuis cet été, deux lecteurs vidéo open source le mentionnent chez eux : dash.js le présente dans ses samples officiels, et Shaka Player lui consacre une section de son README. Dans les deux cas, la proposition est venue de leurs mainteneurs.

dash.js : un sample officiel sur le site du DASH Industry Forum

dash.js est l'implémentation JavaScript de MPEG-DASH publiée par le DASH Industry Forum. Sa page de samples sur reference.dashif.org montre, fonctionnalité par fonctionnalité, comment s'en servir.

Le 20 avril, j'ai présenté le plugin dash.js de hevc.js dans les discussions du repo. Daniel Silhavy, l'un de ses mainteneurs, a répondu en proposant de l'ajouter comme sample dans la section de référence, et m'a demandé une PR qui suive la structure des autres. La PR #5028 a été mergée le 27 juillet, et le sample est sorti avec dash.js 5.2.1 le 17 août. Il est aujourd'hui en ligne sous le titre « Play HEVC streams in any browser », dans la section Codecs, après les samples LCEVC.

Pour une équipe qui évalue la lecture HEVC dans dash.js, ça change le point d'entrée. Elle tombe sur hevc.js dans la documentation du lecteur qu'elle utilise déjà, avec une démo qui tourne sur reference.dashif.org.

Shaka Player : le plugin existe parce qu'un mainteneur l'a demandé

Shaka Player est un lecteur open source pour DASH et HLS. C'est un projet Google : les contributions passent par le CLA de Google, que j'ai signé pour l'occasion.

Le 7 mai, trois semaines après la publication de hevc.js sur npm, Álvaro Velad Galván a ouvert une issue sur notre repo pour demander un plugin Shaka. C'est le deuxième contributeur de Shaka Player par nombre de commits (plus de 2 300 à ce jour), et il a pointé directement la bonne piste : passer par le mécanisme de transmuxer de Shaka, sur le modèle de celui qui existe pour l'AAC. C'est ce que fait @hevcjs/shaka-plugin. Il enregistre un transmuxer pour les codecs hev1 et hvc1, et Shaka route ces types MIME lui-même, sans patch.

Une fois le plugin publié, c'est encore lui qui a demandé aux autres mainteneurs s'il fallait le mentionner dans le README de Shaka. J'ai ouvert la PR #10395, qu'il a mergée le 28 juillet. La section « HEVC software fallback » se trouve juste après celle consacrée à LCEVC, avec un lien vers la démo.

Ce que ça change, et ce que ça ne change pas

Aucun des deux lecteurs n'embarque hevc.js dans son code. Le README de Shaka le précise lui-même, le plugin « must be separately included ». Le plugin reste un paquet à installer à côté du lecteur, et on n'a aucun chiffre sur le nombre de développeurs qui arrivent chez nous par ces deux pages.

Ce qui compte pour nous, c'est d'où sont venues les deux demandes. Un projet sorti en avril par une petite équipe a été invité chez eux par ceux qui maintiennent ces lecteurs. Pour un client qui se demande si on sait travailler sur de la vidéo en production, c'est une réponse qu'il peut vérifier sur GitHub sans nous croire sur parole.

Si vous avez un catalogue HEVC et une partie de votre audience qui voit un écran noir, on peut en parler.

On en parle ?

Un projet, une question, une idée. On répond sous 48h.

Pas de commercial, pas de chatbot. Vous parlez directement à quelqu'un qui code.