dimanche 13 mai 2007

Restaurer la restauration système

J'ai été frappé ces jours-ci par le syndrome de la restauration impossible du système. Il semble assez répandu chez les internautes utilisant Windows. Pour vous en rendre compte, lancez une recherche Google avec la phrase "Restoration Incomplete. Your computer cannot be restored". Vous trouverez plein de sites qui parlent de ce problème et proposent des diagnostics. Chez moi la forme du symptôme était que les points de restauration plus vieux que 48h ne marchaient plus. Les plus récents marchaient encore, et je pouvais d'ailleurs en créer de nouveaux.

Rien de ce que j'ai trouvé sur le web n'a permis de restaurer ma base de registres à ce qu'elle était il y a un mois. Or, en regardant dans le dossier c:\System Volume Information j'ai constaté que les points de restauration en cause existaient bel et bien. Ils sont contenus dans un dossier au nom abscons commençant par _restore. Et chaque point de restauration figure dans un sous-dossier nommé RPxxx. On peut trouver à quelle date le point de restauration a été effectué, simplement en regardant la date de création du dossier RPxxx. Notez que le dossier System Volume Information est un dossier caché et protégé qu'il faut déverrouiller avant de pouvoir y accéder. Microsoft fournit le mode d'emploi ici.

J'ai donc fait de la chirurgie fine, et par chance elle a marché:

J'ai créé un nouveau Point de restauration, et constaté qu'il avait créé dans le dossier correspondant (-restore....) de "C:\system volume information" un dossier appelé RP192. Dans ce dossier RP192, j'ai remplacé le sous-dossier snapshot par le sous-dossier snapshot issu du dossier RP113 correspondant au point de restauration voulu.

Et voilà, c'est tout: mon dernier point de restauration a pu être rechargé sans problème, et j'ai retrouvé le registre du mois précédent. Cette opération n'est peut-être pas sans risque. Elle peut donner un peu d'incohérence, dans la mesure où elle restaure les fichiers du système à la date la plus récente et le registre, contenu dans snapshot, à une date plus ancienne. Mais chez moi cela a marché.

J'en tire d'ailleurs comme conclusion que le syndrome est causé par la restauration des fichiers système et non par la restauration du registre. C'est peut être bon à savoir.

vendredi 20 avril 2007

Si vous n'aimez pas regsvr32

Quand vous avec récupéré un filtre directshow, il se trouve souvent dans un fichier *.ax (ce que j'appelle le fichier serveur) qu'il faut alors installer sur votre système. La méthode classique suppose d'écrire avec notepad un fichier *.bat contenant une ligne de commande du genre:
regsvr32.exe c:\chemin\fichier.ax

Cela marche assez bien, mais n'est pas très commode à l'heure des interfaces graphiques de Windows (on se croirait encore sous DOS quand on travaille comme cela). De plus cela peut poser des problèmes si on ne sait pas écrire très exactement les chemins soit vers regsvr32.exe, soit vers le fichier serveur. (Quand il y a des espaces dans un nom de dossier, faut-il le mettre entre guillemets?)

Filmerit 3.0.0
comprend une petite fonction toute simple: il suffit de glisser/déposer le fichier serveur sur sa fenêtre, et votre filtre est installé.

Je me demande pourquoi cela n'avait pas été proposé plus tôt.


mardi 17 avril 2007

Filmerit 3.0.0 est en ligne

Je mets aujourd'hui en ligne la version beta 3.0.0 de Filmerit.


Elle m'a demandé quatre mois de travail. Elle représente un progrès très substantiel par rapport à la version 2.1 précédente. Jugez plutôt:

- Elle permet d'analyser quatre sortes de filtres à savoir les filtres directshow, les filtres DMO, les filtres Compression Manager, et les filtres Plug-and-Play. Elle peut même afficher les filtres plug-and-play inactifs, par exemple si vous aviez un jour branché un camescope DV sur votre ordinateur, il restera un filtre PnP inactif appelé "Microsoft DV Camera and VCR".

- La liste des filtres peut être affichée triée soit selon l'ordre des catégories, soit selon l'ordre alphabétique, soit selon les valeurs des mérites (ce qui est commode pour repérer tout de suite les filtres qui s'imposent avec de grosses valeurs), soit selon le fichier serveur.

- La liste des filtres (avec toutes leurs caractéristiques) peut être sauvée dans des fichiers comprimés zip, contenant soit un fichier de texte pur, soit un fichier rtf avec des mises en forme pour en faciliter la lecture.

- Pour augmenter la sécurité, Filmerit essaie de créer un point de restauration avant de sortir du mode "Lecture seule".

- Un support (minimaliste, certes) pour Windows Vista est assuré. Il faut savoir que Vista protège très rigoureusement l'accès aux clés de registre. Il faudra donc, si vous utilisez vista, soit lancer l'application comme administrateur, soit même désactiver le "User Account Control", avant de quitter le mode "Lecture seule".

- Une amélioration pour tous ceux qui aspirent à des programmes "portables", c'est-à-dire qu'on peut lancer depuis une clé usb, sans qu'elle ne modifie le registre: on peut maintenant sauver les préférences de Filmerit dans des fichiers ini si on veut.

-La fenêtre de Filmerit peut être redimensionnée, voire mise en plein écran, pour améliorer le confort de travail.

Et bien sûr, les fonctions de base de Filmerit restent plus que jamais présentes:
  • lister et analyser les filtres présents sur un système
  • comparer les filtres avant et après une installation
  • effacer des filtres
  • réparer des filtres
  • modifier le mérite d'un filtre
  • recharger toute une configuration de mérites
  • réparer d'un seul bouton tout le système
Attention, cependant cette version 3.0.0 doit être considérée comme une version beta. Elle pourrait encore subir quelques corrections dans les semaines qui viennent. Je serai très reconnaissant à ceux qui accepteront de la tester et de me faire part de leur expérience.

Pour la télécharger, il faut cliquer ici

vendredi 6 avril 2007

Les fichiers scn

Un internaute hongrois me demande quelle est la structure des fichiers *.scn.

Rappelons que les fichiers *.scn sont produits par Studio de Pinnacle et contiennent les informations relatives au découpage en scènes d'un fichier vidéo. Pinnacle ne donne guère d'indications sur la structure de ces fichiers. Donc c'est en procédant à des expérimentations que j'ai pu comprendre un certain nombre des choses que je présente ici sans garanties.

J'ai implanté l'utilisation des fichiers *.scn dans ImageGrab et dans DVdate. En outre, DVdate comme CaptureFlux peuvent créer des fichiers *.scn à partir de vidéos au format DV.

En fait, ces fichiers sont inutilement complexes et redondants. Je suppose que Pinnacle les a introduits en se basant sur les fichiers de projet *.stu qu'utilise Studio. On aurait pu créer des fichiers plus simples contenant les mêmes données. C'est donc seulement parce que j'ai souhaité une compatibilité avec Studio que j'ai travaillé sur ces fichiers *.scn.

Un fichier *.scn commence par un en-tête qui en hexadécimal est le suivant:
63 26
01 00 04 00 00 00 FF FF
03 00 0A 00 'SourceTape' [len] filename 00 00 00 00 00 00 00 00 {nbscenes} FF FF
01 00 04 00 'Clip' 50 00 00 00 FF FF

Puis pour la première scène:

01 00 05 00 'Scene' 00 00 00 00 00 (scene_2) 00 00 00 00 01 80 [len] filename 00 00 00 00 00 00 00 00 (scene_2)


Puis pour chacune des scènes suivantes, notées scene_i (avec i>=2):

03 80 F0 00 00 00 05 80 00 (scene_i) (longueur_i) 00 00 00 00 07 00 (scene_i) (longueur_i) (scene_i)

Ici ma notation est la suivante:
  • [len] est la longueur du nom du fichier avi (avec son chemin complet). [len] est noté sur un seul octet.
  • filename est le nom du fichier avi avec son chemin complet
  • {nbscenes} est le nombre total de scènes - sur 2 octets
  • (scene_i) est le numéro de la frame dans le fichier avi où commence la scène i. scene_1 n'est ici pas utilisé, car il serait nul. Ce numéro est un entier codé sur 4 octets.
  • (longueur_i) est la longueur - en nombre de frames -sur 4 octets de la scène i. Donc en principe (longueur_i)=(scene_i+1)-(scene_i)
Voilà c'est un peu bizarre, mais ce n'est pas moi qui ai inventé cela. En outre, je ne garantis pas que tous les fichiers *.scn suivent strictement ce format-là. Mais les fichiers que Studio a produit chez moi le suivent, et quand DVdate produit des fichiers *.scn de ce format, ils marchent dans Studio. Alors cela doit quand même être correct.