Contents
Motion
Motion est un petit utilitaire qui permet grâce à une webcam de faire de la détection de mouvement. Motion se chargera de deux choses:
- diffuser de manière continue le flux vidéo sur un mini serveur web
- enregistrer les moments où il y a du mouvement et les coller "bout à bout" pour ainsi créer plusieurs petites vidéos.
On obtient ainsi un système de vidéo-surveillance avec enregistrement des moments "intéressants".
Mise en place de base
Installation
aptitude install motion
Les fichiers de configuration de se trouve dans /etc/motion/
Suivant l'utilisation, il est également possible de placer un fichier de configuration dans son répertoire utilisateur: /home/$USER/.motion.conf en recopiant le fichier de configuration par défaut par exemple /etc/motion/motion.conf
Configuration
Le fichier de configuration par défaut regorge d'options bien commentées. Pour une utilisation basique on peut commencer par vérifier les paramètres suivants:
# Démarrer le daemon (tâche de fond) et redonner la main sur le terminal daemon on/off # Le périphérique de capture (généralement /dev/videoX) videodevice /dev/video0 # Largeur de l'image capturée (pixel). Dépend de la caméra utilisée width 640 # Hauteur de l'image capturée (pixel). height 480 # Nombre d'images capturées par seconde. Plus ce nombre est grand plus l'image sera fluide, mais plus la taille prise par les enregistrements sera grande et votre débit (dans le cas d'une utilisation sur internet) devra être important. framerate 5 # Règle la sensibilité de la détection de mouvement: nombre de pixels qui doivent changer entre deux images (plus la valeur est faible plus la détection sera sensible) threshold 1500 # Utiliser ffmpeg pour encoder les vidéos mpeg en temps réel ffmpeg_cap_new on # Format des vidéos enregistrées. Le mpeg4 produira des fichiers .avi mais d'autres formats sont disponibles. ffmpeg_video_codec mpeg4 # Emplacement où seront enregistrées les vidéos et les photos target_dir /tmp/motion # Port de diffusion de la vidéo pour le mini serveur http webcam_port 8081 # Nombre d'images affichées par secondes pour la diffusion de la vidéo (voir framerate ci-dessus). webcam_maxrate 5 # Restreindre le serveur web à la machine (passer à off pour autoriser les connections depuis les autres machines du réseau). webcam_localhost off
Lancer motion
Simplement:
motion
ou:
motion -c /emplacement/fichier/configuration
Tester
Ouvrir un navigateur internet et se connecter à
http://ip_publique:8081 (après avoir correctement configuré votre routeur avec la redirection de port)
Avancé
Démarrage automatique
Pour que le daemon de Motion se lance au démarrage de la machine, il suffit de placer la variable start_motion_daemon à yes dans le fichier /etc/default/motion:
root@machine ~# cat /etc/default/motion # set to 'yes' to enable the motion daemon start_motion_daemon=yes
Plusieurs webcams
Comme indiqué à la fin du fichier de configuration (en commentaire), il est possible d'utiliser plusieurs webcam en même temps en utilisant un thread par webcam. Il faut donc un fichier de configuration pour chaque thread qui contiendra les paramètres qui différencient chaque webcam (le matériel, le port de diffusion, ...).
thread.conf
Exemple de fichier de configuration pour un thread:
root@machine ~# cat /etc/motion/thread/thread1.conf # Obligatoirement différent videodevice /dev/video1 input 8 # Texte à afficher text_left Camera numero 1 # Répertoire de stockage target_dir /tmp/motion # Port de diffusion webcam_port 8082
motion.conf
Et les modifications à apporter à la fin du fichier de configuration principal de Motion (pour respecter les différentes parties du fichier):
root@machine ~# cat /etc/motion/motion.conf thread /etc/motion/thread/thread1.conf thread /etc/motion/thread/thread2.conf
Intégration dans un autre serveur web
Motion fournit certes un mini serveur web qui fait parfaitement ce qui lui est demandé. Mais dans le cas d'une connection à travers internet il peut lui manquer quelques petites choses, surtout au niveau sécurité.
Toute fois, un petit applet java est disponible et permet d'écouter du flux sur un port et de le diffuser dans une page web: Cambozola.
- Télécharger l'archive disponible sur le site.
Copier le fichier cambozola-0.92/dist/cambozola.jar à l'endroit ou se trouve la page web
Intégrer le code suivant dans votre page web:
<applet code=com.charliemouse.cambozola.Viewer archive=cambozola.jar width="640" height="480" style="border-width:1; border-color:gray; border-style:solid;"> <param name=url value="http://ip_machine:8081"> </applet>
- Lancer motion et admirer le résultat intégré dans votre page web.
- Testé avec Apache2 et Nginx. C'est fonctionnel pour les deux.