Vidéo HTML5

Open Video est un élément introduit dans le langage informatique HTML5 dédié aux pages web, qui permet une meilleure incorporation des vidéos dans l'Internet par ses navigateurs. Les créateurs de l'élément ont l'intention d'en faire la nouvelle norme pour la lecture de vidéos en ligne, mais l'absence d'accord en ce qui concerne les formats de vidéos supportés a gêné son essor.[réf. nécessaire]

Exemples d'élément <video>

Le fragment de code suivant placera une vidéo WebM dans une page internet.

<video src="film.webm" poster="film.jpg" controls>
	Ceci est du contenu de rechange à afficher si le
	navigateur ne supporte pas l'élément video.
</video>

Sources multiples

Grâce à un nombre illimité d'éléments <source>, voir ci-dessous, le navigateur choisira automatiquement le fichier à télécharger. Autrement, la fonction de JavaScript canPlay() le fera. L'attribut "type" précise le type MIME et peut-être une liste de codecs, qui aide le navigateur à déterminer s'il est capable de déchiffrer le fichier. Même dans le cas d'un choix unique, de tels indices pourraient être nécessaires à un navigateur hypothétique examinant son ossature multimédiatique pour les codecs de tiers. À cause du manque de format commun, cette fonctionnalité de sources multiples s'impose pour éviter la détermination par le navigateur, ce qui est source d'erreurs. Vu que la connaissance de tout développeur sera inévitablement incomplète, c'est le navigateur en question qui décide.

<video poster="film.jpg" controls>
	<source src='film.webm' type='video/webm; codecs="vp8.0, vorbis"'/>
	<source src='film.ogv' type='video/ogg; codecs="theora, vorbis"'/>
	<source src='film.mp4' type='video/mp4; codecs="avc1.4D401E, mp4a.40.2"'/>
	<p>Ceci est du contenu de rechange</p>
</video>

Formats de vidéo soutenus

Les spécifications avant-projet actuelles[Quand ?] de HTML5 ne précisent pas les formats de vidéo que les navigateurs doivent soutenir. Les agents utilisateurs (user agents) sont libres de soutenir tout format de vidéo qu'ils estiment approprié, mais les auteurs de contenu ne peuvent pas supposer que toute vidéo sera à portée de tous les agents utilisateurs, puisque ceux-ci n'ont pas un minimum de formats vidéo à respecter.

Le débat de format par défaut

Le groupe de travail de HTML5 estime préférable de préciser au moins un format de vidéo que les navigateurs soutiendront. Le format idéal:

  • aurait une compression de données puissante, une bonne qualité d'images et une utilisation de processeur minimale pour le déchiffrement
  • serait exonéré de droits d'auteur
  • en plus des déchiffreurs de logiciel, un déchiffreur de matériel vidéo s'impose pour le format, car de nombreux processeurs embarqués ont insuffisamment de puissance pour déchiffrer les vidéos

Au début, Ogg Theora était la norme conseillée de HTML5, n'étant pas affectée par un brevet. Or, le , on mit à jour la stipulation HTML5, remplaçant la référence aux formats concrets par un passe-partout.

Bien que Theora ne soit pas affecté par un brevet connu, des entreprises comme Apple et (selon certains) Nokia s'inquiètent de la présence de brevets inconnus qui auraient un effet sur le navigateur, dont les propriétaires attendent son emploi par une société de poids considérable avant de la poursuivre en justice. Des formats tels que H.264 pourraient, en principe, être soumis à des brevets inconnus, mais leur emploi d'envergure suggère que les titulaires potentiels se seraient déclarés. Apple s'est également opposé à l'exigence que Ogg soit soutenu par la norme HTML (même comme une préférence) en raison du fait que certains appareils pourraient soutenir d'autres formats plus facilement, et que HTML n'a jamais exigé de formats.

Certains développeurs ont critiqué le retrait des formats Ogg de la stipulation. Une discussion complémentaire avait eu lieu au moyen d'une foire aux questions au W3C.

H.264/MPEG-4 AVC s'utilise à grande échelle, et est muni d'une bonne vitesse, compression et qualité de vidéo. Il déchiffre bien les matériels mais est sujet aux brevets. Sauf dans des cas spéciaux, les utilisateurs de H.264 doivent payer un accord de licence à MPEG LA, un groupe de titulaires de brevet qui comprend Microsoft et Apple. En conséquence, il n'est pas considéré comme un codec.

En , le WHATWG (collaboration non officielle de développeurs de navigateurs) conclurent qu'aucun format ne satisferait aux besoins précisés.

L'achat d'On2 par Google

L'acquisition par Google d'On2 en 2010 entraîna l'acquisition du format vidéo VP8. Google a offert une licence exempte de redevances. Il a également mis en route WebM, qui allie le codec vidéo VP8 (non-normalisé mais à code source libre) avec audio Vorbis dans un conteneur Matroska. La Free Software Foundation a accueilli l'ouverture de VP8.

Lors de la révélation de Google en qu'il mettrait fin au support natif de H.264 pour Chrome, les critiques furent nombreuses et diverses, Peter Bright d'Ars Technica et l'évangéliste internautique Tim Sneath comparèrent la décision de Google à la déclaration de faire de l'espéranto, la langue officielle des États-Unis. Cependant, Haavard Moen d'Open Software attaqua vivement l'article d'Ars Technica, et Google rétorqua en clarifiant son intention de faire avancer l'insertion de WebM dans ses produits grâce aux franchises.

Après le lancement de WebM, Mozilla et Opera ont exigé l'inclusion de VP8 dans HTML.

Support navigateur

Le tableau montre les formats de vidéo que les agents utilisateurs supportent probablement. La plupart de navigateurs ci-dessous emploient un framework multimédia pour le déchiffrage et la projection des vidéos, au lieu d'incorporer de tels éléments de logiciel. En règle générale on ne peut pas déterminer les formats supportés par le framework multimédia sans la mettre à la recherche, puisqu'ils dépendent du système d'exploitation et les codecs de tiers. Dans de tels cas, le support du format vidéo est un attribut de l'ossature, non du navigateur (ou son moteur de rendu), en supposant que le navigateur recherche correctement son ossature multimédia avant de rejeter les formats inconnus. Dans quelques cas, le support cité est plutôt une extension du navigateur, qui pourrait, par exemple, contourner son analyse HTML habituelle de la balise <video> pour embarquer un lecteur de vidéo à base d'extensions ou greffons.

Les valeurs indiquent le niveau de support dans la dernière version du moteur de rendu, ou (si numéro de version) dans la version précisée. Les numéros de versions sans aucune autre valeur indiquent la version à partir de laquelle le moteur commençait son support total de la fonctionnalité.

Navigateur Dernière parution de version stable Formats supportés par les navigateurs
Ogg Theora H.264 VP8 (WebM)
Internet Explorer 11 installation manuelle[1] 9.0 installation manuelle[2]
Mozilla Firefox 92[3] depuis 3.5 depuis 35 depuis 4.0
Google Chrome 93[4] depuis 3.0 depuis 3.0 depuis 6.0
Chromium r918952 depuis r18297 Non depuis r47759
Android browser 92 Non 4.4 2.3
Safari 14.1.2[5] installation manuelle[6] 3.2 depuis 12.1[7]
Opera 78 depuis 10.50 depuis 24 10.60
Konqueror 21.8.1 4.4 Non Oui[8]
GNOME Web 40.3 2.28 Non Oui[9]

Utilisation

Depuis , à la suite du lancement de l'iPad Apple, un nombre de sites importants se sont mis à utiliser les vidéos H.264 HTML5 au lieu de Flash pour les agents utilisateurs s'identifiant comme iPad.

Depuis , les vidéos HTML5 ne sont pas actuellement aussi étendues que celles de Flash, mais de récents déploiements de lecteurs de vidéo expérimentaux à base de HTML5 de DailyMotion (utilisation des formats Ogg Theora et Vorbis), YouTube (utilisation des formats H.264 et WebM) et Vimeo (utilisation du format H.264) suggèrent que l'intérêt pour HTML5 est en hausse.

Certains sites d'hébergement de vidéos ont annoncé qu'ils continueraient de se servir de technologies autres que la vidéo HTML5. Selon une discussion sur YouTube en , la balise <video> ‹‹ne satisfait pas aux besoins d'une site comme YouTube››. Les raisons principales seraient la manque de format de norme, l'absence d'un moyen efficace et fiable de porter le contenu au navigateur, l'incapacité de JavaScript de projeter en plein écran, et des questions de droits numériques. Hulu, lui aussi, n'a pas adopté HTML5 à cause de son incapacité de fournir des vidéos adaptées au débit, de protéger le contenu du producteur et de fournir des données aux annonceurs. Netflix déclara que beaucoup de questions l'empêche d'employer la vidéo HTML5: acceptabilité de formats de conteneur audiovisuel, acceptabilité de codecs audio et vidéo, protocole de diffusion en flux, la façon pour le protocole de flux de s'adapter au débit disponible, le moyen de transmettre les renseignements des flux disponibles et d'autres paramètres au module de flux; un moyen de supporter le contenu protégé, et un moyen de transmettre toutes ces fonctionnalités à HTML5.

Le , le projet Chromium de Google annonça par leur journal en ligne qu'il enlèverait le support des codecs fermés (surtout H.264) des versions de Chrome à venir. Cette déclaration mentionna en particulier que ce retrait constituait une démarche afin d'augmenter l'utilisation de HTML5 sans licence et la balise <video>, incitant une adoption universelle des codecs à source libre de VP8 et Theora. Le , Microsoft déploya l'extension HTML5 du Lecteur Windows Media pour Chrome, qui ajouta la capacité d'utiliser le lecteur H.264 (sous licence et faisant partie du paquet Windows) pour relire le contenu H.264 avec Chrome.

Un nombre de lecteurs de vidéo HTML5 avancés et des solutions à plus grande échelle ont fait leur apparition. Le lecteur SublimeVideo était le premier à démontrer qu'un lecteur personnalisé pourrait fournir une projection meilleure que celle du lecteur originel du navigateur, y compris un seul lecteur pour tous les appareils, recours au Flash pour les appareils incompatibles et une véritable capacité de plein écran. D'autres choix estimés comprennent JW Player, Video JS et MediaElement.js.

Le dilemme de Mozilla

Premier éditeur à fournir un navigateur stable intégrant la balise vidéo (la version 3.5 est sortie en [10]), Mozilla a toujours cherché à défendre un format vidéo ouvert, débarrassé de brevets[11],[12]. Après le rachat d'On2 par Google et l'acquisition du codec VP8, Mozilla espérait avec WebM, avoir un codec ouvert, réunissant des acteurs de poids, capable de contrebalancer H.264[13]. Surtout après l'annonce de Google, en , d'enlever H.264 de son navigateur Google Chrome[14] et celle d'Abobe en d'intégrer le codec VP8 dans Flash [15]. La position de Google prenait d'autant plus de sens, que sa place dans les mobiles via Android, augmentait (Android 2.3 peut lire WebM [16]). Les fabricants de cartes graphiques permettant de décoder matériellement le VP8[17],[18],[19]. Enfin, YouTube, leader dans le partage de vidéo, propose des vidéos avec les 2 formats (H.264 et WebM)[20].

Malheureusement, Android n'utilise toujours pas les possibilités des puces graphique de décoder matériellement le VP8[21]. Chrome lit toujours le H.264 en plus du WebM. Adobe n'a pas intégré le VP8. Enfin Google a racheté Motorola en , cette firme possédant des brevets sur le H264[23].

La volonté de Mozilla de prendre une place dans les mobiles achoppe sur la forte présence des codecs propriétaires mp3 et H.264 sur ces appareils où ils bénéficient de l'accélération matérielle et procurent ainsi une meilleure autonomie et une plus grande fluidité. Mozilla prend alors la décision d'incorporer ces codecs si le système le propose [24],[25]. Cela commencera d'abord sur le mobile avec la version 17[26]. À terme, Windows Seven (et supérieur), Mac OS X[27] et les plates-formes GNU/Linux (via Gstreamer[28]) possédant ces codecs pourraient profiter de ce changement de politique.

Un changement reste possible avec le WebRTC où un codec audio ouvert a pu émerger: Opus. Un codec vidéo doit aussi être choisi et Mozilla et Google souhaite s'appuyer sur le VP8/WebM[29]

Codec

Le principal codec utilisé est le format WebM, mais certains navigateurs supportent également Ogg Theora ou H.264.[réf. nécessaire]

Le codec est implémenté en natif dans le navigateur et ne nécessite dès lors plus aucune extension à ajouter au navigateur pour lire le contenu vidéo, tel que c'était le cas pour les formats vidéo existants jusqu'alors (comme Adobe Flash).

Références

  1. https://www.xiph.org/dshow/
  2. https://tools.google.com/dlpage/webmmf
  3. (en-US) « Firefox 92.0, See All New Features, Updates and Fixes », sur Mozilla, (consulté le )
  4. (en) « Stable Channel Update for Desktop », sur Chrome Releases, (consulté le )
  5. (en) « About the security content of Safari 14.1.2 », sur Apple Support, (consulté le )
  6. https://www.xiph.org/quicktime/
  7. https://code.google.com/p/webm/downloads/list
  8. webm troubleshooting for Konqueror, Xiph.org (lire en ligne)
  9. YouTube and WebM support, Fedora Project (lire en ligne)
  10. (en) « Firefox 3.5 for developers », sur MDN Web Docs (consulté le ).
  11. « Vidéo dans le navigateur : Theora ou H.264 ? », sur Standblog, Tristan Nitot (consulté le ).
  12. « HTML5  : ce codec H.264 qui alarme Mozilla », sur 01net, 01net (consulté le ).
  13. http://www.pcworld.fr/internet/actualites,webm-mozilla-opera-google-apple-microsoft,492881,1.htm
  14. http://www.presence-pc.com/actualite/Chrome-H.264-42119/
  15. http://news.cnet.com/8301-30685_3-20061315-264.html
  16. https://developer.android.com/about/versions/android-2.3-highlights.html#PlatformTechnologies%7CIntegrated support for the VP8 open video compression format and the WebM open container format
  17. « Next INpact - Actualités informatique et numérique au quotidien », sur Next INpact (consulté le ).
  18. (en) « NVIDIA Embedded Systems for Next-Gen Autonomous Machines », sur NVIDIA (consulté le ).
  19. http://www.webmproject.org/hardware/
  20. « YouTube : les nouvelles vidéos désormais au format WebM », sur ZDNet France (consulté le ).
  21. https://groups.google.com/forum/?fromgroups#!msg/mozilla.dev.platform/-xTei5rYThU/LXYJ8SkUpVMJ
  22. « Microsoft demande à Google « de ne pas tuer la vidéo sur le Web » », sur BFM-business/BFM.tv, (consulté le ).
  23. (en) « Video, Mobile, and the Open Web – Mozilla Hacks - the Web developer blog », sur Mozilla Hacks – the Web developer blog (consulté le ).
  24. https://groups.google.com/forum/?fromgroups#!topic/mozilla.dev.platform/-xTei5rYThU
  25. https://www.mozilla.org/en-US/mobile/17.0/releasenotes/
  26. (en) « 799318 - [meta] Support H.264/AAC/MP3 video/audio playback on desktop Firefox », sur mozilla.org (consulté le ).
  27. (en) « 794282 - Enable GStreamer in official builds », sur mozilla.org (consulté le ).
  28. http://www.webrtc.org/blog/webrtcimprovementbetterrealtimevp8andnewrtpprofileadopted