Formats pris en charge par <audio> et <video>

Les éléments <audio> et <video> permettent la lecture de médias audio et vidéo sans nécessiter de plug-ins. Les codecs vidéo et les codecs audio sont utilisés pour traiter la vidéo et l'audio : des codecs différents offrent différents niveaux de compression et de qualité. Un format de conteneur est utilisé pour stocker et transmettre la vidéo et l'audio codés ensemble. De nombreuses combinaisons de codecs et de formats conteneurs existent, bien que seule une poignée d’entre eux soit pertinentes pour une utilisation sur le web.

Différents navigateurs ne supportent pas les mêmes formats de médias dans leurs implémentations de HTML5 audio et vidéo, principalement en raison de problèmes de brevets. Les formats de médias sur le web ont beaucoup souffert du droit des brevets dans de nombreux pays dont les États-Unis et les pays de l’Union européenne. (Les notes sur les brevets dans cet article sont fournies en l'état et sans aucune garantie.) Cet article présente les différents combinaisons de codecs et conteneurs adaptées au web, ainsi que leur support par les navigateurs.

Pour lire une vidéo HTML5 qui fonctionne dans les dernières versions de tous les principaux navigateurs, vous pouvez vous servir votre vidéo au format WebM et au format MPEG H.264 AAC, à l'aide de l'élément <source> comme ceci :

<video controls>
  <source src="video.webm" type="video/webm">
  <source src="video.mp4" type="video/mp4">
  Je suis désolé, votre navigateur ne supporte pas les vidéos HTML5
  au format WebM avec VP8 ni au format MP4 avec H.264.
  <!-- Vous pouvez intégrer un lecteur Flash ici pour lire la vidéo mp4 dans les anciens navigateurs -->
</video>

WebM

Le format WebM est basé sur une version restreinte du format conteneur Matroska. Il utilise toujours le codec vidéo VP8 ou VP9 et le codec audio Vorbis ou Opus. WebM est supporté nativement dans Gecko (Firefox), Chrome et Opera, et le support du format peut être ajouté à Internet Explorer et Safari (mais pas iOS) en installant un add-on. La prise en charge du codec VP9 WebM est en cours pour le navigateur Edge.

Tous les brevets connus sur le format WebM sont autorisés à tous gratuitement. Toutefois, puisque WebM est un format relativement nouveau, le format n'a pas encore subi l'épreuve du temps par rapport à d'éventuels problèmes de brevets cachés, selon Microsoft et Apple.

Gecko reconnaît les types MIME suivants comme des fichiers WebM :

video/webm
Une fichier média WebM contenant de la vidéo (et éventuellement de l’audio).
audio/webm
Un fichier média WebM contenant seulement de l’audio.

Ogg Theora Vorbis

Le format conteneur Ogg avec le codec vidéo Theora et le codec audio Vorbis est pris en charge dans Gecko (Firefox), Chrome et Opera, et le support du format peut être ajouté à Safari (mais pas iOS) en installant un add-on. Le format n'est pas pris en charge dans Internet Explorer.

WebM est généralement préféré à Ogg Theora Vorbis lorsqu'il est disponible, car il offre un meilleur rapport compression/qualité et est pris en charge par plus de navigateurs. Le format Ogg peut cependant être utilisé pour le support de navigateurs plus anciens (par exemple, Firefox 3.5/3.6 ne gère pas WebM mais supporte Ogg).

La situation des brevets de Theora est similaire à celle de WebM.

Vous pouvez en apprendre plus sur la création de médias Ogg en lisant le Livre de cuisine de Theora.

Gecko reconnaît les types MIME suivants comme des fichiers Ogg :

audio/ogg
Un fichier Ogg contenant uniquement de l’audio.
video/ogg
Un fichier Ogg contenant de la vidéo (et éventuellement de l’audio).
application/ogg
Un fichier Ogg au contenu non spécifié. Utiliser l'un des deux autres types MIME est préférable, mais vous pouvez utiliser celui-ci si vous ne connaissez pas le contenu du fichier.

Ogg Opus

Le conteneur Ogg peut également contenir de l'audio encodé avec le codec Opus. Cette technologie est disponible dans Gecko 15,0 et plus.

Ogg FLAC

Le conteneur Ogg peut également contenir de l'audio encodé grâce au codec FLAC. La prise en charge de ce format est disponible à partir de Gecko 51.0 (Firefox 51.0 / Thunderbird 51.0 / SeaMonkey 2.48) (pas pour la version mobile).

MP4 H.264 (AAC ou MP3)

Le format conteneur MPEG avec le codec vidéo H.264 et le codec audio AAC ou le codec audio MP3 est supporté nativement par Internet Explorer, Safari et Chrome mais pas par Chromium et Opera. Firefox prendra bientôt en charge le format, mais seulement quand un décodeur tiers sera disponible.

Les formats MPEG médias sont couverts par des brevets, qui ne sont pas sous licence libre. Tous les permis nécessaires peuvent être achetés auprès de MPEG LA. Puisque H.264 n'est pas un format libre de droits, il est impropre à la plate-forme Web ouverte, selon Mozilla [1, 2], Google [1, 2] et Opera. Toutefois, étant donné que les formats libres ne sont pas pris en charge par Internet Explorer et Safari, Mozilla a quand même décidé d'inclure les codecs. De plus, Google n'a jamais rempli leur promesse de retirer sa prise en charge par Chrome.

MP4 FLAC

À partir de Firefox 51, il est possible de lancer des fichiers MP4 encodé avec FLAC, avec ou sans les extensions MediaSource et les DRM.

MP3

Le format audio MP3 (.mp3, audio/mpeg, différent du format audio MP3 d'un contneur MP4 décrit ci-avant) est pris en charge par Firefox/Firefox pour Android lorsque le système d'exploitation fournit un décodeur MP3, il est également pris en charge par Internet Explorer, Chrome et Safari.

WAVE PCM

Le format conteneur WAVE, avec le codec audio PCM (WAVE codec "1") est pris en charge par Gecko (Firefox) et Safari. Les fichiers au format WAVE finissent généralement par l'extension ". Wav".

Note : Voir la RFC 2361 pour le registre codec WAVE.

Gecko reconnaît les types MIME suivants sous forme de fichiers audio WAVE :

  • audio/wave (de préférence)
  • audio/wav
  • audio/x-wav
  • audio/x-pn-wav

FLAC

Le format de conteneur FLAC, avec le codec audio FLAC est pris en charge par Gecko 51.0 ((Firefox 51.0 / Thunderbird 51.0 / SeaMonkey 2.48)). Les fichiers présents dans un conteneur FLAC ont généralement une extension .flac.

Gecko reconnaît les types MIME suivants comme des fichiers audio FLAC :

  • audio/flac (préférable)
  • audio/x-flac

Media Source Extensions (MSE)

Media Source Extensions est un brouillon de travail du W3C pour étendre HTMLMediaElement afin de permettre au JavaScript de générer des flux de média pour la lecture. La génération de flux par JavaScript simplifie certains cas de figures comme les flux adaptatifs et les flux en direct. La prise en charge de MSE se limite aux conteneurs MP4 et WebM mais la prise en charge des codes dépend de la plateforme sous-jacente.

Dans ce cadre, on pourrait par exemple implémenter MPEG-DASH avec JavaScript en déchargeant le décodage sur MSE.

Compatibilité des navigateurs

Fonctionnalité Chrome Firefox (Gecko) Internet Explorer Opera Safari
Support simple 3.0 3.5 (1.9.1) 9.0 10.50 3.1
<audio> : PCM en WAVE (Oui) 3.5 (1.9.1) Pas de support 10.50 3.1
<audio> : Vorbis en WebM (Oui) 4.0 (2.0) Pas de support 10.60 3.1[1]
<audio> : Diffusion Vorbis/Opus en WebM via MSE ? 36.0 (36.0)[2] ? ? ?
<audio> : Vorbis en Ogg (Oui) 3.5 (1.9.1) Pas de support 10.50 Pas de support
<audio> : MP3 (Oui)[4] (Oui)[5] 9.0 (Oui) 3.1
<audio> : MP3 en MP4 ? ? ? ? (Oui)
<audio> : AAC en MP4 (Oui)[6] (Oui)[7] 9.0 (Oui) 3.1
<audio> : Opus en Ogg 27.0 15.0 (15.0) ? ? ?
<audio> : FLAC Pas de support 51 (51) Pas de support Pas de support Pas de support
<audio> : FLAC en Ogg Pas de support 51 (51) Pas de support Pas de support Pas de support
<video> : VP8 et Vorbis en WebM 6.0 4.0 (2.0) 9.0[8] 10.60 3.1[9]
<video> : VP9 et Opus en WebM 29.0 28.0 (28.0)[36] ? (Oui) ?
<video> : Diffusion WebM via MSE ? 42.0 (42.0)[35] ? ? ?
<video> : Theora et Vorbis en Ogg (Oui) 3.5 (1.9.1) Pas de support 10.50 Pas de support
<video> : H.264 et MP3 en MP4 (Oui)[4] (Oui)[10] 9.0 (Oui) (Oui)
<video> : H.264 et AAC en MP4 (Oui)[4] (Oui)[11] 9.0 (Oui) 3.1
<video> : FLAC en MP4 ? 51 (51) ? ? ?
Tout autre format Pas de support Pas de support Pas de support Pas de support 3.1[12]
Fonctionnalité Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Opera Mini Safari Mobile Chrome for Android
Support simple 2.3 24.0 10.0 11.0 (Oui)[13] 3.2 29.0
<audio> : PCM en WAVE ? 24.0 Pas de support Pas de support (Oui)[14] 3.2 ?
<audio> : Vorbis en WebM ? 24.0 Pas de support 11.0 (Oui)[15] Pas de support ?
<audio> : Diffusion de Vorbis en WebM via MSE ? ? ? ? ? ? ?
<audio> : Vorbis en Ogg ? 24.0 Pas de support 11.0 (Oui)[16] Pas de support ?
<audio> : MP3 ? (Oui)[17] 10.0 ? (Oui)[19] 3.2 ?
<audio> : MP3 en MP4 ? ? ? ? ? (Oui) ?
<audio> : AAC en MP4 ? (Oui)[20] 10.0 ? (Oui)[22] (Oui) ?
<audio> : Opus en Ogg Pas de support 24.0 Pas de support Pas de support (Oui)[23] Pas de support Pas de support
<video> : VP8 et Vorbis en WebM 2.3 24.0 Pas de support 16.0 (Oui)[24] Pas de support 29.0
<video> : VP9 et Opus en WebM ? ? ? ? ? ? ?
<video> : Diffusion de WebM via MSE ? 42.0 (42.0) ? ? ? ? ?
<video> : Theora et Vorbis en Ogg Pas de support 24.0 Pas de support Pas de support (Oui)[25] Pas de support Pas de support
<video> : H.264 et MP3 en MP4 (Oui)[26] 24.0[33] 10.0 16.0[28] (Oui)[29] (Oui) 29.0
<video> : H.264 et AAC en MP4 (Oui)[30] 24.0[34] 10.0 16.0[28] (Oui)[32] 3.2 29.0
<video> : FLAC en MP4 ? 51.0 (51) ? ? ? ? ?
Tout autre format ? ? ? ? ? ? ?

[1] Doit être installé séparément.

[2] Uniquement dans les canaux Nightly/Developer Edition.

[3] Uniquement sur les plateformes qui ne prennent pass en charge H.264.

[4] AAC est uniquement pris en charge pour le conteneur MP4. Indisponible sous Chromium.

[5] Afin d'éviter des problèmes de brevet, la prise en charge du MP3 n'est pas directement intégrée dans Firefox mais repose sur la prise en charge du format par le système d'exploitation. Firefox prend en charge ce format depuis Firefox 22.0 sur Windows Vista, depuis Firefox 20.0 pour Android, depuis Firefox 26.0 sur Linux (il s'appuie sur les codecs GStreamer) et depuis Firefox 35.0 depuis OS X 10.7.

[6] Indisponible dans Chromium. AAC est uniquement pris en charge pour le conteneur MP4.

[7] AAC est uniquement pris en charge dans le conteneur MP4. Pour éviter des problèmes de brevet, la prise en charge de MPEG 4 et AAC n'est pas directement intégrée dans Firefox mais repose sur la prise en charge du format par le système d'exploitation. Firefox prend en charge ce format depuis Firefox 22.0 sur Windows Vista, depuis Firefox 20.0 pour Android, depuis Firefox 26.0 sur Linux (il s'appuie sur les codecs GStreamer) et depuis Firefox 35.0 depuis OS X 10.7.

[8] Doit être installé séparément (par exemple WebM MF).

[9] Doit être installé séparément (par exemple Perian).

[10] Pour éviter des problèmes de brevet, la prise en charge de MPEG 4, H.264 et MP3 n'est pas directement intégrée dans Firefox mais repose sur la prise en charge du format par le système d'exploitation. Firefox prend en charge ce format depuis Firefox 22.0 sur Windows Vista, depuis Firefox 20.0 pour Android, depuis Firefox 26.0 sur Linux (il s'appuie sur les codecs GStreamer) et depuis Firefox 35.0 depuis OS X 10.7.

[11] AAC est uniquement pris en charge dans le conteneur MP4. Pour éviter des problèmes de brevet, la prise en charge de MPEG 4, H.264 et AAC n'est pas directement intégrée dans Firefox mais repose sur la prise en charge du format par le système d'exploitation. Firefox prend en charge ce format depuis Firefox 22.0 sur Windows Vista, depuis Firefox 20.0 pour Android, depuis Firefox 26.0 sur Linux (il s'appuie sur les codecs GStreamer) et depuis Firefox 35.0 depuis OS X 10.7.

[12] Permet de jouer tous les formats qui sont disponibles avec QuickTime.

[13][14][15][16][19][23][24][25][29] Opera Mini ne prend pas en charge les fichier vidéo ou audio, il délègue la lecture à l'appareil qui lit le fichier s'il prend en charge le format. Opera Mobile fait de même.

[17] Pour éviter des problèmes de brevet, la prise en charge du format MP3 n'est pas construite directement dans Firefox Mobile (Android) mais repose sur la prise en charge via les composants matériels ou via le système d'exploitation.

[20] AAC est uniquement pris en charge dans le conteneur MP4. Pour éviter des problèmes de brevet, la prise en charge du format MPEG4 / AAC n'est pas construite directement dans Firefox Mobile (Android) mais repose sur la prise en charge via les composants matériels ou via le système d'exploitation.

[22][32] Opera Mini ne prend pas en charge les fichier vidéo ou audio, il délègue la lecture à l'appareil qui lit le fichier s'il prend en charge le format. Opera Mobile fait de même. AAC est uniquement pris en charge dans le conteneur MP4.

[26] (obsolète) : un article de Peter Gasston qui explique comment lire des vidéos H.264 avec le navigateur Android par défaut.

[28] Prise en charge partielle depuis 11.0. AAC est uniquement pris en charge dans le conteneur MP4.

[30] AAC est uniquement pris en charge dans le conteneur MP4. Un article de Peter Gasston explique comment lire des vidéos H.264 avec le navigateur Android par défaut.

[33] Pour éviter des problèmes de brevet, la prise en charge de MPEG 4, H.264 et MP3 n'est pas construite directement dans Firefox Mobile (Android) mais repose sur la prise en charge via les composants matériels ou via le système d'exploitation.

[34] Pour éviter des problèmes de brevet, la prise en charge de MPEG 4, H.264 et ACC n'est pas construite directement dans Firefox Mobile (Android) mais repose sur la prise en charge via les composants matériels ou via le système d'exploitation.

[35] Les codecs vidéo VP8/VP9sont uniquement disponibles en MSE lorsque les décodes matériels H.264 ne sont pas disponibles. Il est recommandé de tester la disponibilité des décodeurs grâce à la méthode MediaSource.isTypeSupported().

[36] À partir de Firefox 46, lorsqu'on tente de lancer un appel WebRTC via la méthode RTCPeerConnection.createOffer(), VP9 est utilisé par défaut. Auparavant, c'était VP8 qui était le format vidéo par défaut.

Voir aussi

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : SphinxKnight, Hell_Carlito, stof, SyBen, wakka27, tregagnon, Goofy, Blancdememoire
 Dernière mise à jour par : SphinxKnight,