Articles

Divers

Interview de Christophe Massiot de VLC

Par Mathieu Godart - Publié le

De l'utilisation de VLC sur Mac



Interview de Christophe Massiot de VLC
Les étudiants connaissent bien le phénomène DivX, le format de compression des videos. Souvent qualifié du mp3 de la video, le format DivX permet par exemple de passer un fichier MPEG 2 de 4 Go à 600 Mo en conservant une qualité acceptable.

Ce format est très utilisé dans le monde PC depuis plusieurs années et commence enfin à être exploitable sur nos chers Macs. Apple n'a volontairement pas implanté de codec dans QuickTime pour lire les videos au format DivX car ce format reste très fortement lié au piratage. De nombreuses solutions ont vu le jour pour lire les videos DivX, notamment des plugins pour Quicktime qui apportait le support du DivX. Hélas, il existe un bug dans QuickTime : la piste son et la piste vidéo d'un DivX se désynchronisent. Il est donc nécessaire de la resynchroniser (tâche longue) à l'aide d'un utilitaire.

VLC est devenu très populaire sur Mac car il permet de lire directement les DivX : il intègre un décodeur (ffmpeg) et un lecteur propre (qui évite le bug de synchronisation de QuickTime).

Notre rencontre avec Christophe



Mac4Ever : Quelle est votre histoire avec la Pomme ?



Par mon père qui utilisait de Macs. J'ai eu mon premier Mac en 1988. C'était un Mac Plus avec système 5 et 20 Mo de disque dur. Je me souviens encore du "boucan" qu'il faisait (rire). J'ai commencé la programmation ssous HyperCard ou je bidouillais en utilisant les externes de Frédéric Rinaldi. Ensuite j'ai eu un clasic couleur. L'écran était un peu petit mais c'était une machine sympa.

En 1997, lors de mon arrivée à Centrale Paris, Je me suis acheté un PowerMac 7300 sur lequel j'avais installé Linux. Cela m'avait permis de me familiariser avec les outils de programmation (gcc, make...). Mars dernier, jai fait l'acquisition d'un PowerBook G4 et je suis passé à l'X : Mac OS X grande joie :-). J'avais crée une partition pour Linux mais l'installation avait planté la première fois. J'avais donc repoussé cette opération à une autre fois mais curieusement il ne me manque pas car je code maintenant sur OS X.

Mac4Ever : Comment est né le projet VLC ?



VLC est né d'un projet de la résidence de Centrale Paris qui consistait à mettre au point un système de diffusion vidéo au travers du réseau de l'école en utilisant le format MPEG 2. Le but était de permettre aux éléves de l'école de pouvoir visualiser les chaines télé sur leur ordinateur via le réseau de l'école. Ainsi, le signal video arrivait par satellite dans l'école puis il était diffusé au travers du réseau de l'école pour enfin être visualisé par les étudiants. VLC est le terminal qui permet sur le poste client de visualiser ce flux MPEG 2.

Le projet VLC a été commencé en 96 grâce à nos partenaires Bouygues et 3Com qui ont financé le nouveau réseau de l'école en échange d'un partenariat technologique. Au début, VLC était développé uniquement pour Linux puis, petit à petit, les versions BeOS, Windows puis Mac OS X ont vu le jour. Aujourd'hui, VLC pour Mac permet de lire des vidéos en réseau, des DVD, des VCD et des DivX.

Mac4Ever : Comment se compose l'équipe de développement de VideoLAN Client ?



Interview de Christophe Massiot de VLC
VLC est un projet de l'école Centrale et est donc majoritairement animé par les étudiants et les anciens de l'école. Cependant, depuis février 2001 VLC est distribué sous licence GPL. Ainsi de nombreuses personnes venus de l'extérieur ont participé au développement de VLC.

Nombreuses ont été les personnes qui ont contribué à VLC. Parmis elles : Samuel Hocevar pour l'implantation du support DVD, Colin Delacroix (de Centrale) pour l'audio, Florian G. Pflug (un américain) pour l'optimisation de l'affichage, Jon Lech Johansen (un norvégien, co-auteur de DeCSS) et Eugenio Jarosiewicz pour l'interface et pour ma part, j'ai travaillé sur la compilation de la partie basse de VLC.

Une autre équipe de développeurs travaille sur la version serveur de VideoLAN. C'est ce serveur qui est chargé de diffuser le flux MPEG 2 sur le réseau. Pour l'instant ce serveur tourne exclusivement sous Linux. Mais depuis peu, le CVS de VideoLAN Server compile et fonctionne sans problème sous Mac OS X.

Mac4Ever : Vous disiez que VLC est sous licence GPL. Pensez-vous conserver ce modèle de distribution ?



Le projet s'est étendu à d'autres contributeurs que les élèves de Centrale qui sont tous très attachés au modèle GPL. D'autre part, pour changer la licence de VLC, il faudrait que nous ayons l'autorisation de tous les codeurs qui ont participé à l'écriture du soft. Ce qui est assez difficilement envisageable.

De plus il n'y pas de raison d'en changer, puisque nous n'avons pas d'objectifs commerciaux.

Mac4Ever : Comment a été porté VLC pour Mac OS X ? Et quels problèmes avez-vous rencontrés ?



VideoLAN Client est écrit en C (contrairement à VideoLAN Serveur qui est écrit en C++) et a été pensé, depuis l'origine pour être facilement portable. Il est composé de deux parties distinctes : le moteur de traitement (qui lit le flux MPEG 2, démultiplexe les pistes...) et le front-end (l'interface graphique, la gestion des périphériques comme le lecteur DVD, l'accélération de l'affichage de la vidéo...).

La partie basse du logiciel (le moteur) est indépendante de la plate-forme. Pour l'adapter il suffit, en général, de la recompiler sur la machine cible. C'est le front-end qui pose plus de problème. Il faut réécrire l'interface graphique pour chaque plate-forme et revoir le code d'affichage.

Sous Mac OS X, nous avons utilisé les API Cocoa pour créer l'interface qui pilote le moteur de VLC. D'autres améliorations ont été apportées à la version Mac : le code est optimisé pour AltiVec (sauf le décodage du DivX qui utilise le codec Open Source "ffmpeg"), l'affichage de l'image utilise une fonction non documentée de QuickTime qui nous a permis de gagner 30% de performances (Florian G. Pflug, un de nos contributeur américain nous a laissé sans voix en trouvant comment bénéficier de cette fonction).

C'est d'ailleurs cette fonction qui pose problème avec le passage à QuickTime 6.

Mac4Ever : A ce propos, nous avons remarqué ce bug avec VLC lorsque QuickTime 6 Preview est installé : l'image ne se rafraîchit plus. Est-ce un problème lié à VLC où à QuickTime ?

(NB : la version de VLC 0.43 corrige ce problème.)

Interview de Christophe Massiot de VLC
Avec QuickTime 6 final, le problème est encore présent. J'essaie par tous les moyens d'avoir des infos d'Apple, mais ce n'est pas facile...

Le bug vient bien de la partie affichage, mais il provient, à mon avis, de QuickTime 6 et non de VLC. J'ai demandé plusieurs fois à Apple, via les mailing-lists spécialisées dans le domaine, de se pencher sur la question. Hélas, je n'ai jamais eu de réponse. Par ailleurs, je n'ai pas accès aux sources de QuickTime, je ne peux donc pas le vérifier par moi-même.

Heureusement, la dernière version de VLC corrige ce bug.

Mac4Ever : Savez-vous d'où vient le bug de synchronisation entre la piste son et video de QuickTime lors de la lecture d'un DivX et pourquoi VLC n'est pas affecté par ce bug ?



Ce n'est pas moi qui me suis chargé de la partie DivX de VLC, mais d'après ce que je sais, il s'agit d'un bug dans le code de démultiplexage des pistes de QuickTime. Lorsque vous ouvrez une vidéo avec QuickTime, ce dernier lit le fichier, sépare les pistes vidéos, les pistes audio et les envoie au bon codec pour que celui-ci les décode.

Mais dans certains cas, QuickTime fait mal son travail et donne de mauvaises informations au codec (par exemple au codec DivX ou MP3). Et c'est comme ça qu'on se retrouve avec le son et la vidéo complètement désynchronisés.

VLC est, dans ce domaine, un concurent de QuickTime. Il gère lui-même le démultiplexage des pistes et ne fait appel à QT que pour accélérer l'affichage. C'est pour cela que nous ne sommes pas affectés par le bug de synchronisation.

Et même si VLC est célèbre pour sa capacité à lire les DivX de manière transparente sur Mac OS X (NDLR : sans passer par une longue phase de pré-décodage), il sait lire aussi tout type de flux MPEG 2. Mais il est évident que c'est depuis l'implantation du codec DivX dans VLC que celui-ci a rencontré son public et s'est fait connaître. Nous avons aujourd'hui dépassé les 32 000 téléchargements de la version Mac OS X sur notre seul serveur.

Mac4Ever : Par le passé, VLC avait rencontré un certain succès en étant le premier lecteur de DVD sur Mac OS X 10.0. Comment avez-vous réussi à devancer Apple sur ce point ?



En effet, à la sortie de Mac OS X 10.0, Apple ne proposait pas de logiciel de lecture de DVD et aucune solution tierce n'existait. VLC étant alors capable d'afficher un flux MPEG 2 et le format d'encodage des DVD étant le MPEG 2, il nous semblait possible de faire la passerelle entre les deux.

Deux semaines après la sortie de Mac OS X 10.0, VLC pouvait lire les DVD non chiffrés (NDLR : non protégés). En revanche, il n'a jamais été possible de lire les DVD chiffrés avant la 10.1. Dans les sources de Darwin (NDLR : le cœur du système Mac OS X), les fonctions de décodage des DVD étaient présentes, mais les symboles (NDLR : moyen permettant d'accéder à ces fonctions) n'étaient pas exportés. Il était donc impossible de les utiliser sans recompiler Darwin...

Personnellement, je pense qu'Apple a fait exprès de ne pas exporter les symboles pour empêcher tout développeur tiers de publier un lecteur DVD avant eux. Lorsque la 10.1 est sortie, l'exportation des symboles était faite : VLC pouvait donc lire les DVD même chiffrés.

Mac4Ever : Le design de VLC est assez sobre et n'a pas été fait dans la logique Aqua. Quelles améliorations pensez-vous faire dans le futur ?



Une nouvelle interface est prévue pour la version 0.5.0 de VLC. Seulement, on a besoin d'aide car l'équipe actuelle de VLC se concentre surtout sur le code et l'ajout de nouvelles fonctionalités dans le coeur du logiciel. Il est vrai que la version Mac accuse un certain retard à cause du manque de contributeurs et donc l'interface n'est pas notre priorité absolue. Nous préferons avant tout mettre la version Mac à niveau par rapport aux versions Linux et Windows de VLC.

Mac4Ever : Toujours à propos du design, l'icône de VLC est assez surprenante : il s'agit d'un cône de chantier. Peut-on savoir pourquoi ?



Interview de Christophe Massiot de VLC
La première version de VLC qui avait été distribuée en interne était fournie sur une disquette avec une version de Linux et ou le fond d'écran était un cône de chantier. Ceci pour symboliser que le logiciel était "en travaux". Depuis, ce symbole est resté et ceratins membres de l'équipe y sont toujours très attachés.

Mac4Ever : Allez-vous supporter le DivX 5 et le MPEG 4 ?



Le DivX est à ms yeux un "format de merde" crée par Microsoft qui a l'avantage de n'être compatible avec rien (stratégie Microsoft habituelle). La lecture des DivX est possible sur VLC grâce à l'implantation du codec "ffmepg". Le DivX 5 sera donc disponible sur VLC quand l'auteur de "ffmpeg" (Fabrice Bellard) aura intégré dans son codec le suport du DivX 5.

Quand au MPEG 4, celui-ci sera supporté dans un proche avenir par VLC, le temps de trouver du temps et des contributeurs... C'est d'ailleurs en cours en ce moment même.

Mac4Ever : Quels sont vos prochains chantiers ?



Tout d'abord mettre à niveau la version Mac OS X par rapport aux versions Linux et Windows, c'est à dire : inclure des préférences, améliorer l'interface, implémenter une "playlist"... Et concernant le logiciel en lui même, le transformer en un plug-in pour Mozilla qui permettrait de lire du contenu multimédia, supporter le MPEG 4 et la Vidéo On Demand.

Améliorer la qualité sonore aussi (qui est honnêtement très mauvaise dans 0.4.x). Ça a été le plus gros de mon boulot de ces dernières semaines, et la nouvelle architecture sonore vient d'être intégrée au CVS (avec de nombreux bugs).

Mac4Ever : Merci Christophe.



Ben de rien.

Interview réalisée par MacLover et MathBat.