dimanche 23 septembre 2007

Amélioration des plug-ins pour CaptureFlux


Grâce aux informations données par plusieurs visiteurs de mon blog, j'ai pu constater que les plug-ins que j'avais réalisé pour les boîtiers ADS DVD XPRESS DX2, Dazzle Video Creator (DVC130) et Dazzle Platinum Video Creator (DVC170) ne marchaient pas toujours avec CaptureFlux.
On peut télécharger mes nouveaux plug-ins sur la page de CaptureFlux. Ils portent le même nom que les anciens, et il suffit de remplacer l'ancien par le nouveau, par défaut dans le même dossier que l'application.

Trois problèmes ont été corrigés:

1) en mode mpg2 natif la capture pouvait donner un fichier vide (0 octets). Ceci devrait être corrigé dans les nouveaux plug-ins: j'ai changé le filtre qui écrit la vidéo sur le disque et remis un bon vieux filtre dump. Rassurez-vous, aucun filtre n'est installé sur votre système: le plug-in comprend en interne le logiciel correspondant sans rien installer.

2) j'ai constaté que Pinnacle distribuait plusieurs filtres décodeurs mpeg2 différents, et surtout qui n'avaient pas les mêmes broches. Chez moi, c'était le Pinnacle MPEG 2 Decoder, installé par pclempegbox.ax version 4.0.8.00 . Ce filtres n'a qu'une broche d'entrée et une broche de sortie: le flux vidéo mpeg2 y entre et le flux vidéo décodé en sort.

Or chez Rudy, il n'en était pas de même: son filtre s'appelle bien Pinnacle MPEG 2 Decoder, il est installé par un fichier pclempegbox.ax mais en version 5.0.617.00 Et cette petite différence de version, lui donne trois broches, notamment une nouvelle broche d'entrée pour un flux de "subpicture" qui semble servir pour décoder certains DVD. Du coup quand CaptureFlux cherchait à se connecter, il ne trouvait plus la bonne broche. C'est maintenant réparé et je pense que le plug-in devrait maintenant fonctionner avec les versions différentes du décodeur de Pinnacle.

3) certains utilisateurs, comme ChrisPM, avaient désinstallé le décodeur divx officiel DivX Decoder Filter, qui était utilisé par le plug-in pour gérer les flux divx. Et je ne les blâme pas, s'ils préfèrent fonctionner avec ffdsshow ou XVID. Du coup, le plug-in cherchera maintenant quand même d'abord le decodeur officiel, et s'il ne le trouve pas, essaiera d'en demander un autre au lieu de renoncer bêtement à fonctionner. Cela devrait donner un peu de souplesse de ce côté-là.

Qu'est-ce qui n'a pas pu être résolu?

Certains utilisateurs, comme Pierre Julien n'ont pas de driver pour faire fonctionner le boîtier sous Vista 64 bits. Il est clair que mes plug-ins ne le remplacent pas, et que CaptureFlux en saura pas fonctionner sans un driver approprié.

Certains utilisateurs, comme Gaël me disent que cela marche sur leur ordinateur de bureau, mais pas sur leur portable. Or quand je regarde les filtres de l'ordinateur portable, je m'aperçois qu'aucun filtre de Pinnacle n'est installé. Même si maintenant j'ai introduit un peu de souplesse, je pense qu'il faut quand même installer le logiciel fourni avec le boîtier pour pouvoir le faire fonctionner correctement.

D'autres utilisateurs regrettent de ne pas pouvoir enregistrer directement en mp4. Désolé, je n'ai pas pu le rajouter, car je n'ai pas une connaissance suffisante de ce format et des filtres qui permettent d'enregistrer en mp4. C'est peut-être un but pour une prochaine révision.

Que reste-t-il à faire maintenant?

Après les plug-ins DVC130, DVC170 et ADS, je vais regarder encore quelques améliorations pour Captureflux: améliorer le plein écran pour ceux qui ont des écrans larges, peut-être revoir la synchronisation audio/vidéo car dans certains cas ce n'est pas terrible.

A suivre donc.


samedi 1 septembre 2007

CaptureFlux et les DVC 130 et 170

Le DVC 170 , comme d'ailleurs le DVC 130, sont des boîtiers de capture vidéo très peu chers, et qui compressent la vidéo par le hardware (donc sans mobiliser le processeur) en mpeg 1, 2, voire en mpeg-4 et divx. En France, il s'appellent Dazzle Video Creator ou Dazzle Video Creator Platinum, et sont en fait une marque de la société Pinnacle. Celle-ci les distribue avec ses logiciels (genre Studio), mais beaucoup d'utilisateurs regrettent de ne pas pouvoir utiliser d'autres logiciels, notamment pour voir la vidéo en plein écran , sans être obligé de l'enregistrer. C'est le cas de Gaël qui a commenté mon billet précédent. Mon logiciel CaptureFlux fait cela pour pas mal de systèmes, aussi suis-je souvent sollicité pour le rendre compatible avec ces boîtiers.

En fait, je n'ai jamais essayé aucun de ces deux boîtiers, mais je dispose d'un boîtier ADS Tech DVD Xpress DX2, qui utilise la même puce que les DVC 130 et DVC 170 pour numériser et compresser la vidéo. Il s'agit de l'excellente puce WIS GO7007SB, qui a pour les Français aussi l'avantage d'accepter des entrées vidéo en SECAM.

J'ai réussi à faire marcher CaptureFlux avec le boîtier ADS en réalisant un plug-in spécialisé. Grâce à plusieurs utilisateurs de DVC 170 qui ont fait des tests, j'ai aussi développé un plug-in pour les boîtiers Dazzle. Malheureusement cela ne semble pas marcher pour tout le monde, probablement parce qu'il y a plusieurs versions du driver de cette puce, et que mes plug-ins pour CaptureFlux ne marchent que pour certains d'entre eux.

Ce billet de mon blog s'adresse donc aux utilisateurs de DVC 170 et DVC 130 qui voudraient faire marcher CaptureFlux avec leur boîtier. S'ils veulent que je développe un plug-in pour eux, ils devront m'aider en faisant un certain nombre d'essais ou de tests, et en me donnant leurs résultats.

Pour cela, il faut savoir utiliser graphedit. J'ai une page web sur graphedit qui explique comment cela se fait. Si vous ne l'avez pas encore, téléchargez-le plutôt sur doom9 qui donne une version plus récente que Digital Digest (il faut chercher la full software page, puis la rubrique filters). Ne lancez pas tout de suite register.bat, car il installe un tas de filtres directshow dont vous n'aurez pas besoin en principe. La seule chose dont vous avez besoin c'est d'installer la dll qui permettra d'ouvrir les pages de propriétés. Elle s'appelle proppage.dll. Pour cela, soit vous éditez (avec notepad.exe) le fichier register.bat et effacez toutes les lignes sauf regsvr32 proppage.dll /s, soit vous utilisez mon logiciel Filmerit, et glissez simplement le fichier proppage.dll sur sa fenêtre.

Branchez maintenant votre boîtier. Par précaution, vérifiez avec le logiciel d'origine qu'il marche et donne une image. Mais ensuite quittez complètement le logiciel, tout en laissant le boîtier branché.

Lancez ensuite graphedit, puis lorsque la fenêtre vide est affichée, tapez CTRL+F. Chargez d'abord le filtre source de capture qui correspond à votre boîtier. Il doit se trouver dans la rubrique Video Capture Sources, et s'appelle chez moi ADS DVD XPRESS DX2. Chez vous, il y a des chances qu'il s'appelle Dazzle DVC170 ou encore Dazzle DVC 130. Peut-être allez-vous trouver encore autre chose. Sélectionnez-le et tapez Insert Filter.


Puis vous allez dans la rubrique Périphériques de distribution de flux WDM et essayez de trouver un filtre Crossbar. Chez moi, il s'appelle WIS GO7007SB Crossbar, mais chez vous il pourrait s'appeler Dazzle DVC170 CrossBar ou encore Dazzle DVC130 CrossBar, ou autre chose.
Insérez-le aussi.

Ensuite, il faut essayer de construire le graphe. La première chose à faire est de relier le filtre crossbar et le filtre source. Chez moi le filtre source n'a qu'une entrée. On la relie à la sortie vidéo du filtre crossbar. Peut-être chez vous en aura-t-il plusieurs? A vous d'essayer au mieux.

Ensuite, vous terminez le rendu du graphe en cliquant avec le bouton droit sur les broches de sortie du filtre source, et en choisissant render pin. Attention, s'il y a une broche de capture et une broche de preview, il vaut mieux pour mes essais rendre les deux. Souvent, il y a aussi une broche audio. Rendez-la itou.

Vous devriez alors obtenir un graphe complet, du genre suivant:

Avec un peu de chances, il marchera quand vous tapez Entrée pour le faire jouer. S'il ne donne qu'une image noire, il faut sans doute configurer la crossbar. Vous cliquez sur le filtre Crossbar avec le bouton droit, et affichez sa page de propriétés. La principale chose à faire est de vérifier la source vidéo: composite ou s-vidéo, selon ce qui est branché sur votre boîtier. Parfois il y a d'autres réglages. A vous de regarder.

Quand vous avez un graphe qui marche, et qui donne une image et du son, c'est presque gagné: vous pouvez déjà profiter de votre boîtier autrement qu'avec Studio de Pinnacle. Enregistrez le graphe avec CTRL+S, et envoyez-le moi (c'est un filtre grf) avec les commentaires utiles. Ce sera ma matière première pour fabriquer un plug-in.

A ce stade, il faut remarquer que le filtre source peut donner des flux vidéos très différents: mpeg1, mpeg2 ,mpeg4 ,divx etc... selon les règlages de sa page de propriétés. Chacun de ces flux sera rendu différemment, notamment en mobilisant un décodeur différent. Vous devriez donc recommencer plusieurs fois, et avant de rendre les broches de sortie du filtre source, ouvrir sa page de propriétés et choisir différents formats de sortie, puis compléter le graphe de rendu. Envoyez-moi tous les graphes obtenus qui marchent.
Il reste une dernière difficulté: CaptureFlux doit décomprimer l'image dans la mémoire vive de l'ordinateur, et pas dans la mémoire de la carte vidéo. C'est un problème qui se pose avec les flux mpeg2, qui sont parfois décodés en mode overlay. Si le graphe de rendu fait appel à des filtres décodeurs de mpeg2 tels que ceux de Cyberlink, et fait apparaître un filtre overlay ce n'est pas bon pour CaptureFlux. Il faudra donc voir si vous avez d'autres filtres mobilisables. Le mieux pour cela, est d'utiliser mon logiciel Filmerit, déjà cité plus haut pour prendre une photo de tous vos filtres, et de m'envoyer aussi le zip obtenu.

Pour l'envoi, vous trouverez mon adresse e-mail sur mon site, ou sur les pages d'aide de CaptureFlux ou Filmerit. Si ces indications ne sont pas claires, faites des commentaires à ce billet. Sinon envoyez-moi vos résultats.