Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 04/07/2008, à 11:41

tcherny86

Service de surveillance par webcam

Webcam est un programme qui capture des images et les envois vers un serveur.

Installation

$ sudo apt-get install webcam

Exemple de fichier de configuration : ~/.webcamrc

[grab]
       device = /dev/video0
       text = "webcam %Y-%m-%d %H:%M:%S"
       infofile = filename
       fg_red = 255
       fg_green = 255
       fg_blue = 255
       width = 320
       height = 240
       delay = 3
       wait = 0
       input = composite1
       norm = pal
       rotate = 0
       top = 0
       left = 0
       bottom = -1
       right = -1
       quality = 75
       trigger = 0
       once = 0

       [ftp]
       host = www
       user = webcam
       pass = xxxxxx
       dir  = public_html/images
       file = webcam.jpeg
       tmp  = uploading.jpeg
       passive = 1
       debug = 0
       auto = 0
       local = 0
       ssh = 0

Pour avoir des explications concernant les paramètres du fichier de configuration :
http://www.lea-linux.org/cached/index/S … ebcam.html

Exécution du programme

Tout simplement,

$ webcam

Mise en place en tant que service

Copier le fichier de configuration dans /etc/webcam.conf

$ sudo cp ~/.webcamrc /etc/webcam.conf

Création du script /etc/init.d/webcam

#! /bin/sh
### BEGIN INIT INFO
# Provides:          webcam
# Required-Start:    $local_fs $remote_fs
# Required-Stop:     $local_fs $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      S 0 1 6
# Short-Description: Server for the webcam 
# Description:       captures images and uploads them to a Web-Server
#                    via ftp or ssh in a endless loop.
### END INIT INFO

# Author: tcherny <tcherny@free.fr>

# Do NOT "set -e"

# PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH=/usr/sbin:/usr/bin:/sbin:/bin
DESC="the Webcam daemon"
NAME=webcam
DAEMON=/usr/bin/$NAME
DAEMON_ARGS="/etc/webcam.conf"
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0

# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && . /etc/default/$NAME

# Load the VERBOSE setting and other rcS variables
[ -f /etc/default/rcS ] && . /etc/default/rcS

# Define LSB log_* functions.
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
. /lib/lsb/init-functions

#
# Function that starts the daemon/service
#
do_start()
{
        # Return
        #   0 if daemon has been started
        #   1 if daemon was already running
        #   2 if daemon could not be started
        #   3 if no grabber device available
        log_daemon_msg "Starting $DESC" "$NAME"
        DEVICE_PARAM=$(grep device $DAEMON_ARGS)
        DEVICE=${DEVICE_PARAM##*\ }
        [ -e $DEVICE ] || ( echo "the video device is missing : $DEVICE" ; return 3 )
        start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
                || return 1
        start-stop-daemon --start --quiet --pidfile $PIDFILE --make-pidfile --background --exec $DAEMON -- \
                $DAEMON_ARGS  > /dev/null 2>&1 \
                || return 2
        # Add code here, if necessary, that waits for the process to be ready
        # to handle requests from services started subsequently which depend
        # on this one.  As a last resort, sleep for some time.
}

#
# Function that stops the daemon/service
#
do_stop()
{
        # Return
        #   0 if daemon has been stopped
        #   1 if daemon was already stopped
        #   2 if daemon could not be stopped
        #   other if a failure occurred
        log_daemon_msg "Stopping $DESC" "$NAME"
        start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
        RETVAL="$?"
        [ "$RETVAL" = 2 ] && return 2
        # Wait for children to finish too if this is a daemon that forks
        # and if the daemon is only ever run from this initscript.
        # If the above conditions are not satisfied then add some other code
        # that waits for the process to drop all resources that could be
        # needed by services started subsequently.  A last resort is to
        # sleep for some time.
        start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
        [ "$?" = 2 ] && return 2
        # Many daemons don't delete their pidfiles when they exit.
        rm -f $PIDFILE
        return "$RETVAL"
}

#
# Function that sends a SIGHUP to the daemon/service
#
do_reload() {
        #
        # If the daemon can reload its configuration without
        # restarting (for example, when it is sent a SIGHUP),
        # then implement that here.
        #
        start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
        return 0
}

case "$1" in
  start)
        [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
        do_start
        case "$?" in
                0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
                2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
        esac
        ;;
  stop)
        [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
        do_stop
        case "$?" in
                0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
                2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
        esac
        ;;
  #reload|force-reload)
        #
        # If do_reload() is not implemented then leave this commented out
        # and leave 'force-reload' as an alias for 'restart'.
        #
        #log_daemon_msg "Reloading $DESC" "$NAME"
        #do_reload
        #log_end_msg $?
        #;;
  restart|force-reload)
        #
        # If the "reload" option is implemented then remove the
        # 'force-reload' alias
        #
        log_daemon_msg "Restarting $DESC" "$NAME"
        do_stop
        case "$?" in
          0|1)
                do_start
                case "$?" in
                        0) log_end_msg 0 ;;
                        1) log_end_msg 1 ;; # Old process is still running
                        *) log_end_msg 1 ;; # Failed to start
                esac
                ;;
          *)
                # Failed to stop
                log_end_msg 1
                ;;
        esac
        ;;
  *)
        #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
        echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
        exit 3
        ;;
esac

Lancement / Arrêt

$ sudo /etc/init.d/webcam start
$ sudo /etc/init.d/webcam stop

Pour un démarrage automatique

$ sudo update-rc.d webcam defaults

big_smile vous êtes filmé !!!

#2 Le 05/07/2008, à 15:24

d.xav

Re : Service de surveillance par webcam

Super, ce truc !

J'ai essayé la version "programme simple" c'est-à-dire sans le service. Ca marche impeccable même sur mon site web free.
Par contre j'ai dû changer le paramètre input:

device = /dev/video1

parce que sur /dev/video0 j'ai ma carte télé. J'ai identifié le fichier correspondant à ma webcam avec

$ xawtv -hwscan

Pour ma webcam Logitech QuickCam Pro 4000, j'ai dû changer les paramètres input et norm :

input = usb
norm = webcam

J'ai identifié ces paramètres avec la commande:

$ v4lctl -c /dev/video1 list

Hors ligne

#3 Le 07/07/2008, à 12:26

Pingu63

Re : Service de surveillance par webcam

Salut je vient de regarder dans les depot et il existe deux logiciel qui semble faire la même chose, webcamd et webcam-serveur, je n'ai pas le temps de chercher comment il fonctionne, mais il semble qu'il n'y a pas besoin de créer de script pour leur exécution vu qu'il s'agit de démon.

Merci pour ton tuto qui est très intéressent.

Pingu

Hors ligne

#4 Le 08/07/2008, à 12:35

tcherny86

Re : Service de surveillance par webcam

Pingu63 a écrit :

Salut je vient de regarder dans les depot et il existe deux logiciel qui semble faire la même chose, webcamd et webcam-serveur, je n'ai pas le temps de chercher comment il fonctionne, mais il semble qu'il n'y a pas besoin de créer de script pour leur exécution vu qu'il s'agit de démon.

Merci pour ton tuto qui est très intéressent.

Pingu

Oui j'avais vu également ces alternatives.
Mais le problème c'est qu'à l'installation de webcamd, il veux également m'installer le serveur X ; or ça ne m'intéressait pas car je suis sur une ubuntu server.
Quant à webcam-server, à vérifier, mais je crois qu'il ne fait pas d'envoi FTP. Il faut un applet java pour interroger le serveur. C'est une utilisation différente.

Le fonctionnement de  webcam (tout court) m'intéressait beaucoup plus personnellement, mais il me manquait justement le fonctionnement en "service".

Voilà

#5 Le 21/07/2008, à 11:35

MiNiShOoTeR

Re : Service de surveillance par webcam

Salut à tous! smile

Merci pour le tuto mais est-ce qu'il est possible de transferer les clichés dans un dossier local quelconque plutôt que sur un serveur FTP?

Je demande sa car je ne possède pas de FTP et ne connait aucun moyen d'en avoir un... sad
(Meme après avoir recherché c'est pas gagné... :S )

Merci d'avance!

EDIT : Si je supprime carrément la section FTP dans la config, les cliché seront uniquement archivés et je les aurais sur l'ordi non? J'essai tout de suite! big_smile
Apparement sa ne marche pas... si quelqu'un a une solution je suis preneur! smile

Dernière modification par MiNiShOoTeR (Le 21/07/2008, à 12:00)

Hors ligne

#6 Le 21/07/2008, à 19:31

-Remaille-

Re : Service de surveillance par webcam

Pour le ftp, tu peux t'inscrire à un accès gratuit bas débit chez free, ils vont t'envoyer un kit de connexion et tes pass. Tu pourras ensuite créer un ftp de 10Go, gratos wink
(si tu n'es pas déja chez free... car sinon il suffit d'activer ton compte pour les pages perso)

Hors ligne

#7 Le 22/07/2008, à 19:06

MiNiShOoTeR

Re : Service de surveillance par webcam

Ok merci Remaille, je vais faire sa! big_smile

Hors ligne

#8 Le 25/07/2008, à 14:19

tcherny86

Re : Service de surveillance par webcam

MiNiShOoTeR a écrit :

Merci pour le tuto mais est-ce qu'il est possible de transferer les clichés dans un dossier local quelconque plutôt que sur un serveur FTP?

Pour répondre à cette question, regarde du côté de l'option 'local' de la section ftp du fichier de configuration. Elle permet de désactiver le transfert et de stocker les clichés en local.

Regarde la section [ftp] de cette page :
http://www.lea-linux.org/cached/index/S … ebcam.html

#9 Le 01/12/2008, à 01:38

missou

Re : Service de surveillance par webcam

Bonjour,

C'est vraiment superbe ce tuto, je ne suis vraiment pas une "pro" dans le monde linux, mais ceci, je le comprend!
Les prises photos, ça fonctionne, et ça s'enregistre dans un dossier  en locale (avec archive smile mais pour le ftp, j'obtiens:

moi@kubuntu:~$ webcam
reading config file: /home/moi/.webcamrc
/home/moi/.webcamrc:24: syntax error
video4linux webcam v1.5 - (c) 1998-2002 Gerd Knorr
grabber config:
  size 320x240 [none]
  input usb, norm webcam, jpeg quality 75
  rotate=0, top=0, left=0, bottom=240, right=320
compare: max=30,avg=10
compare: max=39,avg=10

la ligne 24, dans mon fichier est:

host = monsiteweb.com

alors heu... j'ai aussi essayé avec l'adresse ip de mon site, avec le www. ou le http://www. devant l'adresse normal  mais j'obtiens toujours le syntax error...

Quelqu'un sait ce qu'il faut faire pour corriger cela ?

Merci

#10 Le 03/12/2008, à 18:09

missou

Re : Service de surveillance par webcam

missou a écrit :

Bonjour,
(...)
alors heu... j'ai aussi essayé avec l'adresse ip de mon site, avec le www. ou le http://www. devant l'adresse normal  mais j'obtiens toujours le syntax error...

C'est réglé... il suffisait de refaire le copier coller avec les données du tuto, puis mes paramètres et maintenant, ça fonctionne smile