QuickTime X : tabula rasa

Arnaud de la Grandière |
Un lourd héritage

Il y a près de 18 ans, le 2 décembre 1991, Apple dévoilait au monde QuickTime, le premier logiciel dédié à la vidéo numérique faisant abstraction des capacités matérielles. Les utilisations modernes de la vidéo, de la Télévision Numérique Terrestre jusqu'au Blu-Ray en passant par les caméscopes numériques ou encore les set-top box, doivent beaucoup à QuickTime.

À l'époque, on était bien loin des standards actuels, mais la simple vignette en 160x120 et 3 images par seconde (!) visible ci-dessous, présentant le décollage d'Apollo 11 à titre d'exemple de ce que pouvait faire QuickTime, a laissé nombre d'utilisateurs de l'époque béats d'admiration, dont certains sont encore en vie aujourd'hui ;¬)

Il faut remettre les choses dans leur contexte : en 1991, le Mac le plus puissant que vous pouviez avoir ronronnait à quelque 25 MHz… Ce que QuickTime apporta de fondamentalement nouveau à l'époque tenait essentiellement à deux technologies qui le composaient : la capacité de synchroniser plusieurs pistes de média (en cas de surcharge, QuickTime affiche moins d'images pour rester synchrone avec la bande son), et un système de métafichiers, permettant d'intégrer une couche d'abstraction quant au contenu en lui-même. Ainsi, QuickTime pouvait gérer tous types de médias (au-delà des seules images et du son), les afficher de manière synchrone, et s'ouvrir sur des codecs additionnels.



Mais QuickTime fut avant tout la technologie décisive qui donna naissance au multimédia, suivie par l'apparition des premiers lecteurs de CD-Rom (au faramineux taux de transfert de 150 Ko par seconde pour un stockage de 650 Mo). Au fil des ans, QuickTime se verra adjoindre de nouveaux codecs, dont certains tiendraient le haut de l'affiche, comme le Cinepak, Sorenson, et enfin H.264, mais également de nouvelles fonctions, comme les sprites interactifs, le texte synchronisé, le chapitrage, le streaming, et bien d'autres. En outre, QuickTime fut même la première application qu'Apple a porté sur Windows. À mesure de l'augmentation de puissance des machines, les vidéos prenaient de l'ampleur en affichage pour aboutir jusqu'à la haute définition, et les codecs se faisaient également plus efficaces dans leur rapport compression/qualité d'image.

Bref, au cours de sa longue vie, QuickTime est devenu un gigantesque fourre-tout, qu'il était impensable d'intégrer tel quel dans l'iPhone et l'iPod touch. Apple a donc revu sa copie pour fournir à ses appareils de poche un framework compact et efficace, qui ne gérait plus que les codecs les plus modernes.

Un chantier considérable

Lorsqu'Apple a engagé les travaux sur Snow Leopard, il a fallu faire face à un problème de taille : le passage au 64 bits impliquait la réécriture complète de QuickTime… ce qui n'est pas une mince affaire eu égard aux quelque 18 ans d'héritage du logiciel. Il n'était pas question d'envisager d'avoir la totalité des fonctions de QuickTime 7 d'un seul coup. Apple a donc utilisé une astuce dont elle a le secret, étant passée maître dans les transitions technologiques et le maintien de la compatibilité ascendante.

Mais commençons par faire le détail de ce qui compose QuickTime. Il y a d'un côté le framework et son jeu d'API, qui permettent à toutes les applications sur Mac d'exploiter les fonctionnalités de QuickTime, et de l'autre QuickTime Player, qui n'est qu'une interface graphique permettant d'accéder à ces mêmes fonctions. Là où les choses se compliquent sur Mac OS X 10.6, c'est qu'il y a désormais deux frameworks et deux players.

En effet, QuickTime X (le framework) est réduit à sa plus simple expression : il gère la lecture et l'acquisition vidéo, de même que l'exportation, mais seulement avec les codecs "modernes" (peu ou prou ceux supportés par l'iPod, l'iPhone et l'Apple TV), de même que l'accélération matérielle pour la lecture et l'encodage sur certaines cartes graphiques. En revanche, il ne gère pas l'édition vidéo, ni les codecs externes sous forme de plug-ins. Ainsi, le copier-coller, l'extraction de pistes, et les autres codecs sont pris en charge par QuickTime 7 (le framework) qui est également installé par défaut dans Snow Leopard. Les deux cohabitent harmonieusement à l'aide d'une gare de triage, QTKit, qui invoquera l'un ou l'autre des deux frameworks en fonction des tâches effectuées par l'utilisateur. L'approche permet ainsi de faire cohabiter le code 32 et 64 bits, alors que Mac OS X ne peut d'ordinaire pas mélanger des tâches de ces deux types. On peut d'ailleurs aisément voir QTKit à l'œuvre, il suffit pour cela d'ouvrir un fichier non supporté par QuickTime X (mettons par exemple la vidéo ci-dessus) et de regarder dans le Moniteur d'activité :



QuickTime X apporte cependant une subtilité qui était jusque là absente de QuickTime 7. Jusqu'ici, QuickTime ne s'adressait qu'à sa propre structure de données, appelée Movie Object, dans laquelle étaient stockées toutes les informations nécessaires à la lecture et à l'édition du fichier. Or lorsqu'on demandait à QuickTime de lire des formats qui ne lui sont pas natifs, tels que le MP3, le framework devait reconstituer cette table d'information en disséquant tout le contenu du fichier. Lors de cette opération, on pouvait voir dans le lecteur une barre de progression à mesure que le fichier était analysé (la partie restante était indiquée en pointillés comme ci dessous).



Tant que l'analyse n'était pas terminée, il était impossible de lire le fichier au-delà de ce point, même si on n'avait aucune intention d'éditer le fichier. Cette limitation n'a plus cours avec QuickTime X, puisqu'on peut désormais donner un contexte au framework : si la seule intention de l'utilisateur est de lire le fichier le plus vite possible et non de l'éditer, il fera l'impasse sur cette analyse (une séparation qu'on retrouve dans le nouveau QuickTime Player, dont le mode édition n'est plus activé par défaut, mais qu'il faut demander spécifiquement). Cette fonction fait partie des nombreuses optimisations qui rendent QuickTime X plus véloce que son prédécesseur. Il bénéficie également des améliorations de Snow Leopard, comme Grand Central Dispatch, et une plus grande sécurité. En outre, QuickTime X inclut le support de ColorSync pour la vidéo, un autre avantage que les professionnels apprécieront particulièrement.

Il faudra également qu'Apple mette à profit son nouveau code pour la version Windows : pour l'heure, QuickTime est incapable de fonctionner dans les applications 64 bits sur le système de Microsoft.

Bref, la transition vers le 64 bits pour QuickTime prendra quelque temps, et plusieurs mises à jour de Mac OS X, et si QuickTime X est encore incomplet, en aucun cas il n'était question pour Apple qu'il en soit autrement à la sortie de Snow Leopard. Il est possible qu'Apple en profite d'ailleurs pour faire l'impasse sur certaines fonctionnalités qui ont quelque peu vieilli, comme par exemple QuickTime VR. Une chose est sûre, Apple n'est pas moins impatiente que ses utilisateurs d'aboutir le chantier : il le faudra pour que sa suite professionnelle d'édition vidéo bénéficie du 64 bits.

QuickTime Player manque le coche

Venons-en maintenant à QuickTime Player : là aussi, la nouvelle version du lecteur multimédia est amputée de nombre de fonctions de son prédécesseur. Disparus, l'extraction de pistes, le copier-coller, l'ajout de pistes (mis à l'échelle ou non), la fenêtre de propriétés qui permettait d'éditer les pistes et d'en modifier l'apparence, celle des contrôles A/V, la gestion des fichiers QuickTime VR, etc… En lieu et place, on a un lecteur qui, s'il se voit gratifié d'une nouvelle interface, est cependant assez fruste du côté des fonctionnalités, à tel point que l'ancienne version du lecteur est proposée comme installation optionnelle avec Snow Leopard, ce qui en dit long. L'initiative rappelle d'ailleurs ce qu'Apple avait fait avec iMovie lorsqu'elle a sorti une version refaite de fond en comble en 2008, mais à laquelle manquaient encore nombre de fonctionnalités : l'ancienne version d'iMovie était proposée conjointement.

Pourtant, QuickTime Player peut exploiter indifféremment les fonctionnalités de chaque framework, qu'il s'agisse de QuickTime X ou de QuickTime 7, on le voit d'ailleurs dans la fonction d'élagage qui utilise QuickTime 7, ou tout bêtement dans la lecture de vidéos exploitant d'anciens codecs. Techniquement, rien n'empêchait donc Apple de fournir une version plus complète de son nouveau lecteur. Partant de là, deux hypothèses se présentent : soit Apple n'a pas eu le temps de mener ce projet à bout pour la sortie de Snow Leopard, soit elle a préféré tout simplement attendre que les fonctionnalités qui correspondent à ces manques soient intégrées dans le framework QuickTime X afin de proposer une interface qui s'y prête le mieux possible, sans avoir à repenser les choses.

Toujours est-il que QuickTime a perdu quelques plumes dans sa nouvelle version, et qu'il peut être difficile de le voir comme une avancée. Mais comme souvent avec Apple, et particulièrement Snow Leopard, il s'agit d'un investissement pour l'avenir, qui donnera sa pleine mesure au fil du temps.
avatar Macleone | 
[quote]En fait, tu es de ceux qui aurait aimé que QT X apparaisse d'un coup complet par magie dans Mac OS X.8 ?[/quote] Non, j'aurais aimé que les outils soient près au moment ou on en a besoin, comme la transition vers Intel. Au moment du passage sur Intel, Apple n'a pas sortie la moitié des bibliothèques en gardant un silence pesant quant à l'avenir des autres bibliothèques et en disant, "pour le moment, vous pouvez déjà essayer de bricoler une solution avec ce qu'on vous donne ou rester au PPC et utiliser rosetta…" [quote]Grand Central et les autres technologies sont des bases et il faut du temps pour refaire les couches plus hautes qui en tirent partie.[/quote] Oui bin justement. Empêcher les developpeurs qui utilisent l'API QuickTime d'entamer une transition en douceur vers ces technologie n'est pas la meilleurs chose qu'ils aient fait.
avatar Anonyme (non vérifié) | 
- oups, envoi incontrôlé !
avatar Anonyme (non vérifié) | 
Un réaction d'un "Ancien" : - J'ai participé au développement d'une application de diffusion et vente via Numéris de séquences vidéo en 1991 sous Quicktime 0.9b ; - Les séquences numérisées étaient des extraits de vidéo broadcast, pouvant être envoyées aux clients sous forme de cassettes BetaCam ; - Ces séquences étaient en format 200 x 150 à 15 images / seconde (un peu plus, me semble-t-il que les 160 x 120 à 3 i/s de l'article d'Arnaud), encodées au format AppleVideo ; - Pour limiter la durée des téléchargements via Numéris, la taille des fichiers était bordé à 2 Mo, ce qui faisait des clips d'environ 2 minutes ; - La compression était image par image (plus lent, mais de bien meilleure qualité), à la vitesse d'environ 1 image par seconde (soit environ 2 heures par séquences), sur des Mac II vx à 32 MHz ; - Les Macs les utilisant étaient des IIsi ou IIci, à 20 MHz ou 25 MHz ; - Les CD-ROM existaient avant QuickTime, j'ai entre les mains "The May 1991 Golden Master Release : System 7", et ce n'est pas le plus vieux ; - Mes employeurs n'étaient pas trop "Pro-Mac", ils ont cherché les solutions possibles sur PC, Atari ou Amiga, et même en créant des solutions matérielles (ce que nous faisions pour les autres applications, comme des cartes de numérisation ou de visualisation Broadcast), seul le Mac pouvait répondre au besoins en performance vidéo / taille fichier à transférer à 120 kb/s ; - Si certains se le rappellent, j'ai fait une conférence sur cette solution à la conférence APPLE 1992 des développeurs à Deauville. Moi, ce qui m'étonne, ce serait plutôt de constater le peu d'avancements de QuickTime par rapport à la richesse des possibilités initiales. Par exemple, j'ai un jeu de Memory fait en QuickTime, d'une toute petite taille, qui montrait que l'on pouvait aussi avoir une piste de programmation Live, sans parler de QuickTime VR !
avatar Atlantique | 
C'est ça un article?
avatar Un Vrai Type | 
@ Macleone: Allo mars ? On est à la 1ère étape... Tu voudrais une API complète ? Oki, mais pas avant X.8. Tu râles en même temps sur le silence pesant et le fait qu'ils partagent ce qu'ils commencent à faire ... Logique... Tu voulais quoi pour le X86 ? Qu'Apple publie les API avant de dévoiler le passage à Intel ? (On a eu quand même un bout de temps avec les pentium4 pour développer...) Bref, je ne comprends pas ce que tu reproches, qu'on puisse profiter de QT X maintenant pour l'affichage ou bien que QT7 fonctionne encore ?
avatar Vivid (non vérifié) | 
en 1991 comme en 2009 QT reste une daube, VLC leur bote le cul...menu menu!!!
avatar Macleone | 
[quote]Tu voudrais une API complète ? Oki, mais pas avant X.8.[/quote] OK, excuse moi je n'avais pas compris que tu avais accès aux roadmaps Apple. La prochaine fois je te demanderai directement au lieu d'aller sur les Forum officiels Apple. Jusqu'à preuve du contraire le QTKit n'est pas nouveau dans Snow Leopard. Il date de Tiger (et il était même dispo sur Panther). En 5 ans Apple n'a pas été capable d'en faire un API complète malgré les demandes répétés des developpeurs. J'ai donc de sérieux doute pour l'avenir de QuickTime. S'ils veulent en faire un simple player, tant mieux, mais qu'ils le disent. [quote]Tu voulais quoi pour le X86 ? Qu'Apple publie les API avant de dévoiler le passage à Intel ? (On a eu quand même un bout de temps avec les pentium4 pour développer...)[/quote] Relis mon message, je ne me plains pas du passage à Intel, et je le prends justement en exemple de ce qu'ils auraient du faire avec QuickTime.
avatar DrFatalis | 
@ un vrai... "Rien n'a été promis" Tiens donc. Apple n'a donc jamais communiqué sur les bénéfices mirifiques amenés par SL? La page de présentation sur son site ne commence t'elle pas par "plus rapide" ? J'ai du rêver. Il fallait lire "plus rapide" (plus tard). " et QT 7 fonctionne parfaitement." Encore heureux. Mais tu as raison: faire tout un battage (mais j'ai tévè) sur SL et devoir livrer avec l'ancienne version de quicktime pour avoir quelque chose de complet et d'utilisable dans l'ensemble, c'est une stratégie de winners dont la cohérence apparaît pleinement aux yeux du janissaire pommé que tu es, mais qui reste obscur pour un pauvre vermisseau de la pomme comme moi... "Quand à Slow, c'est juste un troll, mais on est habitué à ton opinion qui fait office de vérité dans ton monde isolé et débile..." Tiens, j'ai affaire à un poète scandinave. Tu aurais pu rajouter "méchant" à la liste de mes qualités. Quant aux monde isolé, il me semble plutôt être celui de ceux qui vivent en permanence sous perfusion Cupertinienne, de ceux qui vouaient Intel aux feux de l'enfer le 4 juin 2005 et lui tressait des lauriers le 7... Va donc, vrai type, je ne te hais point, je fus, autrefois, si semblable à ce que tu es....
avatar BeePotato | 
@ Un Vrai Type : Tu sembles vraiment ne pas comprendre le problème. « Tu voudrais une API complète ? Oki, mais pas avant X.8. » Comment peux-tu écrire ça tout en affirmant qu’il n’y a pas de retard au niveau du développement de QuickTime ? On ne peut pas développer un programme en 64 bits basé sur QuickTime en utilisant une autre API que celle de QTKit. Mais non ne peut pas développer un programme complexe (plus qu’un simple lecteur, quoi) basé sur QuickTime en utilisant QTKit, qui est bien trop incomplet pour ça. Conclusion : on ne peut pas développer de programmes QuickTime complexes en 64 bits à l’heure actuelle. Et de nos jours, avoir une technologie qui ne permet pas le développement en 64 bits, oui, ça s’appelle être sérieusement en retard. Je ne vois pas en quoi tu trouves normal de se dire que cette situation durera au moins jusqu’à la sortie de la version 10.7 de Mac OS.
avatar Lemmings | 
Nonoche : quand je parle de M-JPEG on est loin des anim en RLE... Mais bon ;)
avatar Arnaud de la Grandière | 
@ Lemmings : sachant que le M-JPEG est basé sur le JPEG et que ce dernier n'est venu au monde qu'en 1992… pwned ;¬p
avatar Seb du 95 | 
@ Nonoche Le MPEG 1 est plus ancien, 1988 d'après wikipédia. Et de mémoire, il y avait des vidéos en MPEG avant 92.
avatar Jean-Jacques Cortes | 
J'ai encore par là, la disquette officielle de QuickTime 1.0 récupérée à l'Apple Expo 1992. Je n'avais pas encore les moyens de m'acheter un Mac, bien que j'en mourais d'envie depuis 1984, mais je me suis dit qu'un truc pareil serait obligatoirement payant à très court terme. Deouis, QuickTime est dans l'ensemble, toujours gratuit, et je viens de récupérer un Macintosh 128 de 1984 en parfait état, pour mon musée privé.

Pages

CONNEXION UTILISATEUR