Pense-bête

Quelques notules dont je tiens à conserver une trace. D'intérêt fort limité pour d'autres personnes que moi.

Fil des billets - Fil des commentaires

samedi 27 avril 2013

Strawberry Perl, ImageMagick, Windows... et problèmes de compilation

Bon, vu que j'ai perdu plusieurs heures (et que ce n'est pas la première fois que cela m'arrive) là-dessus, un petit billet pour essayer de s'en souvenir.

Situation : cela fait des années que j'utilise Perl sous Windows (pour plein de choses), et ImageMagick (pour le traitement automatique en ligne de commandes d'images). Mais, à chaque fois que je fais une mise à jour de l'un ou l'autre de ces outils, c'est la croix et la bannière pour réussir à les faire à nouveau parler entre eux !

D'après la documentation, c'est très simple :

  • cpan
  • install Image::Magick
  • et voilà, c'est tout...

D'après mon expérience, ça ne se passe jamais comme ça :

  • les versions disponibles sur CPAN et sur le site d'ImageMagick ne sont pas alignées,[1] ce qui pose des soucis d'interface entre librairies ;
  • et même si les versions sont alignées, la compilation ne s'est jamais passée du premier coup.

Donc, si, lors de la compilation, vous avez un message « Warning (mostly harmless): No library found for -lMagickCore-Q16 », détrompez-vous, ce n'est pas bénin ! Ce sera alors suivi de quantité de messages d'erreur (que la bienséance m'empêche de répéter céans) lors de l'étape de la génération de liens.

Les étapes que j'ai effectuées pour finalement réussir à compiler Image::Magick :

  • installer la version d'ImageMagick qui correspond à la version d'Image::Magick sur CPAN (soit la 6.8.2 lors de l'écriture de ce billet) ;[2]
  • cpan ;
  • get Image::Magick ;
  • look Image::Magick ;
  • perl Makefile.PL ;
  • éditer le fichier Makefile et ajouter -lCORE_RL_Magick_[3] à la fin de la ligne LDLOADLIBS = ;
  • dmake (qui, normalement, ne devrait plus se plaindre de quoi que ce soit) ;
  • dmake install ;
  • exit ;
  • exit

Et voilà, la librairie est maintenant normalement disponible pour les programmes Perl. Joie, bonheur, contentement !

Further reading : Install ImageMagick on Strawberry Perl on Win 10

Notes

[1] Au moment d'écrire ce billet, ImageMagick est à la version 6.8.5, Image::Magick sur CPAN est à la version 6.8.2.

[2] Attention, bien évidemment, à choisir une version 32 ou 64 bits qui corresponde à votre installation de Perl. Et surtout, une version « dynamic » (ou « dll ») d'ImageMagick ; et sélectionner l'installation des librairies de développement dans la procédure d'installation.

[3] Pour trouver ce nom là, regarder dans le sous-dossier lib du répertoire d'installation d'ImageMagick.

samedi 26 mars 2011

J'aime le web...

Il y a des jours où je me dis que c'est quand même bien de vivre à l'ère du web.

D'un côté, nous avons le cycle de conférences TED "Ideas worth spreading"[1], des conférences de haute qualité sur quantité de sujets différents. Elles sont toutes visibles sur le site web, en anglais, mais sous-titrées dans un grand nombre de langues différentes. Des heures de bonheur et de découvertes à disposition.

Seulement voilà, j'ai beaucoup de peine à me concentrer pour regarder une vidéo sur mon ordinateur : il y a beaucoup trop de sources de distraction (emails, messagerie instantanée, Twitter, ...) pour que j'y arrive. Heureusement, sur le site de TED, ils ont l'excellente idée de proposer le téléchargement des vidéos et je peux ainsi les regarder sur mon « media center » tranquillement.

Mais (il en faut bien un), les sous-titres, eux, ne sont pas proposés au téléchargement. Or j'aime bien regarder mes vidéos en anglais avec des sous-titres également en anglais (ça permet de rattraper le petit truc qui m'aurait échappé à l'écoute). Et c'est là qu'entre en scène le site TTSD : il permet de télécharger les sous-titres des vidéos TED ! Que du bonheur je vous dis !

J'adore cette émulation qui se produit naturellement dans l'univers du web. Une première personne met à disposition un service, et une autre, sans avoir aucun lien avec la première, peut mettre à disposition un autre service, s'appuyant sur le premier, mais en comblant ce qu'il considère être un manque du premier service.

Notes

[1] « Des idées qui valent la peine d'être répandues »

samedi 13 novembre 2010

Trucs mplayer

Deux opérations que j'ai dû faire récemment et dont je tiens à conserver une trace.

Extraire la bande son d'un DVD

mplayer -dvd-device <point de montage du lecteur> dvd://<titre> -chapter <chapitre début>-<chapitre fin> -vc dummy -vo null -af resample=44100 -ao pcm:waveheader:fast:file=<fichier de sortie>.wav

Notes :

  • <chapitre fin> est aussi inclus dans ce qui est exporté. Donc, pour exporter seulement le troisième chapitre, il faut utiliser -chapter 3-3.
  • L'extraction se fait à un taux d'environ 2.3x sur mon poste.

Voir aussi : axllent.org/docs/video/mencoder_dvd_to_mpeg4

Faire un film à partir d'une seule image et une bande son

ffmpeg -loop_input -shortest -i <image.jpg> -i <son.mp3> -acodec copy -b 200k -f mp4 <fichier de sortie>.mp4

mercredi 9 septembre 2009

Ohlala!

Une chose est sure : lors de mon prochain passage à Paris, j'irai prendre un repas au restaurant Ohlala! Pourquoi ? Simplement parce que les propriétaires du lieu ont eu l'excellente idée de mandater Invader pour qu'il réalise une fresque sur l'un des murs du restaurant... et puisque je suis toujours autant fan du travail de cet artiste, je me dois d'aller voir cela.

mercredi 13 août 2008

Canaux DVB-T pour VideoLAN 0.9

Paramétrisation de VideoLAN Client 0.9 pour l'utilisation la TNT avec l'antenne la plus proche de chez moi :

  • :dvb-frequency -> 754000
  • :dvb-bandwidth -> 8
  • :program
    • TSR1 -> 257
    • TSR2 -> 258
    • SF1 -> 1
    • TSI1 -> 513
  • :access-filter -> timeshift (permet de mettre en pause la TNT)

Et pour passer cela en streaming sur UDP, il faut ajouter les paramètres :

:sout=#standard{access=udp,mux=ts,dst=x.x.x.x:1234}

x.x.x.x représente l'adresse IP de l'ordinateur de destination.

Si on veut quand même visualiser sur le serveur ce qui est envoyé, le paramètre sout devient :

:sout=#duplicate{dst=display,dst=standard{access=udp,mux=ts,dst=x.x.x.x:1234}}

Bien entendu, on peut également « s'amuser » à modifier le flux avant de l'envoyer (ici, je diminue la taille avec scale=0.75 et je réencode le tout en MPEG-2 Video à 4096 kbit/s et en ajoutant une petite touche de désentrelacement) :

:sout=#transcode{vcodec=mp2v,vb=4096,scale=0.75,deinterlace}:standard{access=udp.mux=ts,dst=x.x.x.x:1234}

Note : mes tests semblent indiquer que le flux est moins perturbé si on ne fait pas d'affichage local sur le serveur.

mardi 21 août 2007

Mise à jour d'un greffon de template sur Dotclear2

Lors de la mise à jour d'un greffon proposant des fonctions de template, voici l'ordre dans lequel effectuer la mise à jour :

  1. mettre à jour le greffon sur le serveur ;
  2. mettre à jour les thèmes sur le serveur.

Si on inverse ces deux étapes, on risque fort de se retrouver avec un thème défectueux présenté aux visiteurs. Cela est dû au fait que le cache du moteur de template n'est mis à jour que lorsque les fichiers du thème ont été modifiés. Si on modifie d'abord le thème, les nouvelles (ou celles dont le nom a changé) fonctions de template n'existeront pas encore lors de l'affichage du thème et ne seront donc pas interprétées dans le cache.

vendredi 19 janvier 2007

Incompatibilités entre MultiViews et RewriteRule

Situation : Apache 1.3, un fichier blog.php à la racine, qui prend en charge les URLs de type http://www.example.com/blog/post/... par le biais d'une option MultiViews activée dans le fichier .htaccess.

Problème : tout jeu de RewriteRule traitant des URLs commençant par blog/ ne fonctionne pas... C'est en effet l'option MultiViews qui prend le dessus, et les arguments suivant le "/" sont « transmis » au script blog.php avant même d'être interprétés par les RewriteRule.

Solution : Je n'ai pas réussi à trouver une solution propre permettant de faire cohabiter ces deux types de traitement. Par conséquent, j'ai dû rédiger un plugin pour DotClear2 (très fortement inspiré du plugin dc1redirect de la dcTeam) qui traite les règles de « rewriting » que j'aurais aimé mettre dans le fichier .htaccess...

dimanche 7 janvier 2007

Récupérer un flux RealAudio

Trouvé là-bas : grimthing.com/archives/2004/05/20/recording-streaming-audio-with-mplayer/. Et recopié ici juste pour le retrouver facilement le jour où j'en aurai besoin...

Lire la suite...

dimanche 31 décembre 2006

Traduction d'un plugin DotClear2

La méthode choisie dans DotClear2 pour la traduction des plugins est basée sur gettext, et est fondamentalement différente de celle qui était utilisée dans DotClear 1. Puisque j'ai découvert ce monde en tentant de traduire mon premier plugin, voici quelques notes sur la manière de procéder pour générer les fichiers de traduction.

Lire la suite...

samedi 30 décembre 2006

Migration vers DC2, les étapes

Note : ce billet détaillant les étapes qui m'attendent pour migrer mes blogs de DotClear 1.2.x vers DotClear2 est hautement spécifique à ma situation. N'espérez pas pouvoir vous en inspirer pour votre propre migration... Si malgré tout vous essayez de vous inspirer de ces quelques notes, ne comptez pas sur moi pour vous dépatouiller lorsque tout aura foiré (car cela va foirer).

Lire la suite...