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