Underachievement Unlocked

Ma vie, mon oeuvre : beaucoup de potentiel et très peu de réalisation.

Très peu de posts sur ce blog, aussi. Mais vous trouverez peut-être quelque chose d’intéressant à lire si vous remontez de quelques années dans les archives.

29 août 2004

Ca a été laborieux, mais je crois que ça y est, ma tvcam fonctionne, sous Linux.

Ca fait un moment que je m’emmerde avec xawtv pour faire les captures télé qui illustrent mon blog (et pour mes archives d’acteurs nus, aussi, évidemment). Je suis obligé de faire tourner X/Window en permanence, je dois aller dans les menus à chaque lancement pour lui faire utiliser l’entrée composite, les captures se font en appuyant sur “J” (et encore, ça pourrait être pire, au moins c’est une des deux touches spéciales aveugles sur un clavier standad), et je suis obligé de rallumer l’écran et ressortir la souris pour spécifier à nouveau la source vidéo à chaque fois que j’ai appuyé sur une autre touche que “J”, c’est-à-dire souvent.

J’ai donc fini par me décider hier à faire une recherche Google pour voir si, par hasard, il existerait une variante en ligne de commande — parce qu’en tant que développeur, c’est ce que j’aurais fait, un utilitaire de capture vidéo accessible en ligne de commande. Et, comme Linux est justement fait par et pour des développeurs, ça existe, et il suffit de taper apt-get install webcam pour que ça fonctionne. Un petit ajout au crontab et, hop, une tvcam mise à jour toutes les minutes. Magique !

Oui, mais non. Parce que je veux utiliser ma carte de capture à la fois pour la tvcam et mes captures personnelles, enregistrées en local. C’est tout l’intérêt d’utiliser la version Linux ; sinon je réinstallerais une vieille carte de capture télé sur mon ordinateur Windows pour faire la tvcam. Or, bêtement, si j’utilise webcam à la fois depuis le crontab et depuis la ligne de commande, les deux se mettent assez rapidement à planter et à dire que la source vidéo est occupée (pourquoi les deux plantent ? mystère…). Retour à la case départ.

Et c’est là que je retombe par hasard sur une page d’aide que j’avais déjà vue, et oubliée : man xawtv-remote. Il suffit que xawtv tourne (on en revient donc à l’obligation de lancer X/Window et de sélectionner l’entrée composite à chaque lancement, mais ce sont bien les inconvénients les moins gênants) et je peux lancer autant de xawtv-remote que je veux, ils communiqueront tous avec la même instance de xawtv et il n’y aura pas de conflits. (Je suppose, en tout cas.)

Reste à uploader la tvcam, ce qui n’est pas simple non plus. Je pensais que ce serait aussi élémentaire que ftp ftpperso.free.fr < commandes.txt mais, non, ça n’a pas l’air de fonctionner. Pour une raison qui m’échappe, C-kermit ne marche pas non plus (peut-être qu’il s’entend mal avec mon proxy, je ne sais pas — comme le Linux me sert de serveur de fichiers personnels et importants, je ne veux pas le connecter directement à Internet). Et on peut automatiser ftp en créant un fichier .netrc, mais en cas d’échec (et il y a souvent des échecs pour cause de wifi très instable par moments) cet idiot de ftp repasse en mode interactif, et bloque donc la tvcam. C’est couillon. Il ne reste plus qu’à bidouiller.

Tant que j’y suis à geekifier, je vous mets les scripts ?

/usr/local/bin/tvcam fait une capture télé en pleine résolution à chaque fois que j’appuie sur Entrée :

while [ true ]
do
echo "*** Press ENTER to capture TV ***"
read toto
capturedatestamp = `date "+%Y%m%d-%H%M%S"`
xawtv-remote snap jpeg full /home/garoo/captures/$capturedatestamp.jpg
done

C’est vraiment tout simple une fois que xawtv tourne — beaucoup plus simple que le fichier de configuration de webcam, qui nécessite de définir une section [ftp] valide même si on ne veut utiliser que la fonction d’archivage autodaté.

/home/garoo/tvcam/tvcam est le script qui lance une capture toutes les trente secondes (je ne peux pas le mettre en crontab parce qu’il n’arrive alors pas à contacter xawtv — probablement une option qui m’a échappé, mais c’est aussi simple comme ça) :

while [ true ]
do
./capture &
sleep 30
done

/home/garoo/tvcam/capture, appelé ci-dessus, et il y a une bonne raison pour que ce soit un script à part :

xawtv-remote snap jpeg 320x240 /home/garoo/tvcam/tvcam.jpg
ftp 10.10.10.64 &
sleep 10

La bidouille étant donc que le ftp est lancé en tâche de fond, et automatiquement tué après dix secondes, quand on sort du script (vivent les souvenirs de mes cours d’Unix il y a dix ans).

/home/garoo/.netrc pour finir, le fichier de configuration qui s’occupe de tout quand on lance ftp 10.10.10.64 :

machine 10.10.10.64 login garoo@ftpperso.free.fr password xxxxxx
macdef
init
binary
put tvcam.jpg tvcam.temp.jpg
rename tvcam.temp.jpg tvcam.jpg
quit

Wow. Tout ça pour ça. Linux, c’est bien, mais faut vraiment en vouloir. Prochaine étape, voir si je peux mettre ma webcam aussi sur le serveur.

 

Archives

2001   01   02   03   04   05   06   07   08   09   10   11   12  

2002   01   02   03   04   05   06   07   08   09   10   11   12  

2003   01   02   03   04   05   06   07   08   09   10   11   12  

2004   01   02   03   04   05   06   07   08   09   10   11   12  

2005   01   02   03   04   05   06   07   08   09   10   11   12  

2006   01   02   03   04   05   06   07   08   09   10   11   12  

2007   01   02   03   04   05   06   07   08   09   10   11   12  

2008   01   02   03   04   05   06   07   08   09   10   11   12  

2009   01   02   03   04   05   06   07   08   09   10   11   12  

2010   01   02   03   04   05   06   07   08   09   10   11   12  

2011   01   02   03   04   05   06   07   08   09   10   11   12  

2012   01   02   03   04   05   06   07   08   09   10   11   12