lundi 28 juin 2010

Egaler le Player for AVCHD?




Le player for AVCHD dont je parlais dans mon précédent billet sait très bien lire aussi des vidéos HD qui se trouvent sur le disque dur. Pour en faire la démonstration, j'ai copié directement (via le couper coller de Windows) les dossiers AVCHD et AVF_INFO depuis la mémoire du caméscope (qui apparaît sous forme d'un périphérique amovible) vers la racine d'un de mes disques durs.

Lorsque je lance alors la commande Player for AVCHD, (via PMB Launcher, sous l'onglet Affichage), cette application lit la vidéo que je viens de recopier. La preuve en est que je peux débrancher le caméscope et que la lecture reste toujours possible. Elle est d'assez bonne qualité même sur mon ordinateur Pentium 4, aujourd'hui démodé, sous Windows XP SP3. Au passage, cela prouve que ce que je présumais dans un billet précédent est faux: il n'est pas nécessaire de faire l'hypothèse d'un traitement que subit la vidéo dans le caméscope. C'est forcément à la qualité intrinsèque du programme fourni par Sony que revient le mérite de cette relativement bonne lecture, bien meilleure en tout cas que ce que peut faite le lecteur Windows Media.

La question que je me pose, pour fabriquer des programmes nécessitant de lire des vidéos au format AVCHD, est de savoir si cette qualité est reproductible sous directshow, c'est-à-dire en composant un graphe avec des filtres appropriés et en le faisant jouer.

J'arrive assez facilement à reproduire le fonctionnement du lecteur Windows media, ce qui est sans surprise car ce dernier fonctionne sous directshow. Pour ce faire, j'ai pris soin d'installer sur mon système deux groupes de filtres directshow qui permettent de construire le graphe en question, à savoir Halli Media Splitter, qui est un filtre source combiné avec un splitter très bien adapté aux fichiers mts ou m2ts, et puis le fameux ffdshow qui permet dans ses versions récentes comme ffdshow-tryouts de décoder beaucoup de types de compression, dont le fameux MPEG-4 AVC utilisé dans la norme AVCHD.

On obtient alors le graphe très simple suivant (construit ici dans graphedit):


Ce graphe n'arrive pas bien loin chez moi puisque, exactement comme le lecteur Windows media, au bout de quelques secondes la vidéo se bloque et au mieux l'audio continue seul à jouer. Ce n'est donc manifestement pas comme cela que le Player for AVCHD fonctionne.

J'ai fait une petite découverte à ce propos (mais elle n'a peut-être rien à voir): avec PMB sont fournis toute une série de fichiers *.ax que l'on trouve chez moi dans le dossier d'installation, par exemple c:\Program Files\Sony\PMB et dans son sous-dossier TapeImporter.

Ces fichiers *.ax contiennent des filtres directshow, qui n'ont pas été installés sur mon système. A l'aide de mon utilitaire Filmerit, je les ai installés sur mon système et cela m'a donné 44 nouveaux filtres, tous classés dans la catégorie directshow, et - sauf pour trois d'entre eux - ayant un nom qui commence par Sony...

Pour être complet, les trois qui ne commencent pas par "Sony", s'appellent SGCtrl, Video Type Change et VMLib Filter. Je me demande si certains de ces filtres ne pourraient pas aider à former un graphe capable de lire aussi bien que Player for AVCHD.

En fait, rien n'est moins sûr, car ayant pris avec Filmerit une photo des filtres avant d'installer PMB et une autre après, il apparaît clairement que PMB n'installe aucune filtre directshow lors sur l'ordinateur. Donc soit il n'est pas basé sur la technologie de directshow, ce qui est probable vu qu'il n'est pas réservé à Windows mais doit aussi fonctionner avec Mac, soit il n'utilise que des filtres internes sans les installer dans le registre de Windows. Dans les deux cas, il sera difficile de reproduire le comportement de PMB ou de l'application Player for AVCHD.


Aucun commentaire: