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 26/07/2010, à 12:52

alexrtou

Mise en place d'un serveur de vidéo surveillance (utilisant motion)

1- Présentation
Dans ce post, je souhaitais regrouper toutes mes recherches sur le sujet de la vidéo surveillance.
Et tenter de proposer une méthode pour une installation complète et fonctionnelle, vu que c'est celle que j'utilise !

Voici ce que permet de faire cette installation :
- Il s'agit d'un serveur dédié à la vidéo survaillance domestique.
- Branché en wifi pour permettre de le positionner n'importe où dans la maison.
- Motion est utilisé pour capturer des photos (2 par seconde) lorsqu'un mouvement est détecté.
- Ces photos sont, au fur et à mesure, sauvées sur un serveur distant.
- Lorsque la détection est terminée, un mail est envoyé pour prévenir.

2- install du serveur ubuntu
suivre l'install : aucun pb rencontré !
Version installée : ubuntu serveur 10.04LTS.

3- configuration du wifi :
En s'appuyant sur http://doc.ubuntu-fr.org/wpa.
Modifier le fichier /etc/network/interfaces par :

  # The primary network interface
  auto eth0
  iface eth0 inet dhcp
  
  auto wlan0
  iface wlan0 inet dhcp
  wpa-conf managed
  wpa-ap-scan 1
  wpa-scan-ssid 1
  wpa-ssid <nom de la connexion wifi>
  wpa-key-mgmt WPA-PSK
  wpa-psk <clé wap>

4- install du server ssh:
Ceci permet de continuer l'installation depuis un poste de bureau. Et de permettre de copier coller directement le code !
installez le paquet openssh-server sur le serveur.

sudo apt-get install openssh-server

Par défaut, il se lance au démarrage.
Il est désormais possible d'utiliser Putty pour se connecter à distance.
pour connaitre l'IP de connexion de serveur :

ifconfig

5- Install motion

sudo apt-get install motion

6- configurer les webcams en liens statiques
Pour éviter d'avoir un démarrage aléatoire d'une caméra sur l'ensemble de celles installées.
perso j'ai deux webcams. La détection est lancée à partir d'une seule.

voir http://doc.ubuntu-fr.org/webcam#conflit … v_ou_autre
créer le fichier /etc/udev/rules.d/83-duplicate_devs.rules

# Persistent symlinks for webcam and tuner
KERNEL=="video*", ATTRS{idProduct}=="c326", ATTRS{idVendor}=="0ac8", SYMLINK+="webcam-integree"
KERNEL=="video*", ATTRS{idProduct}=="0804", ATTRS{idVendor}=="046d", SYMLINK+="webcam-logitech"

modifier l'id product et vendor suivant votre matériel.

7- Installer les programmes à lancer par motion

sudo apt-get install mailutils
sudo apt-get install ssmtp

modifier /etc/ssmtp/ssmtp.conf qui permet d'envoyer simplement un email via gmail

#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
root=monmail@gmail.com

# The place where the mail goes. The actual machine name is required no
# MX records are consulted. Commonly mailhosts are named mail.domain.com
mailhub=smtp.gmail.com:587
UseSTARTTLS=YES

# Where will the mail seem to come from?
#rewriteDomain=

# The full hostname
hostname=video-surveillance

# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
#FromLineOverride=YES
AuthUser=<mon user Gmail (sans @gmail.com)>
AuthPass=<Mot de passe Gmail>
rewriteDomain=gmail.com

8- Personnaliser l'installation de motion

créer le répertoire et l'associer à l'utilisateur motion

cd /home
sudo mkdir motion
sudo chown motion motion
cd motion
sudo mkdir capture
sudo chown motion capture
sudo mkdir archives
sudo chown motion archives

Il peut être utile d'associer votre utilisateur/login au groupe de motion.

Remarque:
Motion est lancé en service par l'utilisateur root.
Mais il est nécessaire que les répertoires de travail soient associés à un utilisateur 'motion' !
Sans faire 'chown' ça ne marche pas !

créer le fichier /home/motion/detection.sh:
et lui donner les droits d'exécution :

touch /home/motion/detection.sh
chmod 770 /home/motion/detection.sh
chown motion /home/motion/detection.sh

A savoir sur ce programme :
* Avant l'heure de démarrage, les captures sont supprimées.
* Après l'heure de démarrage, le programme boucle tant qu'il trouve des captures.
* Les captures sont regroupées par jour.
* Et lorsqu'il n'y a plus rien à sauver, il envoie un mail et se termine.
* gap=10 de motion.conf défini le temps minimum pour son prochain lancement.
* Il ne peut pas y avoir plusieurs instances de detection.sh en simultané.

#!/bin/sh
ARCHIVE=`date '+%Y%m%d'`
MOTN='/home/motion'
LOG=$MOTN/detection.log

HOST='ftpperso.sfr.fr'
PORT='21'
USER='monsite.perso.sfr.fr'
PASSWD='xxxxxxx'
SITE='http://monsite.perso.sfr.fr/mes-captures'

DELTA=360
START=`cat $MOTN/startdate.inf`
NOW=`date +"%s"`
AVANT=`expr $NOW - $DELTA`

securiser () {
if [ -d "$MONT/archives/$ARCHIVE" ]; then
 echo "$MOTN/archives/$ARCHIVE existe bien">>$LOG
else
 mkdir $MOTN/archives/$ARCHIVE
 mkdir $MOTN/archives/$ARCHIVE/tmp
ftp -i -n $HOST $PORT << EOF
quote USER $USER
quote PASS $PASSWD
cd motion-lin-capture/albulle/data/photos/motion
mkdir $ARCHIVE
quit
EOF

fi

rm -f $MOTN/capture/*.swf
mv $MOTN/capture/*.jpg $MOTN/archives/$ARCHIVE/tmp

ftp -i -n $HOST $PORT << EOF
quote USER $USER
quote PASS $PASSWD
cd mes-captures/$ARCHIVE
lcd $MOTN/archives/$ARCHIVE/tmp
mput *.jpg
quit
EOF
echo "uploaded files!" >>$LOG
date >> $LOG

mv $MOTN/archives/$ARCHIVE/tmp/*.jpg $MOTN/archives/$ARCHIVE

}

sleep 1
RUNNING=`pgrep detection.sh | wc -l`
echo $RUNNING >> $LOG
if [ $RUNNING -lt 3 ]; then
        echo date "-----start detection -----" >>$LOG
        date >> $LOG
        if [ $AVANT -gt $START ] ; then
           echo "detection demarree" >>$LOG
           date >> $LOG
                UPLOAD='FALSE'
                while [ $(ls $MOTN/capture/|wc|tr -d ' ') != "000" ]
                do
                        sleep 2
                        securiser
                        UPLOAD='TRUE'
                done
                if [ $UPLOAD = 'TRUE' ]; then
                  echo "des captures ont ete prises a la maison ! : $SITE"  | mailx -s "Surveillance" monmail@yahoo.fr
                  echo "mail au proprio" >>$LOG
                  date >> $LOG
                fi
        else
          rm -f $MOTN/capture/*.jpg
          echo "C pas l'heure" >>$LOG
        fi
        date >> $LOG
        echo "-----fin detection -----" >>$LOG
else
        echo "-----deja en cours de detection -----" >>$LOG
fi
# End of script

Paramétrer le script :
* MOTN='/home/motion' -> home de l'installation de la video surveillance
* LOG=$MOTN/detection.log  -> fichier de log du programme
* HOST='ftpperso.sfr.fr' -> FTP du site où son uploadées les images
* PORT='21' -> port du FTP
* USER='monsite.perso.sfr.fr' -> user du FTP
* PASSWD='xxxxxxx' -> mot de passe du FTP
* SITE='http://monsite.perso.sfr.fr/mes-captures' -> URL du site, pour information dans le mailenvoyé.
* DELTA=360 -> delta de démarrage de la vidéo surveillance. ''en secondes''.
* Définir le bon email pour l'envoi.

* Dans la connexion FTP du programme il manque le paramètre du répertoire distant où copier les images, il faut donc le mettre à jour... ou modifier le code pour le paramétrer :

ftp -i -n $HOST $PORT << EOF
...
cd mes-captures/$ARCHIVE
...
EOF

Je suis actuellement entrain de regarder une solution bis pour le FTP, qui a tendance à planter au bout de plusieurs jours...

Voici maintenant les modifications importantes de /etc/motion/motion.conf

# Start in daemon (background) mode and release terminal (default: off)
daemon on

# File to store the process ID, also called pid file. (default: not defined)
process_id_file /home/motion/motion.pid

# Videodevice to be used for capturing  (default /dev/video0)
# for FreeBSD default is /dev/bktr0
videodevice /dev/webcam-logitech
#videodevice /dev/webcam-integree

# Image width (pixels). Valid range: Camera dependent, default: 352
width 640

# Image height (pixels). Valid range: Camera dependent, default: 288
height 480

# Detect motion in predefined areas (1 - 9). Areas are numbered like that:  1 2 3
# A script (on_area_detected) is started immediately when motion is         4 5 6
# detected in one of the given areas, but only once during an event.        7 8 9
# One or more areas can be specified with this option. (Default: not defined)
area_detect 123456789

# Ignore sudden massive light intensity changes given as a percentage of the picture
# area that changed intensity. Valid range: 0 - 100 , default: 0 = disabled
lightswitch 30

# Gap is the seconds of no motion detection that triggers the end of an event
# An event is defined as a series of motion images taken within a short timeframe.
# Recommended value is 60 seconds (Default). The value 0 is allowed and disables
# events causing all Motion to be written to one single mpeg file and no pre_capture.
gap 10

# Target base directory for pictures and films
# Recommended to use absolute path. (Default: current working directory)
target_dir /home/motion/capture

# The mini-http server listens to this port for requests (default: 0 = disabled)
webcam_port 0

# File path for motion triggered images (jpeg or ppm) relative to target_dir
# Default: %v-%Y%m%d%H%M%S-%q
# Default value is equivalent to legacy oldlayout option
# For Motion 3.0 compatible mode choose: %Y/%m/%d/%H/%M/%S-%q
# File extension .jpg or .ppm is automatically added so do not include this
# Set to 'preview' together with best-preview feature enables special naming
# convention for preview shots. See motion guide for details
jpeg_filename %Y%m%d%H%M%S-%q

on_event_start /home/motion/detection.sh

9- Créer les raccourcis utiles

De manière générale les commandes suivantes sont à se rappeler.
Démarrer motion :

sudo service motion start

Stopper motion :

sudo service motion stop

Mais comme c'est bien plus simple de se créer des alias :
dans .bash_aliases du home de l'utilisateur classique (créé lors de l'install du serveur)

alias mocap='cd /home/motion'
alias moetc='sudo cd /etc/motion'
alias molog='sudo cat /var/log/syslog | grep motion'
alias morestart='sudo service motion restart'
alias mostart='sudo service motion start'
alias mostate='sudo ps -A | grep motion'
alias mostop='sudo service motion stop'

10- Petit script de nettoyage des logs

rm -fR /home/motion/archives/*
rm -fR /home/motion/capture/*
>/var/log/syslog

11- modifier le lanceur du service
fichier : /etc/init.d/motion :

case "$1" in
  start)
    if check_daemon_enabled ; then
        log_daemon_msg "Starting motion detection daemon : $NAME"
        if start-stop-daemon --start --oknodo --exec $DAEMON -b --chuid motion ; then
            DEVICE=`cat /etc/motion/motion.conf | grep "videodevice /dev" | awk -F" " '{print $2}'`
            log_daemon_msg "device utilise : $DEVICE"
            date +"%s" > /home/motion/startdate.inf
            rm -f /home/motion/detection.log
            log_end_msg 0
        else
            log_end_msg 1
            RET=1
        fi
    fi
    ;;

  stop)
    log_daemon_msg "Stopping motion detection daemon: $NAME"
    if start-stop-daemon --stop --oknodo --exec $DAEMON --retry 30 ; then
        # pour être sûr que tous les process soient bien arrétés ! Sinon, impossible de relancer motion correctement...
        pkill -9 detection.sh
        pkill -9 ftp
        log_end_msg 0
    else
        log_end_msg 1
        RET=1
    fi
    ;;

12- Préparer un site web de sauvegarde des captures
J'ai choisi Albulle1.2.1 : http://albulle.jebulle.net/
Car c'est un site qui ne prend pas beaucoup de place à l'install et il n'utilise pas de base de données.

Pour l'installation détaillée, les captures sont uploadées vers le répertoire distant /mes-captures/<Date du jour>.

13- tester
* Redémarrer le serveur et vous connecter. normalement motion devrait être démarré.
(en fonctionnement classique, il n'est pas utile de se connecter, c'est pour ça que motion est installé en service !)

Si motion n'a pas démarré (mostate), il vous faut vérifier la log (molog).
Elle vous apprendra probablement ce qui foire !
Le gros des problèmes que j'ai rencontré, sont des problèmes de droits (exécution et owner).

* Vous pourrez baisser le délai de démarrage à une 10ène de secondes (dans detection.sh). Ca permet de lancer et relancer motion facilement.

* suivre l'exécution du programme detection.sh par

tail -f /home/motion/detection.log

14- Ce qui manque
* Vous trouverez probablement quelques lignes parasites dans les scripts... Ce sont mes précédents essais.
Et se sera à nettoyer !
* Affiner les réglages de motion par exemple "lightswitch". Chez moi les changements de luminosités sont mon plus gros problème !
* Vous pourrez installer les drivers propriétaires, mais ceci dépend de votre matériel.

J'attend vos questions, retours, remarques et autres bonnes idées, et j'espère que ce post vous sera utile !

Dernière modification par alexrtou (Le 02/02/2011, à 15:09)


Linux il y a moins bien, mais c'est plus cher...

Hors ligne

#2 Le 03/08/2010, à 19:26

l e . n o x

Re : Mise en place d'un serveur de vidéo surveillance (utilisant motion)

Tres intéressent, je m'abonne ;O)
Merci alexrtou pour le partage

Je viens de tester la procédure, je bute sur la mise en marche de motion:

11- modifier le lanceur du service

sudo nano /etc/init.d/motion
#! /bin/sh -e
#
# /etc/init.d/motion: Start the motion detection
#
### BEGIN INIT INFO
# Provides:	  motion
# Required-Start: $local_fs $syslog
# Required-Stop:
# Default-Start:  2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start Motion detection
# Description: loads motion and assigns privileges
### END INIT INFO

# Ported to new debian way using sh and /lib/lsb/init-functions
# by Angel Carpintero <ack@telefonica.net>

NAME=motion
PATH=/bin:/usr/bin:/sbin:/usr/sbin
DAEMON=/usr/bin/motion
PIDFILE=/var/run/motion/$NAME.pid

ENV="env -i LANG=C PATH=/usr/local/bin:/usr/bin:/bin"

. /lib/lsb/init-functions

test -x $DAEMON || exit 0

running() {
    if [ -f ${PIDFILE} ]; then
        pidof $NAME
    fi
}

case "$1" in
  start)
    if check_daemon_enabled ; then
        log_daemon_msg "Starting motion detection daemon : $NAME"
        if start-stop-daemon --start --oknodo --exec $DAEMON -b --chuid motion ; then
            DEVICE=`cat /etc/motion/motion.conf | grep "videodevice /dev" | awk -F" " '{print $2}'`
            log_daemon_msg "device utilise : $DEVICE"
            date +"%s" > /home/motion/startdate.inf
            rm -f /home/motion/detection.log
            log_end_msg 0
        else
            log_end_msg 1
            RET=1
        fi
    fi
    ;;

  stop)
    log_daemon_msg "Stopping motion detection daemon: $NAME"
    if start-stop-daemon --stop --oknodo --exec $DAEMON --retry 30 ; then
        log_end_msg 0
    else
        log_end_msg 1
        RET=1
    fi
    ;;

  status)
    RUNNING=$(running)
    if [ -n "$RUNNING" ]; then
        log_success_msg "$NAME is running"
        exit 0
    else
        log_success_msg "$NAME is not running"
        exit 3
    fi

    ;;  
    
  reload-config)
    log_action_begin_msg "Reloading $NAME configuration"
    if start-stop-daemon --stop --signal HUP --exec $DAEMON; then
        log_action_end_msg 0
    else
        log_action_end_msg 1
    fi
    ;;

  restart-motion)
    log_daemon_msg "Restarting $NAME"
    $0 stop
    $0 start
    ;;

  restart|force-reload)
    $0 restart-motion
    exit $?
    ;;

  *)
    echo "Usage: /etc/init.d/$NAME {start|stop|status|reload-config|restart|force-reload}" >&2
    exit 1
    ;;
esac

exit 0

J'ai l'impression que l'erreur viens d'ici pour ma config.
Ubuntu Serveur 10.4 | funambol | LAMP | Pure-FTP | CUPS | SAMBA

suite à un 

sudo service motion start

j'obtiens :

motion: unrecognized service

Peux tu mettre l'intégralité du fichier /etc/init.d/motion dans la procédure ?

Bonne soirée

Dernière modification par l e . n o x (Le 03/08/2010, à 20:34)


Zik Fan : " Vous seul savez mieux que quiconque comment organiser votre bibliothèque musicale ! "

Linux, y a moins bien.
Mais c'est plus cher. ;O)

Hors ligne

#3 Le 04/08/2010, à 08:32

alexrtou

Re : Mise en place d'un serveur de vidéo surveillance (utilisant motion)

Salut,

Je n'ai jamais rencontré ce pb...
Ce que je te suggère :
- essaies de croiser les infos avec

sudo cat /var/log/syslog | grep motion

on sait jamais !
- reviens sur la conf d'origine de motion, et essaies de le démarrer manuellement. commande :

motion

- dans motion.conf passes

daemon on

et tentes de le démarrer en service.

sudo service motion start

- en dernier recours... réinstaller motion.

remarque :
Je n'ai pas le code sous les yeux mais je ne crois pas avoir modifié autre chose dans /etc/init.d/motion, justement pour limiter les risques d'erreurs !
Il te faut repartir de l'installation de motion de base et y ajouter les options au fur et à mesure, quitte à déclencher un /home/motion/detection.sh qui ne fait que tracer une log.

je te poste /etc/init.d/motion dès que possible !

bye
Alex

Dernière modification par alexrtou (Le 04/08/2010, à 08:33)


Linux il y a moins bien, mais c'est plus cher...

Hors ligne

#4 Le 04/08/2010, à 20:28

l e . n o x

Re : Mise en place d'un serveur de vidéo surveillance (utilisant motion)

Bonsoir wink

voici quelques retours :

sudo apt-get purge motion
sudo rm /etc/init.id/motion
sudo apt-get install motion

Résultat semble OK :

Adding system user `motion' (UID 107) ...
Adding new user `motion' (UID 107) with group `motion' ...
Not creating home directory `/home/motion'.
Adding user `motion' to group `video' ...
Adding user motion to group video
Done.
 * Not starting motion daemon, disabled via /etc/default/motion

Traitement des actions différées (« triggers ») pour « libc-bin »...
ldconfig deferred processing now taking place
sudo nano /etc/default/motion

j'applique cette modif :

# set to 'yes' to enable the motion daemon
start_motion_daemon=yes

puis je demarre le service :

sudo service motion start

* Starting motion detection daemon : motion                             [ OK ]

J'applique la modif suivante apres avoir fait un Backup du fichier original :

sudo mv /etc/init.d/motion /etc/init.d/motion.BK
sudo nano /etc/init.d/motion

Fichier initial :

#! /bin/sh -e
#
# /etc/init.d/motion: Start the motion detection
#
### BEGIN INIT INFO
# Provides:	  motion
# Required-Start: $local_fs $syslog
# Required-Stop:
# Default-Start:  2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start Motion detection
# Description: loads motion and assigns privileges
### END INIT INFO

# Ported to new debian way using sh and /lib/lsb/init-functions
# by Angel Carpintero <ack@telefonica.net>
# Modify by : Juan Angulo Moreno <juan@apuntale.com>
#             Eddy Petrisor <eddy.petrisor@gmail.com>

NAME=motion
PATH_BIN=/bin:/usr/bin:/sbin:/usr/sbin
DAEMON=/usr/bin/motion
PIDFILE=/var/run/$NAME.pid
DEFAULTS=/etc/default/$NAME

ENV="env -i LANG=C PATH=$PATH_BIN"

. /lib/lsb/init-functions

test -x $DAEMON || exit 0

RET=0

[ -r "$DEFAULTS" ] && . "$DEFAULTS" || start_motion_daemon=yes


check_daemon_enabled () {
    if [ "$start_motion_daemon" = "yes" ] ; then
        return 0
    else
        log_warning_msg "Not starting $NAME daemon, disabled via /etc/default/$NAME"
        return 1
    fi

}


case "$1" in
  start)
    if check_daemon_enabled ; then
        log_daemon_msg "Starting motion detection daemon : $NAME"
        if start-stop-daemon --start --oknodo --exec $DAEMON -b --chuid motion ; then
            log_end_msg 0
        else
            log_end_msg 1
            RET=1
        fi
    fi
    ;;

  stop)
    log_daemon_msg "Stopping motion detection daemon: $NAME"
    if start-stop-daemon --stop --oknodo --exec $DAEMON --retry 30 ; then
        log_end_msg 0
    else
        log_end_msg 1
        RET=1
    fi
    ;;

  reload|force-reload)
    log_daemon_msg "Reloading $NAME configuration"
    if start-stop-daemon --stop --signal HUP --exec $DAEMON ; then
        log_end_msg 0
    else
        log_end_msg 1
        RET=1
    fi
    ;;

  restart-motion)
    if check_daemon_enabled ; then
        log_action_begin_msg "Restarting $NAME"
        if $0 stop && $0 start ; then
            log_action_end_msg 0
        else
            log_action_cont_msg "(failed)"
            RET=1
        fi
    fi
    ;;

  restart)
    $0 restart-motion
    ;;

  *)
    echo "Usage: /etc/init.d/$NAME {start|stop|restart|reload}"
    RET=1
    ;;
esac


exit $RET

Fichier modifier

#! /bin/sh -e
#
# /etc/init.d/motion: Start the motion detection
#
### BEGIN INIT INFO
# Provides:	  motion
# Required-Start: $local_fs $syslog
# Required-Stop:
# Default-Start:  2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start Motion detection
# Description: loads motion and assigns privileges
### END INIT INFO

# Ported to new debian way using sh and /lib/lsb/init-functions
# by Angel Carpintero <ack@telefonica.net>
# Modify by : Juan Angulo Moreno <juan@apuntale.com>
#             Eddy Petrisor <eddy.petrisor@gmail.com>

NAME=motion
PATH_BIN=/bin:/usr/bin:/sbin:/usr/sbin
DAEMON=/usr/bin/motion
PIDFILE=/var/run/$NAME.pid
DEFAULTS=/etc/default/$NAME

ENV="env -i LANG=C PATH=$PATH_BIN"

. /lib/lsb/init-functions

test -x $DAEMON || exit 0

RET=0

[ -r "$DEFAULTS" ] && . "$DEFAULTS" || start_motion_daemon=yes


check_daemon_enabled () {
    if [ "$start_motion_daemon" = "yes" ] ; then
        return 0
    else
        log_warning_msg "Not starting $NAME daemon, disabled via /etc/default/$NAME"
        return 1
    fi

}
case "$1" in
  start)
    if check_daemon_enabled ; then
        log_daemon_msg "Starting motion detection daemon : $NAME"
        if start-stop-daemon --start --oknodo --exec $DAEMON -b --chuid motion ; then
            DEVICE=`cat /etc/motion/motion.conf | grep "videodevice /dev" | awk -F" " '{print $2}'`
            log_daemon_msg "device utilise : $DEVICE"
            date +"%s" > /home/motion/startdate.inf
            rm -f /home/motion/detection.log
            log_end_msg 0
        else
            log_end_msg 1
            RET=1
        fi
    fi
    ;;

  stop)
    log_daemon_msg "Stopping motion detection daemon: $NAME"
    if start-stop-daemon --stop --oknodo --exec $DAEMON --retry 30 ; then
        log_end_msg 0
    else
        log_end_msg 1
        RET=1
    fi
    ;;


  reload|force-reload)
    log_daemon_msg "Reloading $NAME configuration"
    if start-stop-daemon --stop --signal HUP --exec $DAEMON ; then
        log_end_msg 0
    else
        log_end_msg 1
        RET=1
    fi
    ;;

  restart-motion)
    if check_daemon_enabled ; then
        log_action_begin_msg "Restarting $NAME"
        if $0 stop && $0 start ; then
            log_action_end_msg 0
        else
            log_action_cont_msg "(failed)"
            RET=1
        fi
    fi
    ;;

  restart)
    $0 restart-motion
    ;;

  *)
    echo "Usage: /etc/init.d/$NAME {start|stop|restart|reload}"
    RET=1
    ;;
esac


exit $RET

Sans la modif dans /etc/init.id/motion le service fonctionne (demarre) avec la modif du dessus il me gratifi d'un jolie :

sudo service motion start
motion: unrecognized service

Je poursuit le tuto sans la modif, puis je reviens ;O)

Bonne soirée @ +

Dernière modification par l e . n o x (Le 04/08/2010, à 20:33)


Zik Fan : " Vous seul savez mieux que quiconque comment organiser votre bibliothèque musicale ! "

Linux, y a moins bien.
Mais c'est plus cher. ;O)

Hors ligne

#5 Le 05/08/2010, à 08:36

alexrtou

Re : Mise en place d'un serveur de vidéo surveillance (utilisant motion)

Hello,
Je reste dispo ! tiens moi au courant.
Comme je disais dans le tuto initial, les plus gros soucis rencontrés viennent des droits d'accès (owner et exécution).
J'ai comparé le fichier init.d/motion, ils sont identiques !


Linux il y a moins bien, mais c'est plus cher...

Hors ligne

#6 Le 15/08/2010, à 19:50

l e . n o x

Re : Mise en place d'un serveur de vidéo surveillance (utilisant motion)

Bonsoir tongue

Voici la suite de la mise en route de "motion" sur un serveur 10.04 :
1) Installation

 sudo apt-get install motion

2) Configuration motion.conf

sudo nano /etc/motion/motion.conf

voici les modifs que j'ai effectuées :

width 640
height 480
webcam_port MONPORT(ex:8081)
webcam_localhost off
target_dir /home/MONUSER/www/Albulle/upload/albulle/data/photos/motion

3) Dossier de travail est gestion des droits (+rwx)

mkdir ~/www/Albulle/upload/albulle/data/photos/motion
sudo chmod a+rwx ~/www/Albulle/upload/albulle/data/photos/motion

Cette partie "gestion des droits" a besoin d'être optimisé, il serait intéressent de ne donner acces au dossier  ~/www/Albulle/upload/albulle/data/photos/motion
qu'a l'user motion et MONUSER et a Allbule.
4) Active le daemon motion :

sudo nano /etc/default/motion

modif suivante no en yes

# set to 'yes' to enable the motion daemon
start_motion_daemon=yes

5) on lance le service motion

sudo service motion start

6) On peut suivre le deroulement de motion dans le syslog :

sudo cat /var/log/syslog | grep motion

7) Visualiser votre webcam via explorateur web
http://ADRESSE_DE_VOTRE_SERVEUR_MOTION:LEPORT_CONFIGURER_DANS_MOTION_CONF/
(ex: http://192.168.1.10:8081/)

Quelques remarques : En effet "alexrtou" tu avais raison la gestions de droit sur le dossier de travail de motion n'a pas était simple.
j'ai rencontré des problèmes avec les driver V4L2, motion basculer ma webcam en V4L1 apres 2 heures de recherche seule solution reinstaller motion !!

Bonne soirée @ tous

Dernière modification par l e . n o x (Le 15/08/2010, à 19:53)


Zik Fan : " Vous seul savez mieux que quiconque comment organiser votre bibliothèque musicale ! "

Linux, y a moins bien.
Mais c'est plus cher. ;O)

Hors ligne

#7 Le 16/08/2010, à 12:43

alexrtou

Re : Mise en place d'un serveur de vidéo surveillance (utilisant motion)

Salut j'ai cru que tu avais abandonné, du coup c'est cool que tu sois arrivé à installer ton serveur !

Tu as rencontré pas mal de soucis avec ta webcam...
Perso, j'ai moins galéré car j'ai choisi la webcam (une Logitech C300) pour qu'elle soit complètement reconnue sous ubuntu.

Petite précision :
motion s'appuie sur le driver V2L (Video for linux). Or toutes les webcams ne le supportent pas...
voici un lien utile pour faire son choix :
http://doc.ubuntu-fr.org/webcam

Autre point, de mon côté j'ai pu créer les dossiers de travail sans avoir à fournir les droits RWX à tous (autres utilisateurs).
C'est donc possible d'optimiser ton install !

Enfin, c'est une bonne idée d'avoir paramétré motion pour voir les images via le réseau !
Je n'ai pas fait ça car j'ai un double boot. Ainsi je démarre la version desktop pour préparer
le cadrage de ma webcam, puis je reboote pour lancer le serveur. La plupart du temps ma webcam ne bouge pas donc no souçaï !

à bientôt pour tes impressions et/ou remarques !
Alex


Linux il y a moins bien, mais c'est plus cher...

Hors ligne

#8 Le 23/08/2010, à 03:20

funkalee

Re : Mise en place d'un serveur de vidéo surveillance (utilisant motion)

merci les gars pour ce topic

Hors ligne

#9 Le 23/08/2010, à 07:53

alexrtou

Re : Mise en place d'un serveur de vidéo surveillance (utilisant motion)

Avec plaisir ! wink


Linux il y a moins bien, mais c'est plus cher...

Hors ligne

#10 Le 17/12/2010, à 17:04

alexrtou

Re : Mise en place d'un serveur de vidéo surveillance (utilisant motion)

Petit update.

J'ai testé http://www.jbc-explorer.info comme site pour visualiser les images uploadées.
Et il me plait bien !

rapide et léger.


Linux il y a moins bien, mais c'est plus cher...

Hors ligne

#11 Le 03/01/2011, à 21:32

TraGiKomiK

Re : Mise en place d'un serveur de vidéo surveillance (utilisant motion)

je m'abonne et je teste des que j'en ai la possibilité big_smile


Merci de mettre [RESOLU] dans le titre de votre post une fois le  probleme reglé!

GNU/Linux -> \o/

Hors ligne

#12 Le 04/02/2011, à 15:37

alexrtou

Re : Mise en place d'un serveur de vidéo surveillance (utilisant motion)

Petite remarque / évolution :

Lors de l'arrêt de motion, j'ai ajouté
        pkill -9 detection.sh
        pkill -9 ftp

Le problème relevé était :
lors de l'arrêt avec une détection en cours, la détection en cours ne se termine plus. Lors de la relance du serveur, la détection ne démarrait précisait qu'un autre process est déjà en cours...

Désormais c'est de l'histoire ancienne !


Linux il y a moins bien, mais c'est plus cher...

Hors ligne

#13 Le 04/02/2011, à 16:02

alexrtou

Re : Mise en place d'un serveur de vidéo surveillance (utilisant motion)

Autre Bonus, le suivi régulier de votre serveur :

Pour envoyer un mail (et la PJ) sans installer de serveur :
sudo apt-get install uuencode

le script  ping.sh :

#!/bin/bash

ping -c 1 www.google.fr > /dev/null
TEST=$?

#echo '-------------------------'
#echo $TEST
#echo '-------------------------'
dt=`date`
if [ $TEST -ne 0 ]
    then
        echo "$dt pas de connexion" > /home/motion/etat.txt
        exit 0
    else
        echo "$dt internet OK" > /home/motion/etat.txt
        echo "etat de motion :" >> /home/motion/etat.txt
        ps -A | grep motion >> /home/motion/etat.txt
        
        (echo "Etat de la video surveillance le `date`" ; uuencode /home/motion/etat.txt etat.txt )| mailx -s "etat de la video surveillance internet " votre_mail@domaine.fr
        # ou
        # cat /home/motion/etat.txt | mailx -s "etat de la video surveillance " votre_mail@domaine.fr
fi


#echo "poursuite ..."

le cron :

sudo crontab -e

penser à modifier les chemins pour les mettre en absolu !

# ping toutes les 5 min
*/5 * * * * /home/motion/ping.sh
# mail toutes les 4h
0 */4 * * * /home/motion/ping.sh

enregistrer et quitter.

lancer cron par :

sudo start cron

ou le définir en service voir :

sudo sysv-rc-conf

en prenant exemple sur un autre logiciel lancé au démarrage c'est pas bien compliqué.

Dernière modification par alexrtou (Le 04/02/2011, à 16:04)


Linux il y a moins bien, mais c'est plus cher...

Hors ligne

#14 Le 20/03/2011, à 12:56

manu67

Re : Mise en place d'un serveur de vidéo surveillance (utilisant motion)

Bonjour,

Très intéressant ce fil. Savez si il est possible de définir une zone de détection précise ? (C'est pour une étude de papillon)

Hors ligne

#15 Le 22/03/2011, à 15:37

alexrtou

Re : Mise en place d'un serveur de vidéo surveillance (utilisant motion)

Salut,
Motion permet de définir 9 zones, comme ceci :
789
456
123

Tu peux également appliquer un masque, mais je ne l'ai pas testé.


Linux il y a moins bien, mais c'est plus cher...

Hors ligne

#16 Le 17/04/2012, à 21:56

pplecool

Re : Mise en place d'un serveur de vidéo surveillance (utilisant motion)

bonjour,

j'ai quelques petits soucis avec motion. le premier est que j'ai un

[: 80: -gt: argument expected

qui apparait en console apres que motion ait sauvegardé quelques images suite à une detection de mouvement.

si je traduis ça donne

[: 80: -gt: argument attendu

et je ne suis pas plus avancé ;-)

qu'est-ce que ça veut dire? y a t'il quelque chose qui cloche ou est-ce sans importance?

Hors ligne

#17 Le 13/02/2013, à 17:17

alexrtou

Re : Mise en place d'un serveur de vidéo surveillance (utilisant motion)

Salut à tous,
je fais un petit post pour dire que ce topic n'est plus maintenu...
Alex


Linux il y a moins bien, mais c'est plus cher...

Hors ligne