Mettez un manchot dans votre PC
On trouve de tout dans le domaine des caméras de surveillance à des prix plus ou moins abordables, elles sont généralement fournies avec un logiciel dédié propriétaire fonctionnant forcément sous windows, le fait de le faire fonctionner sous Linux ne permet pas toujours de pouvoir profiter pleinement de toutes leurs fonctionnalités, on se contentera du standard et toute l'intelligence logicielle étant déportée dans le logiciel de supervision.
Sans vouloir faire de la publicité pour telle ou telle marque, je cherchais une caméra IP pour la placer à l'extérieur, j'ai d'abord fait mon choix sur la marque Reolink, mais j'ai été incapable de la faire fonctionner sous Linux et même sous windows ! Et rien n'est fait de la part de ce constructeur pour les utilisateurs linux, donc retour à l'envoyeur et je me rabats sur la marque Annke.
Dans un cas comme un autre ces caméras IP sont alimentées via le câble Ethernet (PoE Power over Ethernet) et cela nécessite un routeur ou un adaptateur particulier comme celui qu'on peut voir sur la photo ci-dessus.
Petit bémol, j'ai dû passer au moins une fois par windows pour l'activer avec le logiciel maison en fixant un mot de passe et l'adresse IP mais ensuite toute la configuration peut se faire d'un navigateur sous linux en tapant simplement l'adresse IP dans la barre d'URL. Les screenshots ci-dessous ont été faits avec Firefox sur Linux/Mageia 9.
Une fois qu'on a saisi son login, on tombe sur la page de visualisation en temps réel qui ne fonctionne pas sous linux mais ce n'est pas grave car on n'en pas l'utilité.
En revanche la page de configuration fonctionne parfaitement et c'est bien là l'intérêt, on a accés à tous les paramètres possibles à partir du navigateur.
La visualisation se fait simplement en tapant dans un shell
ffplay rtsp://admin:password@192.168.2.110
Si votre caméra n'est pas équipée de base d'un serveur de flux vidéo compatible rtsp, vous pouvez monter en monter un qui pourra marcher avec une simple webcam. Mon choix s'est porté sur mediamtx qui est bien plus qu'un simple serveur rtsp. Le site officiel est https://github.com/bluenviron/mediamtx, on y récupère la dernière release qu'on décompresse en tapant
tar xvfz mediamtx-1.8.5.tar.gz
cela donne le répertoire mediamtx-1.8.5, les sources se compilent avec le langage go qu'il faudra avoir préalablement installé (package golang-bin sur ma mageia 9). Dans le répertoire on tape successivement
go generate ./...
CGO_ENABLED=0 GOOS=linux go build .
cela va donner un binaire mediamtx que vous pouvez très bien déplacé ensuite sous /usr/local/bin. On le lance d'abord sans être nécessairement root
mediamtx
voilà les traces
2024/08/17 09:13:20 INF MediaMTX v0.0.0
2024/08/17 09:13:20 INF configuration loaded from
/usr/local/linux/multimedia/mediamtx-1.8.5/mediamtx.yml
2024/08/17 09:13:20 INF [RTSP] listener opened on :8554 (TCP), :8000
(UDP/RTP), :8001 (UDP/RTCP)
2024/08/17 09:13:20 INF [RTMP] listener opened on :1935
2024/08/17 09:13:20 INF [HLS] listener opened on :8888
2024/08/17 09:13:20 INF [WebRTC] listener opened on :8889 (HTTP), :8189
(ICE/UDP)
2024/08/17 09:13:20 INF [SRT] listener opened on :8890 (UDP)
on lance le flux vidéo avec ffmpeg avec comme source /dev/video0 qui correspond à la webcam sur une adresse rtsp correspondant à la machine sur laquelle mediamtx est lancé
ffmpeg -f v4l2 -framerate 24 -video_size 640x480 -i /dev/video0 -f rtsp -rtsp_transport tcp rtsp://tetiaroa.kervao.fr:8554/monflux
voilà ce que le serveur renvoie
2024/08/17 09:29:19 INF [RTSP] [conn 192.168.2.19:37574] opened
2024/08/17 09:29:19 INF [RTSP] [session 9132306b] created by
192.168.2.19:37574
2024/08/17 09:29:19 INF [RTSP] [session 9132306b] is publishing to path
'monflux', 1 track (MPEG-4 Video)
on peut visualiser le flux vidéo de n'importe quelle machine du réseau, en tapant
ffplay rtsp://tetiaroa.kervao.fr:8554/monflux
voilà la trace du serveur
2024/08/17 09:31:01 INF [RTSP] [conn 192.168.2.16:55664] opened
2024/08/17 09:31:01 INF [RTSP] [session bd9fc103] created by
192.168.2.16:55664
2024/08/17 09:31:01 INF [RTSP] [session bd9fc103] is reading from path
'monflux', with UDP, 1 track (MPEG-4 Video)
La webcam pourra être intégrée et utilisée dans les outils de vidéosurveillance présentés plus bas.
Zoneminder est considéré comme le logiciel opensource de vidéosurveillance de référence. Le site officiel est https://zoneminder.com.
rpm -ivh --nodeps zoneminder-1.36.33-2.mga9.tainted.x86_64.rpm
On veillera toutefois à installer tous ces packages perl
- perl-Apache-Test-1.430.0-2.mga9.noarchIl faut commencer par créer une base de données mysql en tapant:
mariadb -u root -p < /usr/share/zoneminder/db/zm_create.sql
on vérifie si la base est bien créée, elle se nomme simplement zm et on crée un utilisateur privilégié zmuser sur la base zm
mariadb -u root -p
voilà le résultat
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 25
Server version: 11.4.2-MariaDB Source distribution
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input
statement.
MariaDB [(none)]> show databases;
+---------------------+
|
Database
|
+---------------------+
| MyMusic82
|
| MyMusic83
|
| MyVideos121 |
| MyVideos131 |
|
digikam
|
| digikam_similarites |
| digikam_vignettes |
| digikam_visages |
| information_schema |
|
mysql
|
| performance_schema |
| phpmyadmin |
| roundcubemail |
| spamassassin |
| syncstorage_rs |
|
sys
|
| tokenserver_rs |
|
zm
|
+---------------------+
18 rows in set (0,096 sec)
MariaDB [(none)]> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB [mysql]> CREATE USER 'zmuser' IDENTIFIED BY 'zmpass';
Query OK, 0 rows affected (0,087 sec)
MariaDB [mysql]> GRANT ALL ON zm.* TO 'zmuser'@'localhost';
Query OK, 0 rows affected (0,201 sec)
maintenant j'ai modifié le fichier /usr/lib/systemd/system/zoneminder.service qui contiendra
[Unit]
Description=ZoneMinder CCTV recording and security system
After=network.target mysqld.service httpd.service
Requires=mariadb.service httpd.service
[Service]
User=apache
Type=forking
ExecStart=/usr/bin/zmpkg.pl start
ExecReload=/usr/bin/zmpkg.pl reload
ExecStop=/usr/bin/zmpkg.pl stop
[Install]
WantedBy=multi-user.target
Attention le user doit correspondre au propriétaire du processus Apache httpd. La mise à jour du fichier doit être prise en compte en tapant systemctl daemon-reload
Le mot de passe zmpass devra être changé
Le fichier de configuration /etc/zm/zm.conf ressemble à ça
#
==========================================================================
#
# ZoneMinder Base Configuration
#
#
==========================================================================
#
# *** DO NOT EDIT THIS FILE ***
#
# To make custom changes to the variables below, create a new
configuration
# file, with an extention of .conf, under the /etc/zm/conf.d
# folder, containing your desired modifications.
#
# Path to installed data directory, used mostly for finding DB upgrade
scripts
ZM_PATH_DATA=/usr/share/zoneminder
# Path to ZoneMinder binaries
ZM_PATH_BIN=/usr/bin
# Path to ZoneMinder libraries (none at present, for future use)
ZM_PATH_LIB=/usr/lib64
# Path to ZoneMinder configuration (this file only at present)
ZM_PATH_CONF=/etc/zm
# Path to ZoneMinder web files
ZM_PATH_WEB=/usr/share/zoneminder/www
# Path to ZoneMinder cgi files
ZM_PATH_CGI=/usr/share/zoneminder/cgi-bin
# Username and group that web daemon (httpd/apache) runs as
# utilisateur et groupe propriétaire du daemon apache httpd
ZM_WEB_USER=apache
ZM_WEB_GROUP=apache
# ZoneMinder database type: so far only mysql is supported
ZM_DB_TYPE=mysql
# ZoneMinder database hostname or ip address and optionally port or unix
socket
# Acceptable formats include hostname[:port], ip_address[:port], or
# localhost:/path/to/unix_socket
# le nom du serveur sur lequel tourne le serveur mariadb
ZM_DB_HOST=mariadb-serveur
# ZoneMinder database name
ZM_DB_NAME=zm
# ZoneMinder database user
ZM_DB_USER=zmuser
# ZoneMinder database password
# le mot de passe tel que défini dans mariadb
ZM_DB_PASS=zmpass
# SSL CA certificate for ZoneMinder database
ZM_DB_SSL_CA_CERT=
# SSL client key for ZoneMinder database
ZM_DB_SSL_CLIENT_KEY=
# SSL client cert for ZoneMinder database
ZM_DB_SSL_CLIENT_CERT=
# Do NOT set ZM_SERVER_HOST if you are not using Multi-Server
# You have been warned
#
# The name specified here must have a corresponding entry
# in the Servers tab under Options
ZM_SERVER_HOST=
il faudra veiller à ce que l'utilisateur apache soit bien propriétaire de certains répertoires nécessaires au fonctionnement de zoneminder
chown -R apache:apache /var/log/zm
chown -R apache:apache /var/lib/zoneminder
chown -R apache:apache /usr/share/zoneminder/www
chown -R apache:apache /var/cache/zoneminder
accessoirement j'ai créé le lien suivant
ln -s /var/cache/zoneminder/ /usr/share/zoneminder/www/cache
il faudra ensuite modifier la configuration du serveur Apache httpd dans le fichier /usr/local/apache2/conf/httpd/conf, tout d'abord la liste de modules utiles et nécessaires
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule access_compat_module modules/mod_access_compat.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
LoadModule reqtimeout_module modules/mod_reqtimeout.so
LoadModule filter_module modules/mod_filter.so
LoadModule mime_module modules/mod_mime.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule env_module modules/mod_env.so
LoadModule expires_module modules/mod_expires.so
LoadModule headers_module modules/mod_headers.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule version_module modules/mod_version.so
LoadModule ssl_module modules/mod_ssl.so
LoadModule unixd_module modules/mod_unixd.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule cgid_module modules/mod_cgid.so
LoadModule dir_module modules/mod_dir.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule php_module
modules/libphp.so
(...)
# le propriétaire du daemon apache/httpd
User apache
Group apache
(...)
#directives spécifiques zoneminder
<Directory "/usr/share/zoneminder/www">
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<Directory "/var/cache/zoneminder">
Options -Indexes +FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<Directory "/usr/share/zoneminder/cgi-bin">
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
AllowOverride All
Require all granted
</Directory>
<Directory "/usr/share/zoneminder/www/api">
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
RewriteBase /zm/api
</Directory>
<Directory "/usr/share/zoneminder/www/api/app">
RewriteEngine on
RewriteRule ^$ webroot/ [L]
RewriteRule (.*) webroot/$1 [L]
RewriteBase /zm/api
</Directory>
<Directory "/usr/share/zoneminder/www/api/app/webroot">
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
RewriteBase /zm/api
</Directory>
#alias zoneminder dans cet ordre précis
ScriptAlias /zm/cgi-bin "/usr/share/zoneminder/cgi-bin"
Alias /zm/cache "/var/cache/zoneminder"
Alias /zm "/usr/share/zoneminder/www"
on veillera également à ce que la variable de la zone horaire du fichier /usr/local/apache2/conf/php.ini soit bien initialisée
date.timezone = Europe/Paris
on relance Apache httpd pour la prise en compte de la mise à jour de ces deux derniers fichiers
systemctl httpd restart
et on lance zoneminder en tapant
systemctl start zoneminder
et voilà ce que renvoie la commande
systemctl status zoneminder
● zoneminder.service - ZoneMinder CCTV recording and security system
Loaded: loaded
(/usr/lib/systemd/system/zoneminder.service; disabled; preset: disabled)
Active: active (running) since Fri 2024-08-09
16:03:47 CEST; 11s ago
Process: 3570 ExecStart=/usr/bin/zmpkg.pl start
(code=exited, status=0/SUCCESS)
Main PID: 3578 (zmdc.pl)
Tasks: 5 (limit: 9239)
Memory: 91.5M
CPU: 2.077s
CGroup: /system.slice/zoneminder.service
├─3578 /usr/bin/perl -wT /usr/bin/zmdc.pl startup
├─3606 /usr/bin/perl -wT /usr/bin/zmfilter.pl --filter_id=1 --daemon
├─3610 /usr/bin/perl -wT /usr/bin/zmfilter.pl --filter_id=2 --daemon
├─3616 /usr/bin/perl -wT /usr/bin/zmwatch.pl
└─3620 /usr/bin/perl -wT /usr/bin/zmstats.pl
août 09 16:03:44 ultra.kervao.fr systemd[1]: Starting
zoneminder.service...
août 09 16:03:47 ultra.kervao.fr systemd[1]: Started zoneminder.service.
Voilà l'écran principal avec une caméra rajoutée à partir de la commande Ajouter Caméra avec le mode Modect, c'est à dire qu'il va détecter les mouvements et créer un évènement pour chacun.
Il aura fallu définir la source vidéo de la vue, en mettant le chemin
Le programme motionplus est un utilitaire de détection de mouvement à partir de diverses sources vidéo, webcam, flux vidéo, caméra IP, wifi ou que sais-je encore disposible sur le réseau. Il intègre un serveur httpd où les vidéos peuvent être visualisées en temps réel, on peut également visualiser les évènements, c'est à dire tout mouvement ayant fait l'objet d'un enregistrement. L'utilisation d'une base de donnée est nécessaire pour gérer les évènements.
Le site officiel est https://motion-project.github.io/ on y découvre le programme d'origine motion et une version refondue appelée motionplus présentée ici dans cette page. La dernière release 0.2.1 n'est pas compatible avec les versions récentes de ffmpeg, on récupère donc le master de la version en développement qu'on décompresse en tapant
unzip motionplus-master.zip
cela donne le répertoire motionplus-master on récupérera préalablement les packages lib64microhttpd-devel et lib64camera-devel, on verra plus loin comment utiliser un serveur Apache httpd. On revient dans le répertoire dans lequel on tape
autoreconf -fiv;./configure
Voilà le résultat **************************
Configure
status
motionplus 0.2.0-gitUNKNOWN
**************************
CPPFLAGS: -D_THREAD_SAFE
-I/usr/include/p11-kit-1 -I/usr/include/webp
-I/usr/include/libcamera -I/usr/local/include
-I/usr/include/opencv4 -I/usr/include/mysql/
-D_REENTRANT -W -O3 -Wall -Wextra -Wconversion
-Wformat -Wshadow -Wpointer-arith -Wwrite-strings -Wredundant-decls
-ggdb -g3
LIBS: -pthread -ljpeg -lmicrohttpd
-lwebpmux -lwebp -lsharpyuv -lcamera -lcamera-base
-L/usr/local/lib -lavutil -lavformat -lavcodec -lswscale
-lavdevice -lopencv_gapi -lopencv_stitching -lopencv_alphamat
-lopencv_aruco -lopencv_barcode -lopencv_bgsegm -lopencv_bioinspired
-lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dnn_superres
-lopencv_dpm -lopencv_face -lopencv_freetype -lopencv_fuzzy -lopencv_hdf
-lopencv_hfs -lopencv_img_hash -lopencv_intensity_transform
-lopencv_line_descriptor -lopencv_mcc -lopencv_quality -lopencv_rapid
-lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_shape
-lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping
-lopencv_superres -lopencv_optflow -lopencv_surface_matching
-lopencv_tracking -lopencv_highgui -lopencv_datasets -lopencv_text
-lopencv_plot -lopencv_ml -lopencv_videostab -lopencv_videoio
-lopencv_ximgproc -lopencv_video -lopencv_xobjdetect -lopencv_objdetect
-lopencv_calib3d -lopencv_imgcodecs -lopencv_features2d -lopencv_dnn
-lopencv_flann -lopencv_xphoto -lopencv_photo -lopencv_imgproc
-lopencv_core -L/usr/lib64/ -lmariadb -lsqlite3
-lpulse -pthread -lpulse-simple -lasound -lfftw3
LDFLAGS:
OS
: linux-gnu
pthread_np
: no
pthread_setname_np : yes
pthread_getname_np : yes
XSI
error
: yes
V4L2
: yes
webp
: yes(1.3.0)
libcamera
: yes(0.2.0)
FFmpeg
: yes(61.1.100)
OpenCV
: yes(4.6.0)
SQLite3
: yes(3.40.1)
MYSQL
: no
PostgreSQL
: no
MariaDB
: yes(3.3.10)
ALSA
: yes(1.2.9)
PulseAudio
: yes(16.1)
FFTW
: yes(3.3.10)
Install prefix : /usr/local
mariadb -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 10952
Server version: 11.4.2-MariaDB Source distribution
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input
statement.
MariaDB [(none)]> create database motionplus;
Query OK, 1 row affected (0,001 sec)
A présent on va modifier le fichier de configuration, un fichier de configuration motionplus-dist.conf par défaut a été créé sous /usr/local/etc/motionplus/ on le renomme motionplus.conf. Vous trouverez ci-dessous les modifications qui ont été opérées
;*************************************************
;***** Camera
;*************************************************
device_name
device_id
target_dir /emile/photo/motion
La variable target_dir pointe à l'endroit où seront stockés snapshots et vidéos, je l'ai placé dans l'arborescence de mon serveur Apache pour qu'ils puissent être visibles.
(...)
;*************************************************
; Device config files - One for each device.
;*************************************************
camera /usr/local/etc/motionplus/camera1.conf
camera /usr/local/etc/motionplus/camera2.conf
Définition des caméras qui seront utilisées et qui seront décrites dans les fichiers mentionnés ci-dessus
(...)
;*************************************************
;***** Scripts
;*************************************************
on_event_start /usr/local/bin/motionmail
on_event_end
script à lancer s'il y a un évènement en cours. Le script contient simplement
#!/bin/bash
mail -s "Evenement motion" olivier.hoarau@funix.org
(...)
;*************************************************
;***** Picture
;*************************************************
picture_output off
picture_filename %v-%Y%m%d%H%M%S-%q
;*************************************************
;***** Movie
;*************************************************
movie_output on
movie_max_time 120
movie_quality 45
movie_container mkv
movie_filename %v-%Y%m%d%H%M%S
pour chaque évènement c'est une vidéo utilisant le conteneur MKV (et le codec x265) qui sera utilisée, il faut mettre picture_output à on pour avoir des snapshots
(...)
;*************************************************
;***** Base de donnée
;*************************************************
database_type mariadb
database_dbname motionplus
database_host mariadb-serveur
database_port 3306
database_user root
database_password password
Ces dernières directives permettent d'accéder à la base de données motionplus. Le logiciel n'intègre pas par défaut de système d'alerte par mail ou sms, en revanche on dispose du paramètre on_motion_detected qui permettra de lancer un script qui pourra faire cette alerte.
Maintenant pour une connexion sécurisée avec mot de passe et chiffrement TLS on rajoutera les lignes suivantes
;***** Web Control
;*************************************************
webcontrol_port 8080
webcontrol_localhost off
webcontrol_parms 3
webcontrol_auth_method digest
webcontrol_authentication user:motdepasse
webcontrol_tls on
webcontrol_cert /etc/ssl/public/apache.crt
webcontrol_key /etc/ssl/apache/apache.key
je me suis servi du certificat perso et de la clé définis par ici.
Pour davantage de détails sur le fichier de configuration, voir cette page https://motion-project.github.io/motionplus_config.html
On définit maintenant les fichiers de configuration des caméras, exemple ci-dessous avec une caméra IP accessible via rtsp et une webcam.
; /usr/local/etc/motionplus/camera1.conf
;
; This config file was generated by motionplus 0.2.0-gitUNKNOWN
;*************************************************
; Configuration options specific to camera 1
;*************************************************
;*************************************************
;***** Camera
;*************************************************
device_name MyCam1
device_id 101
;*************************************************
;***** Source
;*************************************************
netcam_url rtps://admin:password@192.168.2.110
;*************************************************
;***** Image
;*************************************************
width 1280
height 720
;*************************************************
;***** Overlays
;*************************************************
text_left CAMERA 1
;*************************************************
;***** Movie
;*************************************************
movie_filename CAM01_%t-%v-%Y%m%d%H%M%S
et le fichier pour la deuxième caméra
; /usr/local/etc/motionplus/camera2.conf
;
; This config file was generated by motionplus 0.2.0-gitUNKNOWN
;*************************************************
; Configuration options specific to camera 2
;*************************************************
;*************************************************
;***** Camera
;*************************************************
device_name Patio
device_id 102
;*************************************************
;***** Source
;*************************************************
v4l2_device /dev/video0
;*************************************************
;***** Image
;*************************************************
width 352
height 288
;*************************************************
;***** Overlays
;*************************************************
text_left Camera2
text_right Patio\n%Y-%m-%d\n%T-%q
;*************************************************
;***** Movie
;*************************************************
movie_filename CAM02_%t-%v-%Y%m%d%H%M%S
On lance maintenant motionplus, le propriétaire du process doit pouvoir écrire dans le répertoire désigné par target_dir (évitez root...). Voilà le résultat
[NTC][ALL][motionplus] conf_process: Processing config file
/usr/local/etc/motionplus/motionplus.conf
[NTC][ALL][motionplus] conf_process: Processing config file
/usr/local/etc/motionplus/camera1.conf
[NTC][ALL][motionplus] conf_process: Processing config file
/usr/local/etc/motionplus/camera2.conf
[NTC][ALL][motionplus] set_log_file: Logging to syslog
[NTC][ALL][motionplus] mytranslate_init: Language: English
[NTC][STR][motionplus] webu_start: Starting webcontrol on port 8080
[NTC][STR][motionplus] start_daemon_port1: Started webcontrol on port
8080
[NTC][ALL][motionplus] motpls_allcams_init: No stream_preview_location
for cam 101
[NTC][ALL][motionplus] motpls_allcams_init: No stream_preview_location
for cam 102
[NTC][ALL][motionplus] motpls_allcams_init: Creating default stream
preview values
[NTC][ENC][motionplus] motpls_av_init: libavcodec version 61.3.100
[NTC][ENC][motionplus] motpls_av_init: libavformat version 61.1.100
[NTC][ALL][motionplus] main: Motionplus pid: 115284
[NTC][VID][ml00:MyCam1] cls_netcam: Norm: Opening Netcam
[NTC][VID][ml01:MyCam2] start_cam: Opening V4L2 device
[NTC][VID][ml01:MyCam2] device_open: Opening video device /dev/video0
[NTC][VID][ml01:MyCam2] set_input: Name = "Camera 1"- CAMERA
[NTC][VID][ml01:MyCam2] pixfmt_try: Unable to use palette YU12 (352x288)
[NTC][VID][ml01:MyCam2] palette_set: Configuration palette index 17
(YU12) for 352x288 doesn't work.
[NTC][VID][ml01:MyCam2] pixfmt_list: Supported palettes:
[NTC][VID][ml01:MyCam2] pixfmt_list: (0) MJPG (Motion-JPEG)
[NTC][VID][ml01:MyCam2] pixfmt_list: (1) YUYV (YUYV 4:2:2)
[NTC][VID][ml01:MyCam2] pixfmt_try: Testing palette YUYV (352x288)
[NTC][VID][ml01:MyCam2] pixfmt_set: Using palette YUYV (320x240)
[NTC][VID][ml01:MyCam2] palette_set: Selected palette index 15 (YUYV)
[NTC][ALL][ml01:MyCam2] mlp_ring_resize: Resizing buffer to 4 items
[NTC][ALL][ml01:MyCam2] mlp_init: Camera 102 started: motion detection
Enabled
[NTC][ALL][ml00:MyCam1] mlp_ring_resize: Resizing buffer to 4 items
[NTC][NET][nc02:MyCam1] handler: Norm:Camera handler started
[NTC][NET][nc02:MyCam1] connect: Norm:Camera (MyCam1) connected
[NTC][NET][nc02:MyCam1] connect: Norm:Netcam capture FPS is 21.
[NTC][NET][nc02:MyCam1] connect: Norm:Camera source is 20 FPS
[NTC][ALL][ml00:MyCam1] mlp_init: Camera 101 started: motion detection
Enabled
Vous constaterez qu'en passant devant la webcam les vidéos s'accumulent sous /emile/photo/motion, ça marche !! Le log donnera la ligne suivante à chaque mouvement identifié comme évènement.
[NTC][ALL][ml01:MyCam2] mlp_detected_trigger: Motion detected - starting event 1
L'application dispose d'une interface web visible à l'URL
http://localhost:8080/. On y voit en temps réel les
différentes vues
La configuration est possible de l'interface
Les évènements sont accessibles via Recordings
[Retour page d'accueil FUNIX] | [retour haut de la page ] |