Menu d'une vidéo lue dans Nightly (Firefox 26)Début juin, je faisais un point sur la lecture des fichiers MP3, AAC et H.264 dans Firefox. Aujourd’hui, c’est Chris Double, Néo-Zélandais travaillant sur Firefox pour Mozilla, qui prend la plume pour expliquer et répertorier les formats des médias audio et vidéo pris en charge par les logiciels de Mozilla, en particulier Firefox pour ordinateur de bureau, Firefox pour Android et Firefox OS, le système d’exploitation mobile de Mozilla.


Le support des médias HTML dans Firefox

Il y a quelque temps, j’ai écrit une contribution au groupe dev-medias décrivant les formats de média que nous prenons en charge et sollicitant la discussion sur les futurs formats. Ce billet résume ses résultats et les changements qui ont eu lieu depuis lors.

En général, Mozilla cherche à limiter la prolifération des formats de médias sur le Web. Une raison pour cela est de faciliter à un site Web de fournir les médias qu’ils savent pouvoir être lus par la majorité des internautes. Idéalement, les formats pris en charge seraient librement implémentables par n’importe qui dans n’importe quel agent utilisateur1. Cela permet à quelqu’un de partager des médias sur le Web en sachant que tous les utilisateurs peuvent le regarder.

Un contre-argument est que limiter les formats à un petit nombre restreint les producteurs de médias. Ils ne sont pas en mesure de choisir les meilleurs formats pour le type de média qu’ils partagent et qui est le mieux lu sur des appareils spécifiques (par exemple, en profitant de l’accélération matérielle sur un appareil). Le choix des formats pouvant être utilisés serait laissé dans ce cas au système d’exploitation et le navigateur aurait recours à l’utilisation du support du système d’exploitation quand il veut décoder les données multimédias.

Adopter l’approche des codecs du système d’exploitation se traduirait par des médias sur le Web pouvant seulement être lus par un sous-ensemble d’utilisateurs. Si quelqu’un partage un fichier vidéo wmv, celui-ci sera seulement lu sur les systèmes prenant en charge ce format. La liste de tous les formats possibles est énorme et l’intersection des formats pris en charge sur les systèmes d’exploitation n’est pas grande. Nous tenons aussi à éviter que le support des codecs sur le Web deviennent un vecteur pour les logiciels malveillants. Les sites maléfiques pourraient inviter les utilisateurs à installer des codecs infectés par un logiciel malveillant nécessaires à la lecture vidéo sur le site par exemple.

En développant la prise en charge des formats spécifiques dans le navigateur, nous espérons garantir aux producteurs de médias que leurs médias pourront être visibles en toute sécurité par tous les utilisateurs du Web.

Firefox prend actuellement en charge les formats de médias suivants où le support du décodage est intégré dans le navigateur :

  • Le format audio Opus dans un conteneur Ogg sur toutes les plateformes.
  • Le format audio Vorbis dans un conteneur Ogg ou WebM sur toutes les plateformes.
  • Le format vidéo Theora dans un conteneur Ogg sur toutes les plateformes.
  • Le format vidéo VP8 dans un conteneur WebM sur toutes les plateformes.
  • Le format audio WAV sur toutes les plateformes.

Opus, Vorbis, Theora et VP8 ont l’avantage d’être open source et utilisables sans payer de droits de licence pour produire et visionner du contenu. Actuellement, le support du décodage dans Firefox pour ces formats n’est pas accéléré par le matériel. Tout le décodage se fait dans le logiciel.

Le support des formats suivants dans Firefox utilise le support du décodeur du système d’exploitation. Cela signifie que la couverture n’est pas disponible sur toutes les plateformes. Nous travaillons à atteindre cet objectif.

  • Le format vidéo H.264 dans un conteneur MP4 sur Firefox OS, certains appareils Android et la version pour ordinateur de bureau sur Windows Vista et supérieur.
  • Le format audio AAC dans un conteneur MP4 sur Firefox OS, certains appareils Android et la version pour ordinateur de bureau sur Windows Vista et supérieur.
  • Le format audio MP3 en fichiers MP3 sur Firefox OS, certains appareils Android et la version pour ordinateur de bureau sur Windows Vista et supérieur. Le support de Windows XP arrive dans Firefox 26.

Ces formats peuvent utiliser le décodage accéléré par le matériel selon la prise en charge du système d’exploitation. La prise en charge de ces formats sur d’autres plateformes est en cours. Sous Linux, nous allons utiliser GStreamer. Le support de lecture de GStreamer a déjà embarqué mais n’est pas intégré par défaut. Son activation est suivie dans le bogue 886 181. Vous pouvez produire des versions personnalisées en utilisant le commutateur de configuration --enable-gstreamer et en définissant la préférence media.gstreamer.enabled sur true.

Le support de Mac OS X de H.264, AAC et MP3 est suivi par les bogues 801 521 et 851 290.

Seul un sous-ensemble des appareils Android est pris en charge. Pour Android, nous utilisons libstagefright pour fournir du décodage accéléré par le matériel. Cet exemple utilise une API interne d’Android que certains fabricants d’appareils personnalisent, ce qui se traduit par des changements nécessaires pour prendre en charge des appareils spécifiques. Ainsi nous mettons en liste blanche ou noire les appareils que nous savons fonctionner ou ne pas fonctionner. Vous pouvez trouver la liste des appareils Android mis en liste noire ou pris en charge sur le wiki de Mozilla. Le bogue 860 599 est un travail en cours pour mettre en œuvre un moyen plus fiable d’utiliser libstagefright, ce qui devrait procurer du support sur plus d’appareils.

Tous les formats listés ci-dessus sont ce que Mozilla a généralement décidé de prendre en charge « sur le Web ». Autrement dit, un développeur Web peut s’attendre à fournir un élément vidéo avec un de ces formats comme source et s’attendre à le voir lu, si ce n’est maintenant alors à un certain moment dans l’avenir.

Il existe d’autres formats que Firefox prend en charge sur des systèmes d’exploitation ou appareils spécifiques. Ceux-ci sont principalement utilisés dans Firefox OS pour des applications système et pour mettre en œuvre diverses spécifications mobiles. Bien que pris en charge sur l’appareil, il n’y a aucune garantie qu’ils soient pris en charge sur toutes les plateformes ou même sur le Web. Ils ne peuvent fonctionner que sur les applications installées sur l’appareil. Ces formats sont :

  • Le conteneur 3GPP sur Firefox OS. Celui-ci est utilisé pour les MMS vidéos et l’enregistrement vidéo sur l’appareil.
  • Le format audio AMR sur Firefox OS. Celui-ci est utilisé pour les MMS et ne peut être lu « sur l’appareil » que dans les applications privilégiées2.

D’autres formats de médias pourraient être supportés dans le futur. VP9 et Daala par exemple sont des possibilités. Pour une liste officielle des formats pris en charge et les versions de Firefox à partir desquelles ils ont été pris en charge, il y a une page des formats de médias pris en charge sur MDN. Pour discuter des formats et des médias en général, il y a le groupe de discussion dev-medias.


Note du traducteur 1 : Un agent utilisateur (user agent) est une application cliente utilisée avec un protocole réseau particulier ; l’expression est plus généralement employée comme référence pour celles qui accèdent au World Wide Web. Les User Agents du Web vont de la gamme des navigateurs jusqu’aux robots d’indexation, en passant par les lecteurs d’écran ou les navigateurs braille pour les personnes ayant une incapacité (Wikipédia).

Note du traducteur 2 : Une application privilégiée est approuvée par le Firefox Marketplace suivant un processus spécial. Elle est destinée à fournir une plus grande sécurité aux utilisateurs lorsqu’une application veut accéder à certaines API sensibles sur un appareil. Elle est équivalente à une application native sur une plateforme comme iOS ou Android. Elle est autorisée à utiliser certaines API sensibles auxquelles les applications ordinaires n’ont pas accès et présente d’autres caractéristiques en terme de sécurité (Firefox Marketplace Developer Hub).

Source

Bluish Coder, HTML Media support in Firefox, 21 août 2013, Chris Double