{{tag>matériel webcam domotique sécurité vidéosurveillance}} ---- ====== 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 ===== * Disposer des [[:sudo|droits d'administration]]. * Disposer d'une connexion à Internet configurée et activée. * Avoir activé les [[:depots#universe_et_multiverse|dépôts Universe]]. * Avoir une [[:Webcam|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'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt://motion|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]] : sudo cp /etc/motion/motion.conf ~/ Puis, mettre les bons droits : sudo chown $USER ~/motion.conf ==== Configuration de base pour une webcam ==== ATTENTION: la syntaxe utilisée dans **cet exemple n'est plus valide**. La dernière version de //motion// apporte un nombre très important de changements. Reportez-vous au fichier /usr/share/motion/examples/motion-dist.conf ou au site du développeur [[http://www.lavrsen.dk/foswiki/bin/view/Motion/ConfigFileOptions]]r Maintenant nous allons [[:tutoriel:comment_editer_un_fichier|é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, **[[apt://cheese|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 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 ===== Voir aussi ===== * [[http://www.lavrsen.dk/twiki/bin/view/Motion/WebHome|Site officiel de Motion]] * qmotion :http://slist.lilotux.net/linux/qmotion/index_fr.html qui fait entre autre l'envoi ftp. * Kmotion avec interface web http://kmotion.eu/mediawiki/index.php/Main_Page ----