Normes sonores : Comment Qobuz propose la lecture du FLAC via son player HTML5

images

Alors qu’il peine à trouver des fonds pour survivre, le service français de streaming « haute définition » Qobuz prépare la fin d’année avec quelques changements. Dans le même temps, le Qobuz Player web peut désormais lire la musique sans perte, au format FLAC, via le HTML5. Une nouveauté sur laquelle nous avons voulu en savoir plus.

Mercredi, Qobuz a mis en ligne une nouvelle version de son application web, intégrant la lecture « qualité CD » en HTML5. Les abonnés à l’offre Hi-Fi pourront désormais lire leurs morceaux en FLAC directement depuis leur navigateur, au lieu de devoir passer par l’habituelle application Desktop. Une première, face à des concurrents qui proposent pour la plupart uniquement des formats « à perte », y compris en web.

Cette solution implique des défis spécifiques : compatibilité avec les navigateurs, performances, navigation dans un morceau… Pour mieux comprendre comment cela fonctionne, et aller plus loin, nous en avons discuté avec Quentin Leredde, directeur produit du service de streaming.

Quelles complications avez-vous rencontrés concernant la lecture du FLAC en web par rapport au développement d’un logiciel dédié ?

Les technologies web n’ont pas toujours les mêmes performances qu’une application dédiée, sous iOS ou Android, où on peut utiliser des bibliothèques bas niveau pour le décodage audio. On a pris le parti d’utiliser des technologies compatibles avec les navigateurs. Avec HTML5, on a de nouvelles possibilités dont l’élément < audio >, ou le stockage local. On se rapproche des performances natives, alors qu’avant on devait utiliser un module Flash pour arriver à ce résultat.

L’API Web Audio n’est pas encore supportée par tous les navigateurs. Par exemple sur Internet Explorer. On est en incapacité de proposer notre innovation aux utilisateurs de ce navigateur. La version 12 d’IE va supporter Web Audio [Avec Windows 10]. Ça va donc devenir sans objet d’ici quelques mois.

Comment fonctionne concrètement votre lecteur ?

Aujourd’hui des frameworks permettent de lire de l’audio en HTML5, avec l’API Web Audio. On a trouvé des bibliothèques open source qui font du décodage FLAC en HTML5. On utilise Aurora.js, qui inclut un panel de décodeurs javascript [côté client] en fonction du format (MP3, FLAC, ALAC). Nous avons choisi Aurora.js pour ses bonnes performances, après benchmark. On a aussi fait des tests de qualité audio, sans constater de dégradation de qualité de signal (FLAC vers signal PCM).

On a trouvé que la solution fonctionnait bien. Il reste des petits aspects limitants sur lesquels nous travaillons derrière, comme la difficulté à faire du « seek », la navigation dans le morceau par exemple.  Le produit n’est pas encore au niveau de certains autres, comme un lecteur Flash. D’où l’innovation. On a tout de même trouvé ça satisfaisant pour un client léger.

Contribuez-vous à Aurora.js qui existe depuis 2 ans maintenant, et avez-vous contacté ses développeurs ?

Pour l’instant, on ne l’a pas modifiée. On travaille à des améliorations sur le « seek », pas encore supporté. Si on arrive a quelque chose de satisfaisant, on pourra contribuer. La version en production actuellement n’a pas le « seek ». On a quelque chose en développement, mais pas satisfaisant. D’ici quelques jours, on aura sûrement une solution satisfaisante.

Combien de temps avez-vous mis à développer l’ensemble ?

C’est un projet sur deux mois. L’intégration pure [à l’application web] n’a pas forcément été très longue, voire sensiblement plus courte. Ça a d’abord été le benchmark de la bibliothèque. On a aussi revu le design du « player », intégré le lecteur dans les fiches albums (du magasin)…

Même en une journée, on peut implanter la bibliothèque. C’est l’intégrer à notre solution, à notre API qui a été le plus long. On avait un développeur à plein temps sur ce sujet. Plusieurs personnes sont intervenues, par exemple pour le redesign ou la supervision technique.

Y a-t-il des différences de compatibilité selon les systèmes ?

C’est vraiment le navigateur… Il peut y avoir de légers deltas selon l’OS, selon l’implémentation. Ce n’est pas propre du coup au produit Qobuz. Il n’y a pas de spécificité entre les différents OS, [le lecteur se contentant de décompresser le fichier FLAC et de fournir le signal audio au système par le navigateur].

Quelles difficultés spécifiques avez-vous rencontrées ?

Le son numérique est redirigé vers le lecteur audio de l’OS, ça ne pose pas de problème particulier. Simplement, aujourd’hui avec nos applications natives, comme Qobuz Desktop [sur OS X et Windows], on peut proposer plus de configuration au niveau de l’audio.

On peut par exemple choisir le pilote audio responsable du traitement numérique, qui redirige vers le périphérique audio. Certains pilotes permettent de ne pas du tout ré-échantillonner le signal. Par défaut, le pilote peut agir sur le signal audio, [donc modifier sa restitution]. Aujourd’hui on sait choisir le pilote pour éviter ça dans une application native, pas encore dans le navigateur.

Une restitution « bit-perfect » ?

Oui. Le décodage du FLAC est bit-perfect. Mais quand le son passe par le pilote, il faut vérifier que le signal ne soit pas retraité. Pour l’instant, nous ne sommes pas en mesure de le faire dans le navigateur.

Quelles autres difficultés rencontrez-vous encore ?

On travaille aussi à l’optimisation de la lecture sur Firefox. La structure de Chrome et de Firefox est différente. Les performances de lecture audio peuvent être moins bonnes sur Firefox. Quand on a d’autres web apps ou des applications javascript gourmandes, on peut avoir des ralentissements, parfois une micro-coupure. On travaille dessus. Les navigateurs ne sont pas équivalents. On sait qu’ils ont des différences dans leur comportement, dans leurs performances, dans leur moteur javascript… ce genre de choses.

Comment l’avez-vous déterminé ?

C’est vraiment à l’usage que l’on a pu constater ça. On est dans le cœur en ce moment pour optimiser sur ces cas limites.

Cette web app est-elle utilisable sur mobile et tablette ?

Oui, même si ce n’est pas là que c’est le plus intéressant. Le player web est compatible avec les appareils qui supportent le Web Audio. Contrairement aux applications natives, le lecteur web ne bénéficie pas de l’accélération matérielle pour la décompression audio.  Aujourd’hui, pour que l’expérience soit la plus optimale possible, il faut aussi une version mobile de la fiche album, qui arrive d’ici la fin de l’année.

Et côté performances ?

Ce n’est pas un des usages fondamentaux. Tant que l’on n’avait pas de version mobile sur notre fiche album… Jusqu’ici, on n’a pas constaté de problème particulier. Ce n’est pas sur cet aspect qu’il était le plus important pour nous que la performance soit exemplaire car notre site n’existe pas encore en version mobile, il le sera début janvier. Et nous avons sur mobile des applications qui permettent de profiter du lossless, une nouvelle version de sort d’ailleurs à la mi-décembre.

Les utilisateurs préfèrent-ils l’application web ou desktop ?

Notre parti pris c’est de laisser le choix à l’utilisateur. Dans le desktop, il peut encore choisir son pilote, avoir du offline… L’idée pour Qobuz c’est de proposer à l’ensemble de ses clients le lossless via l’application de leur choix, et maintenant, y compris par le navigateur pour plus de simplicité. Aujourd’hui, notre standard c’est le lossless, nous ne vendons que du lossless et la majorité de nos clients sont abonnés à une offre lossless. La part d’usage équivalente entre web et desktop. On a un usage important sur la fiche album, le player web et le player desktop.

Est-ce que les nouveaux utilisateurs vont plutôt vers le lecteur web ou le lecteur desktop ?

L’application web ne supportant pas le lossless avant, elle n’était pas compétitive face au lecteur Desktop et aux applications mobiles. Nous verrons plus tard ce que cet ajout change. C’est une technologie qu’on est très heureux de présenter et sur laquelle on travaille efficacement pour continuer à la populariser. Avec IE 12, ce sera compatible pour les utilisateurs d’Internet Explorer, et on compte proposer ce qui manque, comme la navigation dans le morceau.

Par Guénaël Pépin Publiée le 28/11/2014
Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s