Webcam sous linux


Installation d'une Logitech QuickCam 4000 Pro


Cette Webcam a une bonne qualité d'image, largement suffisante pour de la visioconférence. L'installation sous linux est maintenant très simple et cette webcam fonctionne de base sous Ubuntu.



Utilisation de la webcam


Enregistrement avec le microphone en ligne de commande

Le format ossdsp, obtenu en faisant un "cat /dev/dsp1" n'étant pas très exploitable, nous allons le convertir en wav stéréo de fréquence 44100Hz avec sox, puis finallement l'encoder avec oggenc :

$ sox -t ossdsp -c 2 -r 44100 -w -s /dev/dsp1 -t wav - |
  oggenc -Q -q 2 -o dictaphone.ogg -
On peut aussi encoder en mp3 avec lame : remplacer la ligne oggenc par :
  lame -h -v -V 6 - dictaphone.mp3
NB : En fonction du nombre de carte son sur la machine, il est possible que le microphone de la webcam se trouve sur /dev/dsp0, /dev/dsp2 ou autre.

Enregistrement d'une video en ligne de commande

Tout d'abord, vérifiez que vous êtes bien cadré et régler éventuellement le framerate avec setpwc:

$ mplayer tv:// -tv driver=v4l:width=640:height=480:device=/dev/video0
Ensuite on peut passer à l'enregistrement du fichier test.avi (appuyer sur Ctrl-C pour arrêter, ou rajouter une option du genre "-endpos 00:00:10"):

$ mencoder -tv driver=v4l:width=640:height=480:device=/dev/video0:forceaudio:amode=0:alsa:adevice=hw.1 tv:// -o test.avi -ovc copy -oac copy

Notez qu'on donne le device audio au format ALSA : "hw.1".
Le fichier obtenu risque d'avoir une taille importante : nous n'avons rien compressé. On peut encoder en divx à la volé, en basse qualité :

$ mencoder -tv driver=v4l:width=320:height=240:device=/dev/video0:forceaudio:amode=0:alsa:adevice=hw.1 tv:// -o test.avi -ovc lavc -lavcopts vcodec=xvid:vhq:vbitrate=300 -oac mp3lame -lameopts cbr:br=64

En haute qualité (personnellement, je préfére le 320x240@30fps au 640x480@15fps) :
(Sur les webcam avec driver pwc, on peut régler le framerate au préalable avec setpwc -f 30)

$ mencoder -tv driver=v4l:width=320:height=240:device=/dev/video0:forceaudio:amode=0:alsa:adevice=hw.1 tv:// -o test.avi -ovc lavc -lavcopts vcodec=xvid:vhq:vbitrate=2000 -oac mp3lame -lameopts cbr:br=128

Surveillance et enregistrement d'image

Pour prendre des photos, il est plus pratique d'avoir l'image de la webcam à l'écran. Le logiciel que j'utilise est camstream, disponible en standard sur la plupart des distribution.
Il est également possible de prendre des images à intervalle régulier et de les envoyer sur un serveur (les logiciels webcam et webcamd permettent de faire ça en ligne de commande).

La webcam peut également servir de caméra de surveillance : le programme motion permet d'enregistrer des images dès qu'un mouvement est détecté.

Autres logiciels

Je ne vais pas faire une liste exhaustive. Le plus connu est sans doute xawtv, qui permet entre autre d'enregistrer des images et des video :

xawtv -c /dev/video0 -C /dev/dsp1
Il existe des programmes plus récents et beaucoup plus conviviaux comme camorama (enregistrement d'images et téléversement sur un serveur).

Visioconférence

En général on achète une webcam pour ça ! Sous linux, le support des webcam sous linux pour msn est encore un peu jeune et vient tout juste d'être ajouté à amsn (la version avec webcam doit être disponible sur les distributions récentes). La dernière fois que j'ai testé, ça fonctionnait mais ça avait tendance à planter au bout de quelques minutes... Gageons que cela s'est amélioré depuis. Une autre alternative est Mercury. Là pas de plantage. Par contre impossible d'ajouter un contact avec la version testé, ça bug, allez savoir pourquoi. Bref pour avoir quelque chose de vraiment stable, il faut attendre encore un peu.

Il reste Netmeeting (Netmeeting est le programme de visioconférence le plus utilisé sous Windows). Sous linux, il suffit d'installer gnomemeeting, disponible sur quasiment toute les distributions, de régler les périphériques audio et vidéo via le menu "Préférences" et ça fonctionne. Aucun problème de ce coté-ci.

© 2004-2006 ArSuniK. Tous droits réservés.
Contenu revu le 14 juillet 2008