Temps de lecture 11 min
Comme vous le savez, HTML5 est la cinquième version du langage utilisé pour concevoir les pages Web, qui propose enfin aux développeurs le moyen d’afficher directement et simplement les vidéos dans la page, de la même façon qu’il est déjà possible de le faire pour des images. C’est à dire de façon simple, ouverte et puissante, sans la contrainte de recourir à un plugin propriétaire comme Flash.
Mais la taille des vidéos doit être réduite pour pouvoir être diffusées sur Internet, et comme il a déjà été dit dans ces colonnes, HTML5 est muet quant au format à utiliser pour compresser ces vidéos (on parle aussi de codec). Aujourd’hui, deux codecs peuvent techniquement assumer ce rôle clé : Theora et H264 (en attendant une possible libération du codec VP8 racheté par Google). Mais alors que le premier est entièrement libre et utilisable sans aucune restriction, le deuxième est breveté et son usage est rigoureusement encadré et soumis à redevance.
On comprend alors que l’affrontement de ces deux codecs n’est que la traduction de l’affrontement de deux visions : tandis que Theora doit permettre de maintenir un Web ouvert où chacun serait libre de publier du contenu ou de créer des applications innovantes, H264 permettra à quelques entreprises privées de faire main basse sur le Web.
À côté de l’avènement de HTML5, un autre facteur est en train de rebattre les cartes : il s’agit du nombre grandissant d’appareils mobiles reliés à Internet[1].
Pour ces appareils mobiles, la question de la puissance processeur et de la consommation électrique se pose de manière nouvelle : ces appareils sacrifient souvent la première au profit de la seconde.
Ainsi, à l’inverse de ce qui se passe dans le monde des micro-ordinateurs de bureau, où l’architecture x86 développée par Intel domine, l’univers des appareils ultra mobiles est dominé par une architecture concurrente : ARM.
Les processeurs ARM (pour Advanced Risc Machine) sont des processeurs fabriqués sous licence par différentes sociétés de par le monde à partir des travaux de la société anglaise ARM. Cette société conçoit des processeurs consommant peu d’énergie qui se retrouvent ensuite dans la plupart des appareils mobiles : des sociétés comme Nokia, Google (Nexus One), HTC, Samsung, Apple (Iphone/iPad), Sony Ericsson, Palm (Plam Pre), Siemens, LG, ou encore Motorola l’utilisent dans leurs smartphones.
Dans la mesure où l’on retrouve souvent le codec H264 dans les vidéos en Flash et où le format H264 exige d’importantes ressources processeur pour être décodé, de nombreux appareils mobiles ont été optimisés pour aider au décodage du H264.
De fait, ce handicap initial est devenu paradoxalement un avantage pour le H264 : bien que Theora demande beaucoup moins de ressources pour être décodé et soit ainsi plus adapté aux appareils mobiles, certains lui opposent le fait qu’il ne bénéficie pas du même support matériel que le H264.
Heureusement la situation n’est pas figée et de nombreux développeurs sont à pied d’œuvre pour permettre à Theora de tirer parti de ces optimisations matérielles (en attendant que les fabricants implémentent eux-même leurs optimisations pour Theora).
C’est le cas notamment de Google qui investit dans le développement de theorARM, une version de Theora optimisée pour les processeurs ARM, comme l’explique Robin Watts sur le blog « des projets Open Source » de Google dans le billet traduit ci-après.
Avant de laisser la parole à Robin Watts, remarquons que, depuis que Theora est pressenti comme codec possible pour la vidéo sur le Web, celui-ci s’améliore de manière constante. Tous les défauts relevés à l’encontre de Theora sont en passe d’être corrigés grâce aux efforts conjugués de toute une communauté de développeurs talentueux regroupée derrière la fondation Xiph.Org (qui développe Theora) dont Red Hat, les fondations à but non lucratif Wikimédia et Mozilla, et à présent Google.
H264, de son côté, reste irrémédiablement entravé par son péché originel : celui d’être breveté jusqu’à l’os. Et les meilleurs développeurs du monde n’y pourront rien changer.
Bref, là où Theora promet le meilleur, à tous points de vue, H264 n’annonce que le pire.
Ça bouge du côté de la vidéo sur le Web
Interesting times for Video on the Web
Robin Watts – 9 avril 2010 – Google Open Source Blog (Traduction Framalang : Olivier Rosseler et Goofy)
Si je vous disais que Google a participé au financement d’une version du codec Theora optimisée pour les processeurs ARM, vous seriez nombreux à passer directement au billet suivant de ce blog. Personne ne se soucie des codecs audio ou vidéo, du moins tant qu’ils fonctionnent.
Demandez à la plupart des utilisateurs d’ordinateurs quel est leur codec favori et ils vous regarderont comme si vous aviez demandé leur moteur de machine à laver préféré. « On veut juste que ça marche ! » vous répondront-ils. C’est exactement la même chose pour ceux qui créent et publient du contenu sur le Web. À chaque fois qu’une vidéo est inaccessible au visiteur d’un site Web, c’est un message qui n’atteint pas sa cible. Peu importe la qualité du message et le temps passé à le peaufiner, ou les techniques virales employées pour attirer les visiteurs ; si la page Web n’affiche qu’un beau rectangle vide à l’endroit du contenu, tous ces efforts auront été vains.
Publiez la vidéo afin qu’elle soit lisible partout
L’idée est bonne, mais sa mise en pratique est loin d’être simple. Il n’existe aucun standard vidéo actuellement sur le Web. Certains sites utilisent la technologie Flash, restreignant ainsi leur auditoire aux utilisateurs disposant d’un lecteur Flash et excluant de fait la plupart des téléphones. Certains se servent de lecteurs Java intégrés, mais l’auditoire se limite alors au seul public disposant de machines suffisamment puissantes pour décoder l’audio et la vidéo dans une machine virtuelle, ce qui exclut tout ce qui est plus lent qu’un ordinateur portable. D’autres encore se reposent sur les lecteurs natifs à telle plateforme (comme Windows Media Player) et se coupent ainsi de toutes les autres plateformes. D’autres enfin ne proposent que le lien vers la vidéo et s’en remettent au lecteur vidéo que l’utilisateur a pu éventuellement installer.
On est bien loin du « ça marche, tout simplement », et aucune de ces solutions ne semble en prendre le chemin. Que ça vous plaise ou non, avec la multiplication des appareils connectés, ce Graal va être de plus en plus difficile à atteindre. À une époque, il suffisait de s’assurer que la vidéo était lisible sur PC et sur Mac. Maintenant il faut jongler entre Android, ChromeOS, iPhoneOS, Linux, Maemo, Symbian et plein d’autres systèmes encore. Et ce n’est pas tout, puisqu’il faut prendre en compte toute une gamme de processeurs de puissances différentes, depuis les ordinateurs de bureaux aux téléphones en passant par les ordinateurs portables, les netbooks et les PDA. Le problème est loin d’être résolu, bien au contraire.
Heureusement, HTML5 nous apporte de l’espoir. Cette nouvelle version d’HTML (le langage de base utilisé pour écrire les pages Web) introduit un élément video
.
Un standard existe maintenant pour que les gens spécifient dans le code de la page l’intégration d’une vidéo. À chaque navigateur, ensuite, d’implémenter la lecture des vidéos : soit qu’il lise lui-même la vidéo soit qu’il délègue cette tâche à un lecteur incorporé ou externe. Dans tous les cas, la décision appartient à l’utilisateur au lieu d’être imposée par le créateur du contenu. Le plus génial dans tout cela, c’est que cette fonction est déjà supportée : Firefox, Opera, Chrome et Safari prennent déjà en charge le HTML5 et les autres navigateurs suivront rapidement.
Alors, problème réglé ?
À vrai dire, non. Il existe désormais un langage commun pour publier des vidéos, c’est un bon début, mais la question du format n’est pas résolue. Là, il n’y a pas de « taille unique ». La vidéo est-elle visionnée sur un téléphone avec un petit écran, sur un netbook, sur un PC de bureau, ou sur un écran LED 3D de 150 pouces à la résolution quatre fois supérieure à celle de la TVHD ? La taille de l’écran, la connectique et la puissance de calcul jouent chacune un rôle ici. Un peu comme la transition de la VHS au DVD puis au BluRay pour les vidéos télévisées, la vidéo sur le Web va s’améliorer au fur et à mesure. Et c’est très bien ainsi : la technologie des serveurs Web permet d’adapter la vidéo au navigateur et à l’appareil utilisés.
En revanche, il nous faut assurément nous accorder sur un plus petit dénominateur commun, un format standard qui servira de format par défaut si tout le reste échoue. Ça ne doit pas nécessairement être le format le plus complexe, ou le plus marketé, ni même celui créé par l’union du plus grand nombre d’entreprises. Il doit simplement être disponible, partout. Le codec le plus adapté actuellement est Ogg Theora, dérivé du codec VP3 libéré par On2 il y a quelques années. Il se débrouille plutôt bien en termes de qualité et de compression, et il n’a pas à rougir face à ses rivaux plus populaires comme le MPEG4, tout en étant bien plus simple à décoder. Mais surtout, il se démarque de ses concurrents par le fait qu’il est libre. Vraiment libre. Pas seulement « libre d’utilisation dans les décodeurs » ou « libre d’utilisation si vous signez cet accord de licence compliqué », mais vraiment, honnêtement, authentiquement, 100 % libre. Les spécifications du flux et le code source de l’encodeur/décodeur sont accessibles publiquement et peuvent être librement utilisées/modifiées par n’importe qui. Theora a toujours été développé avec comme objectif premier d’éviter les brevets. Aucun autre codec que Theora ne peut se targuer de n’enfreindre aucun brevet et de n’être soumis à aucune redevance tout en tenant malgré tout la dragée haute à ses concurrents.
Alors, qu’est-ce qu’on attend ?
Décoder une vidéo demande beaucoup de ressources au processeur. Un important travail reste à accomplir avant de réaliser le rêve de lire une vidéo sur n’importe quel appareil. Theora est bien moins complexe que bon nombre de ses concurrents : les autres codecs nécessitent souvent du matériel dédié pour atteindre des performances décentes, alors que, bien programmé, Theora peut être décodé sans aide extérieure. En fait, sur les ordinateurs portables ou de bureau, le décodage à la volée est possible dans un lecteur Java intégré (comme par exemple l’excellent Cortado, lui aussi libre), ce qui permet la lecture de vidéos dans les navigateurs ne prenant pas encore en compte l’élément video
. Mais ça n’est pas envisageable pour les appareils comme les PDA, les téléphones, les netbooks, les tablettes ou les lecteurs portables. Ces engins reposent souvent sur des processeurs ARM qui sont bien moins énergivores que les processeurs qui équipent habituellement les micro-ordinateurs. Malgré les gains de puissance continus réalisés au cours de ces dernières années, ils ne rivalisent pas encore avec leurs cousins plus costauds pour ce qui est de la puissance pure. Cette gamme très importante d’appareils construits autour de processeurs ARM représente le dernier défi pour un décodage fluide de Theora. Tout progrès d’efficacité réalisé se traduit par davantage d’autonomie ou des écrans plus grands.
C’est là que l’aide financière de Google intervient. En subventionnant le développement de TheorARM (une version libre de Theora optimisée pour les processeurs ARM), ils nous aident à nous rapprocher du jour où la vidéo fonctionnera partout sur le Web, pour tout le monde. Ça serait plutôt pas mal, non ? Ça y est, maintenant vous pouvez passer au billet suivant du blog.
vvillenave
"vraiment, honnêtement, authentiquement, 100% libre"
-> rien que pour lire ça, ça valait vraiment le coup. (Et si Google s’était réveillé pendant les négociations au W3c, pourrait-on ajouter, le HTML5 n’en serait pas là où il en est. Mais bon, verre à moitié plein, toussa…)
Malaria
C’est très encourageant tout ça ! 🙂
Edouard
Ça fait plaisir, espérons que ca continue ainsi !
Merci le Framablog de nous tenir au courant 😉
Petit Scarabée
C’est très bien tout ça, mais la position de Google vis-à-vis de la balise <video> est difficile à déterminer. Ils ont pris position pour le H264 mais contribuent à l’amélioration de theora.
La réponse finale sera donnée par YouTube…
dorfr
Il y a plusieurs autres aspects à prendre en considération :
– Flash prend en compte plusieurs codecs dont le h264 mais pas le theora,
– La base installée de fichiers h264 est très largement supérieure au theora,
– Les caméras modernes filment ou peuvent filmer directement en h264.
– Il faudrait aussi que la taille d’un fichier theora soit plus petite que celle d’un fichier h264.
Rien que pour cela le h264 sera TRÈS difficile à déloger, même si ce n’est pas impossible et pas encore du niveau de MS Office dans un autre domaine.
Je ne suis pourtant pas certain que le poids de Google soit suffisant.
untel
C’est la première fois que je lis un article parlant de cet aspect du problème. Or, cela fait un bon bout de temps que je voulais réagir à ce propos…
On met toujours en avant le rapport qualité/taille de fichier du H264… mais on ne parle jamais de son rapport qualité/ressources consommée, qui à mon sens est tout bonnement exécrable…
Faites le test vous-même.
J’ai eu l’occasion de comparer des vidéos encodées en H264 avec des vidéos de taille identiques BIEN encodées avec Xvid (multi-passes itou).
Résultat: des tailles de fichiers pas si différentes que ça, des qualités quasi-identiques, et surtout: la vidéo en Xvid était fluide sur un P2 400 Mhz ( en 720*576 pixels ), alors que son équivalent en H264 nécessitait un P4 1,5 GHz…
Or plus de ressources, implique plus de consommation électrique…
Incontinentia Buttocks
"- Il faudrait aussi que la taille d’un fichier theora soit plus petite que celle d’un fichier h264."
La taille des fichiers devient moins importante, avec la croissance exponentielle des capacités de stockage. Je préfère qu’une vidéo pèse dix à vingt pour cent en plus mais que je puisse la lire sans problème avec mon intel atom. Je serais très surpris que je sois le seul dans ce cas.
Moi, ce qui m’embête, avec theora, c’est … le nom. C’est vachement moins vendable que "h264". S’ils renommaient theora en h364, même madame Dupont, concierge de son immeuble depuis soixante ans, n’aurait aucun mal à savoir quel codec choisir.
sylware
Ne pas oublier que le problème du H264 ne concerne que les pays où la barbaries des "brevets logiciels" s’applique. Comprendre, pas en Europe et surtout aux USA.
dorfr
Il ne faut pas regarder qu’à son niveau personnel, ce sont des Youtube et consorts qui doivent changer.
Et pour eux le problème de poids est plus important, les perfs chez le client final sont presque secondaires et il est toujours possible de sortir un truc du type "votre matériel est trop ancien / votre débit est trop faible".
C’est la mentalité même de l’économie de marché – toujours du neuf pour plus de perfs – qui doit évoluer. Ce n’est pas une mince affaire…
Karl
Je trouve le titre déplacé, parce que Google est très loin de défendre Theora:
* Google supporte H264 comme codec vidéo pour HTML5 à travers youtube et Google Chrome.
* Google a refusé Xiph cette année comme organisation mentor pour les GSoC.
* Google a refusé la proposition des développeurs de GStreamer d’offrir un support optionnel de GStreamer dans Chromium (et donc un support universel et correct de Theora dans celui-ci)
* Aucun téléphone sous Android ne décode matériellement le Theora, y compris celui de Google.
Bref, Google tente de se refaire une petite virginité auprès des libristes en supportant *une* implémentation spécifique de Theora soit TheorARM alors que par ailleurs, ils ont refusé à Xiph d’améliorer le codec en lui même via un GSoC.
Le soutien apporté à TheorARM vise principalement à améliorer le support de Theora dans Android que de l’aider à devenir le codec standard de HTML5, ça n’a aucun rapport !
Kurtnoise
L’ h.264 n’est pas un codec mais une norme…Dans ce standard, on retrouve plusieurs codecs : du très bon comme tu très mauvais, du gratuit, du payant. Bref, de quoi satisfaire le plus grand nombre.
André Cotte
Content de te retrouver sur Framablog. Un bon billet qui remet les pendules à l’heure. On me rebat les oreilles avec le H264, j’en avais marre. J’aurai de nouveaux arguments.