Ceci est une ancienne révision du document !


Motion

Motion est un logiciel de détection video et qui permet de diffuser un flux video via http. Il est une solution simple pour diffuser le flux de sa webcam en ligne, ou de détecter des mouvements dans le champ d'une caméra par exemple.

Pré-requis : 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 cam.

Après avoir activé les dépôts Universe, il vous suffira d'installer le paquet motion

Suite a l'installation par défaut, les fichiers de configuration se trouvent sous /etc/motion/

Note : les packages par défaut ne contiennent pas les codecs les plus classiques comme "mpeg4", pour cela il faut installer spécifiquement

sudo apt-get install libavcodec-unstripped-52 libavdevice-unstripped-52 libavformat-unstripped-52 libavutil-unstripped-49 libpostproc-unstripped-51 libswscale-unstripped-0 ffmpeg

Lancement automatique

Par défaut, le dameon motion n'est pas activé/démarré.

Si l'on veut l'activer, il faut mettre a '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 home dir.

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

Puis, mettre les bon 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
  • motion.1249994227.txt.gz
  • Dernière modification: Le 11/08/2009, 14:37
  • par pywy