Send Motion-user mailing list submissions to
[email protected]
To subscribe or unsubscribe via the World Wide Web, visit
https://lists.sourceforge.net/lists/listinfo/motion-user
or, via email, send a message with subject or body 'help' to
[email protected]
You can reach the person managing the list at
[email protected]
When replying, please edit your Subject line so it is more specific
than "Re: Contents of Motion-user digest..."
Today's Topics:
1. Motion detection + 24/7 recording (Bartosz Kiziukiewicz)
2. Re: Duplicate SQL entries for every event (David Powell)
----------------------------------------------------------------------
Message: 1
Date: Fri, 13 Aug 2021 15:23:27 +0200
From: Bartosz Kiziukiewicz <[email protected]>
To: Motion discussion list <[email protected]>
Subject: [Motion-user] Motion detection + 24/7 recording
Message-ID: <[email protected]>
Content-Type: text/plain; charset=utf-8; format=flowed
I'm using motion with motionEye to record a few outdoor cameras 24/7.
As the PC running it is on is rather old, I'm using netcam_highres along
with movie_passthrough options.
I want to add motion detection to it to trigger sending e-mails but at
the same time I want to have continuous recording.
I've been looking through the documentation but I can't see such a
possibility.
Is there any smart way to do it?
------------------------------
Message: 2
Date: Fri, 13 Aug 2021 11:23:46 -0400
From: David Powell <[email protected]>
To: Motion discussion list <[email protected]>,
tosiara <[email protected]>
Subject: Re: [Motion-user] Duplicate SQL entries for every event
Message-ID: <[email protected]>
Content-Type: text/plain; charset="utf-8"; Format="flowed"
I was going to open a bug report, but haven't quite gotten around to it
yet.? Sorry.
Here's the output from /describe events;/
*Field**
* *Type* *Null* *Key* *Default* *Extra*
server_number int NO PRI <null>
camera_number int NO PRI <null>
event_number int NO PRI <null>
event_date varchar(45) NO PRI
video_length int YES
<null>
filename varchar(200) YES
<null>
This is my main motion.conf. I can supply the individual camera config
files but they're pretty simple.? I'll put one of them below the main
config.
# /usr/local/etc/motion/motion.conf
#
# This config file was generated by motion 4.1.1+git20181002-062a328
# at 2021-06-08T17:01:40
############################################################
# System control configuration parameters
############################################################
# Start in daemon (background) mode and release terminal.
daemon on
# Start in Setup-Mode, daemon disabled.
setup_mode off
# File to store the process ID.
; pid_file value
# File to write logs messages into.? If not defined stderr and syslog is
used.
log_file /var/log/motion/motion.log
# Level of log messages [1..9] (EMG, ALR, CRT, ERR, WRN, NTC, INF, DBG,
ALL).
log_level 4
# Filter to log messages by type (COR, STR, ENC, NET, DBL, EVT, TRK,
VID, ALL).
log_type ALL
# Do not sound beeps when detecting motion
quiet on
# Native language support.
native_language on
# User defined name for the camera.
; camera_name value
# Numeric identifier for the camera.
camera_id 0
# Target directory for pictures, snapshots and movies
; target_dir value
# Video device (e.g. /dev/video0) to be used for capturing.
videodevice /dev/video0
# Parameters to control video device.? See motion_guide.html
; vid_control_params value
# Preferred color palette to be used for the video device
v4l2_palette 17
# The input number to be used on the video device.
input -1
# The video norm to use for video capture and TV tuner cards.
norm 0
# The frequency to set the tuner to (kHz) for TV tuner cards
frequency 0
# The Motion method to use to change the brightness/exposure on video
device.
auto_brightness 0
# Device name (e.g. /dev/tuner0) to be used for capturing when using
tuner as source
; tunerdevice value
# Number of frames to capture in each roundrobin step
roundrobin_frames 1
# Number of frames to skip before each roundrobin step
roundrobin_skip 1
# Try to filter out noise generated by roundrobin
roundrobin_switchfilter off
# The full URL of the network camera stream.
; netcam_url value
# Optional high resolution URL for rtsp/rtmp cameras only.
; netcam_highres value
# Username and password for network camera. Syntax username:password
; netcam_userpass value
# The method for keep-alive of network socket for mjpeg streams.
netcam_keepalive on
# The URL to use for a netcam proxy server.
; netcam_proxy value
# Use less strict jpeg checks for network cameras.
netcam_tolerant_check on
# Use TCP transport for RTSP/RTMP connections to camera.
netcam_use_tcp on
# Name of mmal camera (e.g. vc.ril.camera for pi camera).
; mmalcam_name value
# Camera control parameters (see raspivid/raspistill tool documentation)
; mmalcam_control_params value
############################################################
# Image Processing configuration parameters
############################################################
# Image width in pixels.
width 640
# Image height in pixels.
height 480
# Maximum number of frames to be captured per second.
framerate 15
# Minimum time in seconds between capturing picture frames from the camera.
minimum_frame_time 0
# Number of degrees to rotate image.
rotate 0
# Flip image over a given axis
flip_axis none
# Draw a locate box around the moving object.
locate_motion_mode preview
# Set the look and style of the locate box.
locate_motion_style redbox
# Text to be overlayed in the lower left corner of images
text_left CAMERA1
# Text to be overlayed in the lower right corner of images.
text_right %Y-%m-%d\n%T-%q
# Overlay number of changed pixels in upper right corner of images.
text_changes off
# Scale factor for text overlayed on images.
text_scale 1
# The special event conversion specifier %C
text_event %Y%m%d%H%M%S
############################################################
# Motion detection configuration parameters
############################################################
# Always save pictures and movies even if there was no motion.
emulate_motion off
# Threshold for number of changed pixels that triggers motion.
threshold 2500
# Enable tuning of the threshold down if possible.
threshold_tune off
# Noise threshold for the motion detection.
noise_level 32
# Automatically tune the noise threshold
noise_tune on
# Despeckle the image using (E/e)rode or (D/d)ilate or (l)abel.
despeckle_filter EedDl
# Area number used to trigger the on_area_detected script.
; area_detect value
# Full path and file name for motion detection mask PGM file.
; mask_file value
# Full path and file name for privacy mask PGM file.
; mask_privacy value
# The value defining how slow or fast the smart motion mask created and
used.
smart_mask_speed 0
# Percentage of image that triggers a lightswitch detected.
lightswitch_percent 75
# When lightswitch is detected, ignore this many frames
lightswitch_frames 3
# Number of images that must contain motion to trigger an event.
minimum_motion_frames 1
# Gap in seconds of no motion detected that triggers the end of an event.
event_gap 60
# The number of pre-captured (buffered) pictures from before motion.
pre_capture 6
# Number of frames to capture after motion is no longer detected.
post_capture 3
############################################################
# Script execution configuration parameters
############################################################
# Command to be executed when an event starts.
; on_event_start value
# Command to be executed when an event ends.
; on_event_end value
# Command to be executed when a picture is saved.
; on_picture_save value
# Command to be executed when motion in a predefined area is detected
; on_area_detected value
# Command to be executed when motion is detected
; on_motion_detected value
# Command to be executed when a movie file is created.
; on_movie_start value
# Command to be executed when a movie file is closed.
on_movie_end java -cp /usr/local/bin/CamSummary.jar
david/camera/SpecUpdater %f
# Command to be executed when a camera can't be opened or if it is lost
; on_camera_lost value
# Command to be executed when a camera that was lost has been found.
; on_camera_found value
############################################################
# Picture output configuration parameters
############################################################
# Output pictures when motion is detected
picture_output best
# Output pictures with only the pixels moving object (ghost images)
picture_output_motion off
# Format for the output pictures.
picture_type jpeg
# The quality (in percent) to be used in the picture compression
picture_quality 75
# Text to include in a JPEG EXIF comment
; picture_exif value
# File name(without extension) for pictures relative to target directory
picture_filename %Y-%m-%d/%t-%v-%C
############################################################
# Snapshot output configuration parameters
############################################################
# Make automated snapshot every N seconds
snapshot_interval 0
# File name(without extension) for snapshots relative to target directory
snapshot_filename %v-%Y%m%d%H%M%S-snapshot
############################################################
# Movie output configuration parameters
############################################################
# Create movies of motion events.
movie_output on
# Create movies of moving pixels of motion events.
movie_output_motion off
# Maximum length of movie in seconds.
movie_max_time 120
# The fixed bitrate to be used by the movie encoder. Ignore quality setting
movie_bps 400000
# The encoding quality of the movie. (0=use bitrate. 1=worst quality,
100=best)
movie_quality 45
# Container/Codec to used for the movie. See motion_guide.html
movie_codec mp4
# Duplicate frames to achieve "framerate" fps.
movie_duplicate_frames off
# Pass through from the camera to the movie without decode/encoding.
movie_passthrough off
# File name(without extension) for movies relative to target directory
movie_filename %Y-%m-%d/%t-%v-%C
# Use pipe and external encoder for creating movies.
movie_extpipe_use off
# Full path and options for external encoder of movies from raw images
; movie_extpipe value
############################################################
# Timelapse output configuration parameters
############################################################
# Interval in seconds between timelapse captures.
timelapse_interval 0
# Timelapse file rollover mode. See motion_guide.html for options and uses.
timelapse_mode daily
# Frame rate for timelapse playback
timelapse_fps 30
# Container/Codec for timelapse movie.
timelapse_codec mpg
# File name(without extension) for timelapse movies relative to target
directory
timelapse_filename %Y%m%d-timelapse
############################################################
# Loopback pipe configuration parameters
############################################################
# v4l2 loopback device to receive normal images
; video_pipe value
# v4l2 loopback device to receive motion images
; video_pipe_motion value
############################################################
# Webcontrol configuration parameters
############################################################
# Port number used for the webcontrol.
webcontrol_port 1800
# Enable IPv6 addresses.
webcontrol_ipv6 off
# Restrict webcontrol connections to the localhost.
webcontrol_localhost off
# Type of configuration options to allow via the webcontrol.
webcontrol_parms 2
# Method that webcontrol should use for interface with user.
webcontrol_interface 0
# The authentication method for the webcontrol
webcontrol_auth_method 0
# Authentication string for the webcontrol. Syntax username:password
; webcontrol_authentication value
# Use ssl / tls for the webcontrol
webcontrol_tls off
# Full path and file name of the certificate file for tls
; webcontrol_cert value
# Full path and file name of the key file for tls
; webcontrol_key value
# The cross-origin resource sharing (CORS) header for webcontrol
; webcontrol_cors_header value
############################################################
# Live stream configuration parameters
############################################################
# The port number for the live stream.
stream_port 8081
# The port number for the live substream
substream_port 0
# Restrict stream connections to the localhost.
stream_localhost off
# Authentication method for live stream.
stream_auth_method 0
# The authentication string for the stream. Syntax username:password
; stream_authentication value
# Use ssl / tls for stream.
stream_tls off
# The cross-origin resource sharing (CORS) header for the stream
; stream_cors_header value
# Percentage to scale the stream image on the webcontrol.
stream_preview_scale 25
# Have the stream image start on a new line of the webcontrol
stream_preview_newline off
# Method for showing stream on webcontrol.
stream_preview_method 0
# Quality of the jpeg images produced for stream.
stream_quality 50
# Provide the stream images in black and white
stream_grey off
# Output frames at 1 fps when no motion is detected.
stream_motion off
# Maximum framerate of images provided for stream
stream_maxrate 1
# Limit the number of images per connection
stream_limit 0
############################################################
# Database and SQL Configuration parameters
############################################################
# The type of database being used if any.
database_type mysql
# Database name to use. For sqlite3, the full path and name.
database_dbname cameras
# The host on which the database is located
database_host localhost
# Port used by the database.
database_port 3306
# User account name for database.
database_user <redacted>
# User password for database.
database_password <redacted>
# Database wait for unlock time
database_busy_timeout 5
# Log to the database when creating motion triggered image file
sql_log_picture off
# Log to the database when creating a snapshot image file
sql_log_snapshot off
# Log to the database when creating motion triggered movie file
sql_log_movie on
# Log to the database when creating timelapse movie file
sql_log_timelapse off
# SQL query at event start.? See motion_guide.html
; sql_query_start value
# SQL query at event stop.? See motion_guide.html
sql_query_stop INSERT INTO events
(server_number,camera_number,event_number,event_date,video_length,filename)
VALUES (1,%t,%v,{ts '%C'},null,'%f');
# SQL query string that is sent to the database.? See motion_guide.html
; sql_query
############################################################
# Tracking configuration parameters
############################################################
# Method used by tracking camera. See motion_guide.html
track_type 0
# Enable auto tracking
track_auto off
# Serial port of motor
; track_port value
# Motor number for x-axis
track_motorx 0
# Set motorx reverse
track_motorx_reverse off
# Motor number for y-axis
track_motory 0
# Set motory reverse
track_motory_reverse off
# Maximum value on x-axis
track_maxx 0
# Minimum value on x-axis
track_minx 0
# Maximum value on y-axis
track_maxy 0
# Minimum value on y-axis
track_miny 0
# Center value on x-axis
track_homex 128
# Center value on y-axis
track_homey 128
# ID of an iomojo camera if used
track_iomojo_id 0
# Angle in degrees the camera moves per step on the X-axis with auto-track
track_step_angle_x 10
# Angle in degrees the camera moves per step on the Y-axis with auto-track.
track_step_angle_y 10
# Delay to wait for after tracking movement as number of picture frames.
track_move_wait 10
# Speed to set the motor to (stepper motor option)
track_speed 255
# Number of steps to make (stepper motor option)
track_stepsize 40
# Command to execute to move a camera in generic tracking mode
; track_generic_move value
##############################################################
# Camera config files - One for each camera.
##############################################################
camera /usr/local/etc/motion/cameraPatio.conf
camera /usr/local/etc/motion/cameraShop.conf
camera /usr/local/etc/motion/cameraPumpHouse.conf
camera /usr/local/etc/motion/cameraBackYard.conf
camera /usr/local/etc/motion/cameraPumpYard.conf
camera /usr/local/etc/motion/cameraShed.conf
camera /usr/local/etc/motion/cameraGate.conf
##############################################################
# Directory to read '.conf' files for cameras.
##############################################################
; camera_dir /etc/motion/conf.d
This is the /cameraPatio.conf/ file. The other files are very similar.
# /usr/local/etc/motion/cameraPatio.conf
#
# This config file was generated by motion 4.1.1+git20181002-062a328
# at 2021-06-08T17:01:40
# User defined name for the camera.
camera_name patio
# Target directory for pictures, snapshots and movies
target_dir /var/www/html/cams/patio
# The full URL of the network camera stream.
netcam_url http://10.10.6.181:8181/videostream.cgi?user=<redacted>&pwd=
# The method for keep-alive of network socket for mjpeg streams.
netcam_keepalive off
# Text to be overlayed in the lower left corner of images
text_left Patio
# Threshold for number of changed pixels that triggers motion.
threshold 1000
# Enable tuning of the threshold down if possible.
threshold_tune on
# Full path and file name for motion detection mask PGM file.
mask_file /usr/local/etc/motion/patioMask.pgm
############################################################
# Webcontrol configuration parameters
############################################################
# Port number used for the webcontrol.
webcontrol_port 0
############################################################
# Live stream configuration parameters
############################################################
# The port number for the live stream.
stream_port 1801
Let me know if you need any other info.
David
On 8/13/21 6:31 AM, tosiara wrote:
> Could you send me your exact motion config and mysql command output:
> "describe events;"
> I will try to check
>
> On Thu, Jul 29, 2021 at 8:45 PM Shawn Ashe <[email protected]> wrote:
>> I would find a way to log it, at least it's a symptom you can give to the
>> motion team, and maybe something will become obvious to you
>>
>> On Thu, Jul 29, 2021, 1:05 PM David Powell <[email protected]> wrote:
>>> It's the %v replaceable parameter in the insert statement. Motion
>>> generates it internally.
>>> dp
>>>
>>> On July 29, 2021 11:26:25 AM Shawn Ashe <[email protected]> wrote:
>>>> is the event_number a counter,or based on time/etc?
>>>>
>>>> Could be the events are going off to fast and you are getting duplicate
>>>> event numbers.
>>>>
>>>> On Thu, Jul 29, 2021 at 12:15 PM David Powell <[email protected]> wrote:
>>>>> Oh, I understand your question better now. The event number is generated
>>>>> by Motion automatically.
>>>>>
>>>>> David
>>>>>
>>>>> On July 29, 2021 11:11:01 AM David Powell <[email protected]> wrote:
>>>>>>
>>>>>> My understanding is that event_number is there for this very purpose -
>>>>>> to make each event unique. I can't imagine another reason to have it.
>>>>>>
>>>>>> David
>>>>>>
>>>>>> On July 29, 2021 10:46:33 AM [email protected] wrote:
>>>>>>> Hi.
>>>>>>>
>>>>>>>
>>>>>>> Also; "The primary key for the events table is
>>>>>>> server_number,event_number,event_date, and camera_number."
>>>>>>>
>>>>>>> So, can the server_number, event_number, event_date and camera_number
>>>>>>> be the same twice?
>>>>>>>
>>>>>>> I'm guessing server_number for sure, camera_number too. Event date?
>>>>>>> Yeah possible if it's two events in tight enough sequence and sloppy
>>>>>>> enough datetime datatype.
>>>>>>>
>>>>>>> event_number? ... doesn't sound likely but... what do i know - how does
>>>>>>> that get generated?
>>>>>>>
>>>>>>>
>>>>>>> Why not use an auto_intrement for primary key and have a composite
>>>>>>> index on those other columns instead?
>>>>>>>
>>>>>>>
>>>>>>> //Lars
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On 2021-07-29 16:59, John L. Poole wrote:
>>>>>>>
>>>>>>> The error message you shared, e.g. trigger of a primary key constraint,
>>>>>>> suggests an error in program design. If you have a table with unique
>>>>>>> constraints, e.g. every entry must be unique, you don't try to insert
>>>>>>> the same record twice.
>>>>>>>
>>>>>>> I recommend you file a bug so everything is documented well and then
>>>>>>> the developers can determine why they are attempting to insert
>>>>>>> something already present, or at least testing for presence before
>>>>>>> attempting to insert a record that may already exist.
>>>>>>>
>>>>>>> On 7/29/2021 7:27 AM, David Powell wrote:
>>>>>>>
>>>>>>> This is the whole SQL section of motion.conf:
>>>>>>>
>>>>>>> ############################################################
>>>>>>> # Database and SQL Configuration parameters
>>>>>>> ############################################################
>>>>>>>
>>>>>>> # The type of database being used if any.
>>>>>>> database_type mysql
>>>>>>>
>>>>>>> # Database name to use. For sqlite3, the full path and name.
>>>>>>> database_dbname cameras
>>>>>>>
>>>>>>> # The host on which the database is located
>>>>>>> database_host localhost
>>>>>>>
>>>>>>> # Port used by the database.
>>>>>>> database_port 3306
>>>>>>>
>>>>>>> # User account name for database.
>>>>>>> database_user <redacted>
>>>>>>>
>>>>>>> # User password for database.
>>>>>>> database_password <redacted>
>>>>>>>
>>>>>>> # Database wait for unlock time
>>>>>>> database_busy_timeout 5
>>>>>>>
>>>>>>> # Log to the database when creating motion triggered image file
>>>>>>> sql_log_picture off
>>>>>>>
>>>>>>> # Log to the database when creating a snapshot image file
>>>>>>> sql_log_snapshot off
>>>>>>>
>>>>>>> # Log to the database when creating motion triggered movie file
>>>>>>> sql_log_movie on
>>>>>>>
>>>>>>> # Log to the database when creating timelapse movie file
>>>>>>> sql_log_timelapse off
>>>>>>>
>>>>>>> # SQL query at event start. See motion_guide.html
>>>>>>> ; sql_query_start value
>>>>>>>
>>>>>>> # SQL query at event stop. See motion_guide.html
>>>>>>> sql_query_stop INSERT INTO events
>>>>>>> (server_number,camera_number,event_number,event_date,video_length,filename)
>>>>>>> VALUES (1,%t,%v,{ts '%C'},null,'%f');
>>>>>>>
>>>>>>> # SQL query string that is sent to the database. See motion_guide.html
>>>>>>> ; sql_query
>>>>>>>
>>>>>>> I had the query in sql_query but I moved it to sql_query_stop. That
>>>>>>> didn't help.
>>>>>>>
>>>>>>> David
>>>>>>>
>>>>>>>
>>>>>>> On 7/29/21 8:17 AM, Damian via Motion-user wrote:
>>>>>>>
>>>>>>> The SQL statement in motion.conf is
>>>>>>> INSERT INTO events
>>>>>>> (server_number,camera_number,event_number,event_date,video_length,filename)
>>>>>>> VALUES (1,%t,%v,{ts '%C'},null,'%f');
>>>>>>>
>>>>>>> The records /are/ there in the database, and I run a custom program to
>>>>>>> extract them for displaying the snapshots and movies in a web page
>>>>>>>
>>>>>>>
>>>>>>> Which sql_log_* statements are enabled?
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Motion-user mailing list
>>>>>>> [email protected]
>>>>>>> https://lists.sourceforge.net/lists/listinfo/motion-user
>>>>>>> https://motion-project.github.io/
>>>>>>>
>>>>>>> Unsubscribe: https://lists.sourceforge.net/lists/options/motion-user
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Motion-user mailing list
>>>>>>> [email protected]
>>>>>>> https://lists.sourceforge.net/lists/listinfo/motion-user
>>>>>>> https://motion-project.github.io/
>>>>>>>
>>>>>>> Unsubscribe: https://lists.sourceforge.net/lists/options/motion-user
>>>>>>>
>>>>>>> --
>>>>>>>
>>>>>>> John Laurence Poole
>>>>>>> 1566 Court ST NE
>>>>>>> Salem OR 97301-4241
>>>>>>> 707-812-1323 office
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Motion-user mailing list
>>>>>>> [email protected]
>>>>>>> https://lists.sourceforge.net/lists/listinfo/motion-user
>>>>>>> https://motion-project.github.io/
>>>>>>>
>>>>>>> Unsubscribe: https://lists.sourceforge.net/lists/options/motion-user
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Motion-user mailing list
>>>>>>> [email protected]
>>>>>>> https://lists.sourceforge.net/lists/listinfo/motion-user
>>>>>>> https://motion-project.github.io/
>>>>>>>
>>>>>>> Unsubscribe: https://lists.sourceforge.net/lists/options/motion-user
>>>>>>
>>>>> _______________________________________________
>>>>> Motion-user mailing list
>>>>> [email protected]
>>>>> https://lists.sourceforge.net/lists/listinfo/motion-user
>>>>> https://motion-project.github.io/
>>>>>
>>>>> Unsubscribe: https://lists.sourceforge.net/lists/options/motion-user
>>>> _______________________________________________
>>>> Motion-user mailing list
>>>> [email protected]
>>>> https://lists.sourceforge.net/lists/listinfo/motion-user
>>>> https://motion-project.github.io/
>>>>
>>>> Unsubscribe: https://lists.sourceforge.net/lists/options/motion-user
>>>
>>> _______________________________________________
>>> Motion-user mailing list
>>> [email protected]
>>> https://lists.sourceforge.net/lists/listinfo/motion-user
>>> https://motion-project.github.io/
>>>
>>> Unsubscribe: https://lists.sourceforge.net/lists/options/motion-user
>> _______________________________________________
>> Motion-user mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/motion-user
>> https://motion-project.github.io/
>>
>> Unsubscribe: https://lists.sourceforge.net/lists/options/motion-user
>
> _______________________________________________
> Motion-user mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/motion-user
> https://motion-project.github.io/
>
> Unsubscribe: https://lists.sourceforge.net/lists/options/motion-user
-------------- next part --------------
An HTML attachment was scrubbed...
------------------------------
------------------------------
Subject: Digest Footer
_______________________________________________
Motion-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/motion-user
------------------------------
End of Motion-user Digest, Vol 182, Issue 6
*******************************************