Contenu | Rechercher | Menus

Motion

Motion est un logiciel de détection vidéo et qui permet de diffuser un flux vidéo via internet par le protocole HTTP. C'est une solution simple pour diffuser le flux de sa webcam en ligne ou pour détecter des mouvements dans le champ d'une caméra par exemple.

Pré-requis

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

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 :

sudo cp /etc/motion/motion.conf ~/

Puis, mettre les bons droits :

sudo chown $USER ~/motion.conf

Configuration de base pour une webcam

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')

Pour connaitre les résolutions supportées, ou tout simplement pour tester sa webcam, cheese est un bon candidat.

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

Configuration pour plusieurs webcams

Lorsque plusieurs webcams sont utilisées, il faut dédier un fichier threadN.conf par webcam.

A la fin du fichier motion.conf, rajouter une ligne par webcam.

thread /chemin_jusque_fichier_thread.conf

Chaque fichier thread.conf reprend des paramètres du motion.conf qu'il va forcer pour chacune des webcams. Bien renseigner le paramètre videodevice qui doit etre different pour chaque fichier thread.conf.

Par défaut, les scripts de post-capture et de pré-capture /usr/local/motion-extras/ ne sont pas fournis lors de l'installation du paquet motion.

Exemple de fichier thread.conf

videodevice /dev/video1
input 8
text_left CAMERA COULOIR 1
target_dir /tmp/motion
webcam_port 6881

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 (via le fichier 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) :
$ sudo gedit /etc/motion/motion.conf 
  • 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 

Vérifiez à cet instant que vos photographies sont bien enregistrées automatiquement dans le dossier « Dropbox ». si ce n'est pas le cas, vérifier votre fichier de configuration 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 sur 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

Voir aussi



Le contenu de ce wiki est sous licence : CC BY-SA v3.0