Motion is taking an image every second even though it is setup not to

10,304

Solution 1

Playing with something like this at the moment, ran into some similar issues. Here's what I see:

minimum_motion_frames 1

It looks like this is going to take a picture for every motion detected on the camera. Not sure if you're aware - on RasPi I bump this up to 5.

webcontrol_localhost on

I normally turn this off so that I can control from remote reasons are:

  • Motion is built to capture motion by default and telling it not to requires manual intervention
  • The best way to intervene here is actually by the web UI (Action > detection > pause)
  • The other, more manual way is to call motion from the command line with a -m switch (motion -m ...). This requires a bit more management of the process but works as well.

Solution 2

Change the below value to 'best' for example:

# Output 'normal' pictures when motion is detected (default: on)
# Valid values: on, off, first, best, center
# When set to 'first', only the first picture of an event is saved.
# Picture with most motion of an event is saved when set to 'best'.
# Picture with motion nearest center of picture is saved when set to 'center'.
# Can be used as preview shot for the corresponding movie.
output_pictures on

Solution 3

Apparently this happens because we upgrade the program and still use the old (previously working) config file. The new program defaults to this unfortunate behaviour when the new "output_pictures" setting is missing, which is it from old config file.

Share:
10,304

Related videos on Youtube

NoviceUbuntuGeek
Author by

NoviceUbuntuGeek

I am a novice Ubuntu Geek! sudo =AWESOME!!

Updated on September 18, 2022

Comments

  • NoviceUbuntuGeek
    NoviceUbuntuGeek over 1 year

    I am running motion on a Raspberry Pi with a surplus Microsoft Xbox camera. To the best of my knowlege I have set it up to only take an image every 30 minutes and to also create a daily timelapse with the images. However from the second I start it, motion is taking an image every second or so and saving it to my snapshoots folder. I dont want this to happen! Of course I want the live feed visable via the web UI but I only want an image to be saved every half hour as well as the daily timelapse.

    Here is what I belive are the relevant parts of my config files:

    My /etc/motion/motion.conf: The entire thing is here: https://pastebin.com/32cZNeGU

    # Maximum number of frames to be captured per second.
    # Valid range: 2-100. Default: 100 (almost no limit).
    framerate 100
    
    # Minimum time in seconds between capturing picture frames from the camera.
    # Default: 0 = disabled - the capture rate is given by the camera framerate.
    # This option is used when you want to capture images at a rate lower than 2 per second.
    minimum_frame_time 0
    
    
    ############################################################
    # Motion Detection Settings:
    ############################################################
    
    # Threshold for number of changed pixels in an image that
    # triggers motion detection (default: 1500)
    threshold 9999
    
    # Automatically tune the threshold down if possible (default: off)
    threshold_tune off
    
    # Noise threshold for the motion detection (default: 32)
    noise_level 32
    
    # Automatically tune the noise threshold (default: on)
    noise_tune on
    
    # Despeckle motion image using (e)rode or (d)ilate or (l)abel (Default: not defined)
    # Recommended value is EedDl. Any combination (and number of) of E, e, d, and D is valid.
    # (l)abeling must only be used once and the 'l' must be the last letter.
    # Comment out to disable
    despeckle_filter EedDl
    
    # Detect motion in predefined areas (1 - 9). Areas are numbered like that:  1 2 3
    # A script (on_area_detected) is started immediately when motion is         4 5 6
    # detected in one of the given areas, but only once during an event.        7 8 9
    # One or more areas can be specified with this option. Take care: This option
    # does NOT restrict detection to these areas! (Default: not defined)
    ; area_detect value
    
    # PGM file to use as a sensitivity mask.
    # Full path name to. (Default: not defined)
    ; mask_file value
    
    # Dynamically create a mask file during operation (default: 0)
    # Adjust speed of mask changes from 0 (off) to 10 (fast)
    smart_mask_speed 0
    
    # Ignore sudden massive light intensity changes given as a percentage of the picture
    # area that changed intensity. Valid range: 0 - 100 , default: 0 = disabled
    lightswitch 0
    
    # Picture frames must contain motion at least the specified number of frames
    # in a row before they are detected as true motion. At the default of 1, all
    # motion is detected. Valid range: 1 to thousands, recommended 1-5
    minimum_motion_frames 1
    
    # Specifies the number of pre-captured (buffered) pictures from before motion
    # was detected that will be output at motion detection.
    # Recommended range: 0 to 5 (default: 0)
    # Do not use large values! Large values will cause Motion to skip video frames and
    # cause unsmooth movies. To smooth movies use larger values of post_capture instead.
    pre_capture 0
    
    # Number of frames to capture after motion is no longer detected (default: 0)
    post_capture 0
    
    # Event Gap is the seconds of no motion detection that triggers the end of an event.
    # An event is defined as a series of motion images taken within a short timeframe.
    # Recommended value is 60 seconds (Default). The value -1 is allowed and disables
    # events causing all Motion to be written to one single movie file and no pre_capture.
    # If set to 0, motion is running in gapless mode. Movies don't have gaps anymore. An
    # event ends right after no more motion is detected and post_capture is over.
    event_gap 60
    
    # Maximum length in seconds of a movie
    # When value is exceeded a new movie file is created. (Default: 0 = infinite)
    max_movie_time 0
    
    # Always save images even if there was no motion (default: off)
    emulate_motion off
    
    
    ############################################################
    # Image File Output
    ############################################################
    
    # Output 'normal' pictures when motion is detected (default: on)
    # Valid values: on, off, first, best, center
    # When set to 'first', only the first picture of an event is saved.
    # Picture with most motion of an event is saved when set to 'best'.
    # Picture with motion nearest center of picture is saved when set to 'center'.
    # Can be used as preview shot for the corresponding movie.
    output_pictures off
    
    # Output pictures with only the pixels moving object (ghost images) (default: off)
    output_debug_pictures off
    
    # The quality (in percent) to be used by the jpeg compression (default: 75)
    quality 75
    
    # Type of output images
    # Valid values: jpeg, ppm (default: jpeg)
    picture_type jpeg
    
    ############################################################
    # FFMPEG related options
    # Film (movies) file output, and deinterlacing of the video input
    # The options movie_filename and timelapse_filename are also used
    # by the ffmpeg feature
    ############################################################
    
    # Use ffmpeg to encode movies in realtime (default: off)
    ffmpeg_output_movies on
    
    # Use ffmpeg to make movies with only the pixels moving
    # object (ghost images) (default: off)
    ffmpeg_output_debug_movies off
    
    # Use ffmpeg to encode a timelapse movie
    # Default value 0 = off - else save frame every Nth second
    ffmpeg_timelapse 1800000
    
    # The file rollover mode of the timelapse video
    # Valid values: hourly, daily (default), weekly-sunday, weekly-monday, monthly, manual
    ffmpeg_timelapse_mode daily
    
    # Bitrate to be used by the ffmpeg encoder (default: 400000)
    # This option is ignored if ffmpeg_variable_bitrate is not 0 (disabled)
    ffmpeg_bps 400000
    
    # Enables and defines variable bitrate for the ffmpeg encoder.
    # ffmpeg_bps is ignored if variable bitrate is enabled.
    # Valid values: 0 (default) = fixed bitrate defined by ffmpeg_bps,
    # or the range 1 - 100 where 1 means worst quality and 100 is best.
    ffmpeg_variable_bitrate 0
    
    # Codec to used by ffmpeg for the video compression.
    # Timelapse videos have two options.
    #   mpg - Creates mpg file with mpeg-2 encoding.
    #     If motion is shutdown and restarted, new pics will be appended
    #     to any previously created file with name indicated for timelapse.
    #   mpeg4 - Creates avi file with the default encoding.
    #     If motion is shutdown and restarted, new pics will create a
    #     new file with the name indicated for timelapse.
    # Supported formats are:
    # mpeg4 or msmpeg4 - gives you files with extension .avi
    # msmpeg4 is recommended for use with Windows Media Player because
    # it requires no installation of codec on the Windows client.
    # swf - gives you a flash film with extension .swf
    # flv - gives you a flash video with extension .flv
    # ffv1 - FF video codec 1 for Lossless Encoding
    # mov - QuickTime
    # mp4 - MPEG-4 Part 14 H264 encoding
    # mkv - Matroska H264 encoding
    # hevc - H.265 / HEVC (High Efficiency Video Coding)
    ffmpeg_video_codec hevc
    
    # When creating videos, should frames be duplicated in order 
    # to keep up with the requested frames per second
    # (default: true)
    ffmpeg_duplicate_frames false
    
    ############################################################
    # Snapshots (Traditional Periodic Webcam File Output)
    ############################################################
    
    # Make automated snapshot every N seconds (default: 0 = disabled)
    snapshot_interval 1800000
    
    
    ############################################################
    # Text Display
    # %Y = year, %m = month, %d = date,
    # %H = hour, %M = minute, %S = second, %T = HH:MM:SS,
    # %v = event, %q = frame number, %t = camera id number,
    # %D = changed pixels, %N = noise level, \n = new line,
    # %i and %J = width and height of motion area,
    # %K and %L = X and Y coordinates of motion center
    # %C = value defined by text_event - do not use with text_event!
    # You can put quotation marks around the text to allow
    # leading spaces
    ############################################################
    # Locate and draw a box around the moving object.
    # Valid values: on, off, preview (default: off)
    # Set to 'preview' will only draw a box in preview_shot pictures.
    locate_motion_mode off
    
    # Set the look and style of the locate box if enabled.
    # Valid values: box, redbox, cross, redcross (default: box)
    # Set to 'box' will draw the traditional box.
    # Set to 'redbox' will draw a red box.
    # Set to 'cross' will draw a little cross to mark center.
    # Set to 'redcross' will draw a little red cross to mark center.
    locate_motion_style box
    
    # Draws the timestamp using same options as C function strftime(3)
    # Default: %Y-%m-%d\n%T = date in ISO format and time in 24 hour clock
    # Text is placed in lower right corner
    text_right %Y-%m-%d\n%T-%q
    
    # Draw a user defined text on the images using same options as C function strftime(3)
    # Default: Not defined = no text
    # Text is placed in lower left corner
    text_left %t Skycam facing South East %T *d frame%q noise%N
    
    # Draw the number of changed pixed on the images (default: off)
    # Will normally be set to off except when you setup and adjust the motion settings
    # Text is placed in upper right corner
    text_changes off
    
    # This option defines the value of the special event conversion specifier %C
    # You can use any conversion specifier in this option except %C. Date and time
    # values are from the timestamp of the first image in the current event.
    # Default: %Y%m%d%H%M%S
    # The idea is that %C can be used filenames and text_left/right for creating
    # a unique identifier for each event.
    text_event %Y%m%d%H%M%S
    
    # Draw characters at twice normal size on images. (default: off)
    text_double on
    
    
    # Text to include in a JPEG EXIF comment
    # May be any text, including conversion specifiers.
    # The EXIF timestamp is included independent of this text.
    ;exif_text %i%J/%K%L
    
    ############################################################
    # Target Directories and filenames For Images And Films
    # For the options snapshot_, picture_, movie_ and timelapse_filename
    # you can use conversion specifiers
    # %Y = year, %m = month, %d = date,
    # %H = hour, %M = minute, %S = second,
    # %v = event, %q = frame number, %t = camera id number,
    # %D = changed pixels, %N = noise level,
    # %i and %J = width and height of motion area,
    # %K and %L = X and Y coordinates of motion center
    # %C = value defined by text_event
    # Quotation marks round string are allowed.
    ############################################################
    
    # Target base directory for pictures and films
    # Recommended to use absolute path. (Default: current working directory)
    target_dir /home/pi/skycam-snapshots
    
    # File path for snapshots (jpeg or ppm) relative to target_dir
    # Default: %v-%Y%m%d%H%M%S-snapshot
    # Default value is equivalent to legacy oldlayout option
    # For Motion 3.0 compatible mode choose: %Y/%m/%d/%H/%M/%S-snapshot
    # File extension .jpg or .ppm is automatically added so do not include this.
    # Note: A symbolic link called lastsnap.jpg created in the target_dir will always
    # point to the latest snapshot, unless snapshot_filename is exactly 'lastsnap'
    snapshot_filename %v-%Y%m%d%H%M%S-snapshot
    
    # File path for motion triggered images (jpeg or ppm) relative to target_dir
    # Default: %v-%Y%m%d%H%M%S-%q
    # Default value is equivalent to legacy oldlayout option
    # For Motion 3.0 compatible mode choose: %Y/%m/%d/%H/%M/%S-%q
    # File extension .jpg or .ppm is automatically added so do not include this
    # Set to 'preview' together with best-preview feature enables special naming
    # convention for preview shots. See motion guide for details
    picture_filename %v-%Y%m%d%H%M%S-%q
    
    # File path for motion triggered ffmpeg films (movies) relative to target_dir
    # Default: %v-%Y%m%d%H%M%S
    # File extensions(.mpg .avi) are automatically added so do not include them
    movie_filename %v-%Y%m%d%H%M%S
    
    # File path for timelapse movies relative to target_dir
    # Default: %Y%m%d-timelapse
    # File extensions(.mpg .avi) are automatically added so do not include them
    timelapse_filename %Y%m%d-timelapse
    
    ############################################################
    # Global Network Options
    ############################################################
    # Enable IPv6 (default: off)
    ipv6_enabled off
    
    ############################################################
    # Live Stream Server
    ############################################################
    
    # The mini-http server listens to this port for requests (default: 0 = disabled)
    stream_port 8081
    
    # Quality of the jpeg (in percent) images produced (default: 50)
    stream_quality 75
    
    # Output frames at 1 fps when no motion is detected and increase to the
    # rate given by stream_maxrate when motion is detected (default: off)
    stream_motion off
    
    # Maximum framerate for stream streams (default: 1)
    stream_maxrate 100
    
    # Restrict stream connections to localhost only (default: on)
    stream_localhost off
    
    # Limits the number of images per connection (default: 0 = unlimited)
    # Number can be defined by multiplying actual stream rate by desired number of seconds
    # Actual stream rate is the smallest of the numbers framerate and stream_maxrate
    stream_limit 0
    
    # Set the authentication method (default: 0)
    # 0 = disabled
    # 1 = Basic authentication
    # 2 = MD5 digest (the safer authentication)
    stream_auth_method 0
    
    # Authentication for the stream. Syntax username:password
    # Default: not defined (Disabled)
    stream_authentication admin:admin
    
    # Percentage to scale the stream image for preview
    # Default: 25
    ; stream_preview_scale 25
    
    # Have stream preview image start on a new line
    # Default: no
    ; stream_preview_newline no
    
    ############################################################
    # HTTP Based Control
    ############################################################
    
    # TCP/IP port for the http server to listen on (default: 0 = disabled)
    webcontrol_port 8181
    
    # Restrict control connections to localhost only (default: on)
    webcontrol_localhost on
    
    # Output for http server, select off to choose raw text plain (default: on)
    webcontrol_html_output on
    
    # Authentication for the http based control. Syntax username:password
    # Default: not defined (Disabled)
    webcontrol_authentication admin:admin
    
    
    
    ############################################################
    # External Commands, Warnings and Logging:
    # You can use conversion specifiers for the on_xxxx commands
    # %Y = year, %m = month, %d = date,
    # %H = hour, %M = minute, %S = second,
    # %v = event, %q = frame number, %t = camera id number,
    # %D = changed pixels, %N = noise level,
    # %i and %J = width and height of motion area,
    # %K and %L = X and Y coordinates of motion center
    # %C = value defined by text_event
    # %f = filename with full path
    # %n = number indicating filetype
    # Both %f and %n are only defined for on_picture_save,
    # on_movie_start and on_movie_end
    # Quotation marks round string are allowed.
    ############################################################
    
    # Do not sound beeps when detecting motion (default: on)
    # Note: Motion never beeps when running in daemon mode.
    quiet on
    
    # Command to be executed when an event starts. (default: none)
    # An event starts at first motion detected after a period of no motion defined by event_gap
    ; on_event_start value
    
    # Command to be executed when an event ends after a period of no motion
    # (default: none). The period of no motion is defined by option event_gap.
    ; on_event_end value
    
    # Command to be executed when a picture (.ppm|.jpg) is saved (default: none)
    # To give the filename as an argument to a command append it with %f
    ; on_picture_save value
    
    # Command to be executed when a motion frame is detected (default: none)
    ; on_motion_detected value
    
    # Command to be executed when motion in a predefined area is detected
    # Check option 'area_detect'.   (default: none)
    ; on_area_detected value
    
    # Command to be executed when a movie file (.mpg|.avi) is created. (default: none)
    # To give the filename as an argument to a command append it with %f
    ; on_movie_start value
    
    # Command to be executed when a movie file (.mpg|.avi) is closed. (default: none)
    # To give the filename as an argument to a command append it with %f
    ; on_movie_end value
    
    # Command to be executed when a camera can't be opened or if it is lost
    # NOTE: There is situations when motion don't detect a lost camera!
    # It depends on the driver, some drivers dosn't detect a lost camera at all
    # Some hangs the motion thread. Some even hangs the PC! (default: none)
    ; on_camera_lost value
    
    
    ############################################################
    # Video Loopback Device (vloopback project)
    ############################################################
    
    # Output images to a video4linux loopback device
    # The value '-' means next available (default: not defined)
    ; video_pipe value
    
    # Output motion images to a video4linux loopback device
    # The value '-' means next available (default: not defined)
    ; motion_video_pipe value
    
    
    ##############################################################
    # camera config files - One for each camera.
    # Except if only one camera - You only need this config file.
    # If you have more than one camera you MUST define one camera
    # config file for each camera in addition to this config file.
    ##############################################################
    
    # Remember: If you have more than one camera you must have one
    # camera file for each camera. E.g. 2 cameras requires 3 files:
    # This motion.conf file AND camera1.conf and camera2.conf.
    # Only put the options that are unique to each camera in the
    # camera config files.
    camera /etc/motion/camera1.conf
    ; camera /etc/motion/camera2.conf
    ; camera /etc/motion/camera3.conf
    ; camera /etc/motion/camera4.conf
    
    
    ##############################################################
    # Camera config directory - One for each camera.
    ##############################################################
    #
    camera_dir /etc/motion/conf.d
    

    Here is my /etc/motion/camera1.conf: (This is the entire file)

    # /etc/motion/camera1.conf
    #
    # This config file was generated by motion 4.0
    
    ###########################################################
    # Capture device options
    ############################################################
    
    # Camera Id
    # Consistent identification number to assign to each camera across multiple
    # invocations of Motion.
    # Default: The order when the camera file was read
    # camera_id = 1
    
    # Videodevice to be used for capturing  (default /dev/video0)
    # for FreeBSD default is /dev/bktr0 
    videodevice /dev/video0
    
    # The video input to be used (default: -1)
    # Should normally be set to 1 for video/TV cards, and -1 for USB cameras 
    input -1
    
    # Draw a user defined text on the images using same options as C function strftime(3)
    # Default: Not defined = no text
    # Text is placed in lower left corner
    text_left %t Skycam facing SE %T *d frame%q noise%N
    
    
    ############################################################
    # Target Directories and filenames For Images And Films
    # For the options snapshot_, picture_, mpeg_ and timelapse_filename
    # you can use conversion specifiers
    # %Y = year, %m = month, %d = date,
    # %H = hour, %M = minute, %S = second,
    # %v = event, %q = frame number, %t = camera id number,
    # %D = changed pixels, %N = noise level,
    # %i and %J = width and height of motion area,
    # %K and %L = X and Y coordinates of motion center
    # %C = value defined by text_event
    # Quotation marks round string are allowed.
    ############################################################
    
    # Target base directory for pictures and films
    # Recommended to use absolute patch. (Default: current working directory)
    #target_dir /tmp/motion/cam1
    
    # File path for motion triggered images (jpeg or ppm) relative to target_dir
    # Default: %v-%Y%m%d%H%M%S-%q
    # Default value is equivalent to legacy oldlayout option
    # For Motion 3.0 compatible mode choose: %Y/%m/%d/%H/%M/%S-%q
    # File extension .jpg or .ppm is automatically added so do not include this
    # Set to 'preview' together with best-preview feature enables special naming
    # convention for preview shots. See motion guide for details
    picture_filename CAM1_%v-%Y%m%d%H%M%S-%q
    
    
    ############################################################
    # Live Stream Server
    ############################################################
    
    # The mini-http server listens to this port for requests (default: 0 = disabled)
    stream_port 8081
    
    # Command to be executed when a picture (.ppm|.jpg) is saved (default: none)
    # The filename of the picture is appended as an argument for the command.
    #on_picture_save /usr/local/motion-extras/camparse2.pl
    
    # Command to be executed when a movie file (.mpg|.avi) is closed. (default: none)
    # Filename of movie is appended as an argument for the command.
    #on_movie_end /usr/local/motion-extras/mpegparse2.pl 
    
    • NoviceUbuntuGeek
      NoviceUbuntuGeek over 6 years
      If no one here has any ideas do you know where I might be able to find help?