Motion
Pré-requis
- Disposer des droits d'administration.
- Disposer d'une connexion à Internet configurée et activée.
- Avoir activé les dépôts Universe.
- Avoir une webcam qui fonctionne.
Pour vérifier l'installation de votre webcam saisir dans un terminal :
gstreamer-properties
dans Video/Test, le test devrait afficher l'image de votre webcam.
Installation
Il suffit d'installer le paquet motion
Lancement automatique
Par défaut, le daemon motion n'est pas activé/démarré.
Si l'on veut l'activer, il faut mettre à 'Yes' la variable start_motion_daemon dans le fichier /etc/default/motion.
En mode utilisateur (hors daemon), le mieux est de copier le fichier /etc/motion/motion.conf dans son propre dossier personnel. Dans un terminal :
cp /etc/motion/motion.conf ~/
Configuration de base pour une webcam
Reportez-vous au fichier /usr/share/motion/exjamples/motion-dist.conf ou au site du développeur http://www.lavrsen.dk/foswiki/bin/view/Motion/ConfigFileOptionsr
Maintenant nous allons éditer le fichier motion.conf
Les variables sont nombreuses et relativement bien expliquées en lignes de commentaires.
Les principaux paramètres a changer sont : target_dir, width & height (résolution). Les remplacer par les valeurs de votre choix.
Voici un exemple de motion.conf :
daemon off
process_id_file /var/run/motion/motion.pid
setup_mode off
videodevice /dev/video0
v4l2_palette 8
input 8
norm 0
frequency 0
rotate 0
width 640
height 480
framerate 2
minimum_frame_time 0
netcam_tolerant_check off
auto_brightness off
brightness 0
contrast 0
saturation 0
hue 0
roundrobin_frames 1
roundrobin_skip 1
switchfilter off
threshold 1500
threshold_tune off
noise_level 32
noise_tune on
despeckle EedDl
smart_mask_speed 0
lightswitch 0
minimum_motion_frames 1
pre_capture 0
post_capture 0
gap 60
max_mpeg_time 0
output_all off
output_normal on
output_motion off
quality 75
ppm off
ffmpeg_cap_new on
ffmpeg_cap_motion off
ffmpeg_timelapse 0
ffmpeg_timelapse_mode daily
ffmpeg_bps 500000
ffmpeg_variable_bitrate 0
ffmpeg_video_codec swf
ffmpeg_deinterlace off
snapshot_interval 0
locate off
text_right %Y-%m-%d\n%T-%q
text_changes off
text_event %Y%m%d%H%M%S
text_double off
target_dir /tmp/motion
snapshot_filename %v-%Y%m%d%H%M%S-snapshot
jpeg_filename %v-%Y%m%d%H%M%S-%q
movie_filename %v-%Y%m%d%H%M%S
timelapse_filename %Y%m%d-timelapse
webcam_port 8081
webcam_quality 50
webcam_motion off
webcam_maxrate 1
webcam_localhost off
webcam_limit 0
control_port 8080
control_localhost on
control_html_output on
track_type 0
track_auto off
track_motorx 0
track_motory 0
track_maxx 0
track_maxy 0
track_iomojo_id 0
track_step_angle_x 10
track_step_angle_y 10
track_move_wait 10
track_speed 255
track_stepsize 40
quiet on
sql_log_image on
sql_log_snapshot on
sql_log_mpeg off
sql_log_timelapse off
sql_query insert into security(camera, filename, frame, file_type, time_stamp, event_time_stamp) values('%t', '%f', %q', '%n', '%Y-%m-%d %T', '%C')
Ici, les mouvements détectés par la webcam seront sauvegardés au format swf, résolution 640x480 dans le répertoire /tmp/motion.
Le flux video de la webcam sera accessible par tous (webcam_localhost off) sur le port 8081.
Pour démarrer le processus :
motion -c motion.conf
Mettre en place une vidéosurveillance à distance
Grâce à Motion et Dropbox
« Vidéosurveiller son domicile », c'est bien, mais encore faut-il pouvoir consulter les images simplement et rapidement, de l'extérieur de votre réseau ! Je vous propose donc un petit tutoriel, très simple, qui vous permettra de consulter les images de votre système de surveillance depuis votre smartphone ou tout ordinateur connecté à Internet.
La démarche ci-dessous a été testée sur Ubuntu 12.04 et sur Debian Wheezy 7.1.
Ce qu'il vous faut
- Votre ordinateur (avec Ubuntu ou Debian),
- Une webcam fonctionnant avec votre ordinateur,
- Votre smartphone,
- Un compte Dropbox valide.
Ce qu'il faut faire
- Installez Motion sur votre ordinateur.
- Configurez Motion (avec les droits d'administration,modifiez /etc/motion/motion.conf, comme indiquez plus haut) : personnellement, en plus des réglages basiques, j'ajoute de réaliser 1 capture d'image toutes les demi-heures (cela peut s'avérer très pratique si la détection de mouvement ne détecte pas quelque chose) : avec les
- Installer Dropbox sur votre ordinateur comme indiqué ici : https://www.dropbox.com/install2
- Une fois l'installation de Dropbox réalisée, un dossier nommé « Dropbox » est créé dans votre dossier personnel : il vous faut maintenant indiquer à Motion (en modifiant la cible de destination des images enregistrées de Motion dans le fichier motion.conf à la ligne : « target_dir ») d'enregistrer les images dans ce nouveau dossier « Dropbox ».
- Enfin, installez Dropbox sur votre smartphone et synchronisez-le.
La mise en route de la vidéosurveillance
- Démarrez Dropbox sur votre ordinateur :
$ ~/.dropbox-dist/dropboxd
- Démarrer Motion
sudo motion -c /etc/motion/motion.conf
Désormais, vos images enregistrées dans le dossier Dropbox sont automatiquement sauvegardées en lignes vers votre stockage Dropbox ! Il ne vous reste plus qu'à les consulter quand vous le souhaitez avec votre smartphone !
Autres méthodes
Description à venir.
Problèmes connus
Erreur de segmentation, support ioctl
Si vous avez une erreur de segmentation au lancement, essayez avec :
LD_PRELOAD=/usr/lib/libv4l/v4l2convert.so motion -c motion.conf
Cette commande peux résoudre suur certaines machines , l'erreur ci dessous : VIDIOC_G_JPEGCOMP not supported but it should be (does your webcam driver support this ioctl?)
http://www.lavrsen.dk/foswiki/bin/view/Motion/SupportQuestion2009x01x20x183230
Unable to find a palette format
Si votre webcam fonctionne avec d'autres logiciels (cheese etc…) mais pas avec motion, et que l'on a une erreur du type "unable to find a palette format", la commande suivante peut résoudre ce problème :
LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so motion:
Attention sous Ubuntu 14.04 LTS la commande est la suivante
LD_PRELOAD=/usr/lib/i386-linux-gnu/libv4l/v4l1compat.so motion
Sous Ubuntu 16.04 LTS pour une architecture 64bits la commande est la suivante
LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libv4l/v4l1compat.so motion