---
name: "motion"
section: "1"
platform: "linux"
package: "motion"
version: "4.7.1-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/motion"
---

# motion(1)

Detect motion using a video4linux device or network camera

## NAME

motion -   Detect motion using a video4linux device or network camera

## SYNOPSIS

**motion \[ -hbnsm \] \[ -c config file path \] \[ -d level \] \[ -k level \] \[ -p pid\_file \]\[ -l log\_file \]**

## DESCRIPTION

*Motion* uses a video4linux device or network camera to detect motion. If motion is detected both normal and motion pictures can be taken. Motion can also take actions to notify you if needed. Creation of automated snapshots is also possible.

## OPTIONS

- **-c**

  Full path and filename of config file. For example:  */home/kurt/motion.conf*  The default is  */usr/local/etc/motion* unless specified differently when building Motion. Many RPMs and Debian packages will use */etc* or */etc/motion* as the default.

- **-h**

  Show help screen.

- **-b**

  Run in daemon mode.

- **-n**

  Run in non-daemon mode.

- **-s**

  Run in setup mode. Also forces non-daemon mode.

- **-d**

  Run with message log level 1-9.

- **-k**

  Run with message log type 1-9.

- **-l**

  Full path and file name for the log file.

- **-p**

  Full path and filename for process id file (pid file). E.g /var/run/motion.pid. Default is not defined. Pid file is only created when Motion is started in daemon mode.

- **-m**

  Start in pause mode.

- These are the options that can be used in the config file.

  ## CONFIG FILE OPTIONS

*They are overridden by the commandline!* All number values are integer numbers (no decimals allowed). Boolean options can be on or off (values "1", "yes" and "on" all means true and any other value means false).

- **daemon**

  ```
  Values: on/off
  Default: off
  Description:
  ```

  When specified as ON, Motion goes into daemon (background process) mode and releases the terminal.

- **setup\_mode**

  ```
  Values: on/off
  Default: off
  Description:
  ```

  Start in Setup-Mode, daemon disabled.

- **pid\_file**

  ```
  Values: User specified string
  Default: Not defined
  Description:
  ```

  File to store the process ID, also called pid file.

- **log\_file**

  ```
  Values: User specified string
  Default: Not Defined
  Description:
  ```

  File to save logs messages, if not defined stderr and syslog is used.

- **log\_level**

  ```
  Values: 1 to 9 (EMG, ALR, CRT, ERR, WRN, NTC, INF, DBG, ALL)
  Default: 6 / NTC
  Description:
  ```

  Specify the level of verbosity in the messages sent to the log.

- **log\_type**

  ```
  Values: COR, STR, ENC, NET, DBL, EVT, TRK, VID, ALL
  Default: ALL
  Description:
  ```

  Filter to log messages by type

- **quiet**

  ```
  Values: on/off
  Default: on
  Description:
  ```

  Do not sound beeps when detecting motion

- **native\_language**

  ```
  Values: boolean
  Default: on
  Description:
  ```

  Use this option to enable native language on the webcontrol and log message.  Specify off to have messages provided in English.

- **camera\_name**

  ```
  Values: User specified string
  Default: Not Defined
  Description:
  ```

  User specified string to describe the camera.

- **camera\_id**

  ```
  Values: Numeric identification number for the camera
  Default: The order in which the camera is opened by Motion
  Description:
  ```

  Use this option to assign a number to each camera that is consistent every time that Motion is started. By default Motion will assign a number based upon the sequence in which it reads the configuration and this sequence may not be the same every time that Motion starts.

- **camera**

  ```
  Values: User specified string
  Default: Not Defined
  Description:
  ```

  This option specifies the full path and file name to individual camera files. This option can be listed multiple times. Each camera file should contain the options that are unique to that camera/video device. Common options are obtained from the motion.conf file and values are overwritten from each camera file.  While the motion.conf includes four sample camera files, the actual limit of cameras is only dependent upon the machine capabilities. Remember: If you have more than one camera you must have one camera file for each one. For example, 2 cameras would require 3 files: The 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\_dir**

  ```
  Values: User specified string
  Default: Not Defined
  Description:
  ```

  This option specifies the optional subdirectory that contains the camera config files.

- **target\_dir**

  ```
  Values: User specified string
  Default: Not defined
  Description:
  ```

  Target base directory for pictures and films. It is recommended to use an absolute path. If this option is not defined, the current working directory is used. This option accepts the conversion specifiers included at the end of this manual.

- **video\_device**

  ```
  Values: User specified string
  Default: /dev/video0
  Description:
  ```

  String to specify the video device to be used for capturing. The format is usually /dev/videoX where X varies depending upon the video devices connected to the computer. For FreeBSD certain devices use the bktr subsystem and they will use /dev/bktr0.

- **video\_params**

  ```
  Values: User specified string
  Default: None
  Description:
  ```

  String to specify the parameters to pass in for a video\_device.  The parameters permitted are dependent upon the device.  This only applies to V4L2 devices.  The Motion log reports all the available options for the device.

- **auto\_brightness**

  ```
  Values: 0 - 3
  Default: 0
  Description:
  ```

  The auto\_brightness feature uses the device options to adjust the brightness Only recommended for cameras without auto brightness. 0-disabled, 1=Use brightness, 2=Use exposure, 3=Use absolute exposure.

- **tuner\_device**

  ```
  Values: User Specified String
  Default: /dev/tuner0
  Description:
  ```

  Tuner device to be used for capturing images. This is ONLY used for FreeBSD.

- **roundrobin\_frames**

  ```
  Values: 1 to unlimited
  Default: 1
  Description:
  ```

  Number of frames to capture in each roundrobin step

- **roundrobin\_skip**

  ```
  Values: 1 to unlimited
  Default: 1
  Description:
  ```

  Number of frames to skip before each roundrobin step

- **roundrobin\_switchfilter**

  ```
  Values: on/off
  Default: off
  Description:
  ```

  Filter out noise generated by roundrobin

- **netcam\_url**

  ```
  Values: User specified string
  Default: None
  Description:
  ```

  Full connection URL string to use to connect to a network camera. In addition to standard camera protocols, the following prefixes are added by the Motion application.

  ftp:// mjpg:// mjpeg:// file:// v4l2://

  The connection string is camera specific. It is usually the same as what other video playing applications would use to connect to the camera stream.

- **netcam\_params**

  ```
  Values: User specified string
  Default: Not Defined
  Description:
  ```

  User specified parameters for the network camera.

- **netcam\_high\_url**

  ```
  Values: User specified string
  Default: None
  Description:
  ```

  Full connection URL string to use to connect to a high resolution network camera. The URL must provide a stream of images instead of only a static image. The following prefixes are recognized

  rtsp:// rtmp://

  The connection string is camera specific. It is usually the same as what other video playing applications would use to connect to the camera stream. Motion currently only supports basic authentication for the cameras. Digest is not currently supported. Basic authentication can be specified in the URL or via the netcam\_userpass option.

- **netcam\_high\_params**

  ```
  Values: User specified string
  Default: Not Defined
  Description:
  ```

  User specified parameters for the network camera.

- **netcam\_userpass**

  ```
  Values: User specified string
  Default: Not Defined
  Description:
  ```

  The user id and password required to access the network camera string. Only basic authentication is supported at this time. Format is in user:password format when both a user name and password are required.

- **width**

  ```
  Values: Dependent upon video device
  Default: 640
  Description:
  ```

  Image width in pixels for the video device.

- **height**

  ```
  Values: Dependent upon video device
  Default: 480
  Description:
  ```

  Image height in pixels for the video device

- **framerate**

  ```
  Values: 2 - 100
  Default: 15
  Description:
  ```

  The maximum number of frames to capture in 1 second. The default of 100 will normally be limited by the capabilities of the video device. Typical video devices have a maximum rate of 30.

- **minimum\_frame\_time**

  ```
  Values: 0 to unlimited
  Default: 0
  Description:
  ```

  The minimum time in seconds between capturing picture frames from the camera. The default of 0 disables this option and relies upon the capture rate of the camera. This option is used when you want to capture images at a rate lower than 2 per second.

- **rotate**

  ```
  Values: 0, 90, 180, 270
  Default: 0
  Description:
  ```

  Rotate image this number of degrees. The rotation affects all saved images as well as movies.

- **flip\_axis**

  ```
  Values: none, v, h
  Default: none
  Description:
  ```

  Flip the images vertically or horizontally. The flip affects all saved images as well as movies.

- **locate\_motion\_mode**

  ```
  Values: on/off/preview
  Default: off
  Description:
  ```

  When specified as 'on', locate and draw a box around the moving object. When set 'preview', only draw a box in preview\_shot pictures.

- **locate\_motion\_style**

  ```
  Values:
  ```

  box : Draw traditional box around the part of the image generating the motion

  ```

  ```

  redbox : Draw a red box around the part of the image generating the motion

  ```

  ```

  cross : Draw a cross on the part of the image generating the motion

  ```

  ```

  redcross : Draw a red cross on the part of the image generating the motion

  ```
  Default: box
  Description:
  ```

  When locate\_motion\_mode is enable, this option specifies how the motion will be indicated on the image.

- **text\_left**

  ```
  Values: User specified string
  Default: Not defined
  Description:
  ```

  Text to place in lower left corner of image.  Format specifiers follow C function [strftime(3)](/strftime/3.md)

- **text\_right**

  ```
  Values: User specified string
  Default: %Y-%m-%d\n%T
  Description:
  ```

  Text to place in lower right corner of image.  Format specifiers follow C function [strftime(3)](/strftime/3.md)

- **text\_changes**

  ```
  Values: on/off
  Default: off
  Description:
  ```

  When specified, draw the number of changed pixed on the images. This option will normally be set to off except when you setup and adjust the motion settings. The text is placed in upper right corner of the image.

- **text\_scale**

  ```
  Values: 1 to 10
  Default: 1
  Description:
  ```

  The scale at which to draw text over the image.

- **text\_event**

  ```
  Values: User specified string
  Default: %Y%m%d%H%M%S
  Description:
  ```

  Define the value of the special event conversion specifier %C. The user 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. The %C can be used filenames and text\_left/right for creating a unique identifier for each event.

- **emulate\_motion**

  ```
  Values: on/off
  Default: off
  Description:
  ```

  Always save images even if there was no motion.

- **pause**

  ```
  Values: on/off
  Default: off
  Description:
  ```

  When Motion is started, pause the motion detection.

- **threshold**

  ```
  Values: 1 to unlimited
  Default: 1500
  Description:
  ```

  Threshold for number of changed pixels in an image that triggers motion detection

- **threshold\_maximum**

  ```
  Values: 0, 1 to unlimited
  Default: 0
  Description:
  ```

  Maximum of changed pixels in an image that triggers motion detection.  A value of zero disables this option.

- **threshold\_tune**

  ```
  Values: on/off
  Default: off
  Description:
  ```

  Automatically tune the threshold down if possible.

- **noise\_level**

  ```
  Values: 1 to unlimited
  Default: 32
  Description:
  ```

  Noise threshold for the motion detection.

- **noise\_tune**

  ```
  Values: on/off
  Default: on
  Description:
  ```

  Automatically tune the noise threshold

- **despeckle\_filter**

  ```
  Values:
  e/E : erode
  d/D : dilate
  l : label
  Default: Not defined
  Description:
  ```

  Despeckle motion image using (e)rode or (d)ilate or (l)abel. The 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

- **area\_detect**

  ```
  Values: 1 to 9
  Default: Not Defined
  Description:
  ```

  When motion is detected in the predefined areas indicated below, trigger the script indicated by the on\_area\_detected. The trigger is only activated once during an event. one or more areas can be specified with this option. Note that this option is only used to trigger the indicated script. It does not limit all motion detection events to only the area indicated.

  Image Areas

  123

  456

  789

- **mask\_file**

  ```
  Values: User specified string
  Default: Not defined
  Description:
  ```

  When particular area should be ignored for motion, it can be accomplished using a PGM mask file. The PGM mask file is a specially constructed mask file that allows the user to indicate the areas for which motion should be monitored. This option specifies the full path and name for the mask file.

- **mask\_privacy**

  ```
  Values: User specified string
  Default: Not defined
  Description:
  ```

  The PGM mask file is a specially constructed mask file that allows the user to indicate the areas to remove from all images. This option specifies the full path and name for the privacy mask file.

- **smart\_mask\_speed**

  ```
  Values: 0 to 10
  Default: 0 (off)
  Description:
  ```

  Speed of mask changes when creating a dynamic mask file.

- **lightswitch\_percent**

  ```
  Values: 0 to 100
  Default: 0
  Description:
  ```

  Ignore sudden massive light intensity changes. Triggers when the percentage of the picture area that changed intensity is greater than this value.

- **lightswitch\_frames**

  ```
  Values: 1 to 1000
  Default: 5
  Description:
  ```

  Number of frames to ignore when lightswitch has been triggered.

- **minimum\_motion\_frames**

  ```
  Values: 1 to unlimited
  Default: 1
  Description:
  ```

  The minimum number of picture frames in a row that must contain motion before a event is triggered. The default of 1 means that all motion is detected. The recommended range is 1 to 5.

- **event\_gap**

  ```
  Values: -1 to unlimited
  Default: 60
  Description:
  ```

  The number of seconds of no motion that triggers the end of an event. An event is defined as a series of motion images taken within a short timeframe. The recommended value is 60 seconds.  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.

- **pre\_capture**

  ```
  Values: 0 to unlimited
  Default: 0
  Description:
  ```

  The number of pre-captured (buffered) pictures from before motion was detected that will be output upon motion detection. The recommended range is 0 to 5. It is not recommended to use large values since it will cause Motion to skip frames. To smooth movies use larger values of post\_capture instead.

- **post\_capture**

  ```
  Values: 0 to unlimited
  Default: 0
  Description:
  ```

  Number of frames to capture after motion is no longer detected.

- **Script Options**

  ```
  on_event_start, on_event_end, on_picture_save
  on_motion_detected, on_area_detected, on_movie_start
  on_movie_end, on_camera_lost, on_camera_found
  ```

  ```
  Values: User defined string
  Default: Not defined
  Description:
  ```

  Specify the full path and file name for the script to execute when the indicated event occurs. When a file name is required for the script, append a %f to the script string.

- **picture\_output**

  ```
  Values: on, off, first, best, center
  Default: off
  Description:
  ```

  Output pictures when motion is detected. 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.

- **picture\_output\_motion**

  ```
  Values: on/off
  Default: off
  Description:
  ```

  Output pictures with only the pixels moving object (ghost images)

- **picture\_type**

  ```
  Values: jpeg/ppm/webp/grey
  Default: jpeg
  Description:
  ```

  The file type of output images

- **picture\_quality**

  ```
  Values: 1 to 100
  Default: 75
  Description:
  ```

  The quality (in percent) to be used by the jpeg and webp compression

- **picture\_exif**

  ```
  Values: User specified string
  Default: Not defined
  Description:
  ```

  Text to include in a JPEG EXIF comment

- **picture\_filename**

  ```
  Values: User specified string
  Default: %v-%Y%m%d%H%M%S-%q
  Description:
  ```

  The file path for motion triggered images (jpeg, ppm or webp) relative to target\_dir. The file extension .jpg, .ppm or .webp is automatically added so do not include this. Set to 'preview' together with best-preview feature enables special naming convention for preview shots. This option accepts the conversion specifiers included at the end of this manual.

- **snapshot\_interval**

  ```
  Values: 0 to unlimited
  Default: 0
  Description:
  ```

  When specified as 0, the snapshot feature is disabled. When a value is specified, the value indicates the number of seconds between snapshots.

- **snapshot\_filename**

  ```
  Values: User specified string
  Default: %v-%Y%m%d%H%M%S-snapshot
  Description:
  ```

  The file path for snapshots relative to target\_dir. The file extension .jpg, .ppm or .webp is automatically added so do not include this. A symbolic link called lastsnap.jpg created in the target\_dir will always point to the latest snapshot, unless snapshot\_filename is exactly 'lastsnap' This option accepts the conversion specifiers included at the end of this manual.

- **movie\_output**

  ```
  Values: on/off
  Default: on
  Description:
  ```

  Use ffmpeg to encode movies of the motion.

- **movie\_output\_motion**

  ```
  Values: on/off
  Default: off
  Description:
  ```

  Use ffmpeg to encode movies with only the pixels moving object (ghost images)

- **movie\_max\_time**

  ```
  Values: 0 to unlimited
  Default: 120
  Description:
  ```

  Maximum length in seconds of a movie. When value is exceeded a new movie file is created. The value of 0 means that there is no limit.

- **movie\_bps**

  ```
  Values: 0 to unlimited
  Default: 400000
  Description:
  ```

  Bitrate to be used by the ffmpeg encoder. This option is ignored if movie\_quality is not 0.

- **movie\_quality**

  ```
  Values: 0 to 100
  Default: 60
  Description:
  ```

  Enable and define the variable bitrate for the ffmpeg encoder. movie\_bps is ignored if variable bitrate is enabled. When specified as 0, use the fixed bitrate defined by movie\_bps. When defined as 1 - 100 varies the quality of the movie. A value of 1 is worst quality versus a value of 100 is best quality.

- **movie\_codec**

  ```
  Values:
  Motion videos:
  mpeg4 - Creates .avi file
  msmpeg4 - Creates .avi file
  swf - Flash film with extension .swf
  flv - 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)
  Default: mkv
  Description:
  ```

  For regular motion videos, the container/codec must be available in the ffmpeg installed on the computer.

- **movie\_duplicate\_frames**

  ```
  Values: on/off
  Default: off
  Description:
  ```

  When creating videos, should frames be duplicated in order to keep up with the requested frames per second

- **movie\_passthrough**

  ```
  Values: on/off
  Default: off
  Description:
  ```

  When using a rtsp camera, make movies without decoding the stream.

- **movie\_filename**

  ```
  Values: User specified string
  Default: %v-%Y%m%d%H%M%S
  Description:
  ```

  File path for motion triggered ffmpeg films (movies) relative to target\_dir. The extensions(.swf, .avi, etc) are automatically added so do not include them This option accepts the conversion specifiers included at the end of this manual.

- **movie\_extpipe\_use**

  ```
  Values: on/off
  Default: off
  Description:
  ```

  Use the external pipe in order to encode videos. This is a replacement option for the FFMPEG builtin encoder for movie\_output only. The options movie\_filename and timelapse\_filename are also used from the ffmpeg feature

- **movie\_extpipe**

  ```
  Values: User specified string
  Default: Not defined
  Description:
  ```

  Command line string to receive and process a pipe of images to encode. Generally, use '-' for STDIN

- **timelapse\_interval**

  ```
  Values: 0 to unlimited
  Default: 0
  Description:
  ```

  Number of seconds between frame captures for a timelapse movie. Specify 0 to disable the timelapse.

- **timelapse\_mode**

  ```
  Values:
  hourly
  daily
  weekly-sunday
  weekly-monday
  monthly
  manual
  Default: daily
  Description:
  ```

  File rollover mode for the timelapse video.

- **timelapse\_fps**

  ```
  Values: 0 to unlimited
  Default: 30
  Description:
  ```

  Frames per second used for playback of the timelapse video.

- **timelapse\_codec**

  ```
  Values:
  mpg - Creates mpg file with mpeg-2 encoding.
  mpeg4 - Creates avi file with the default encoding.
  Default: mpg
  Description:
  ```

  For mpg timelapse videos, if motion is shutdown and restarted, new pics will be appended to any previously created file with name indicated for timelapse. For mpeg4 timelapse videos, if motion is shutdown and restarted, new pics will create a new file with the name indicated for timelapse.

- **timelapse\_filename**

  ```
  Values: User specified string
  Default: %Y%m%d-timelapse
  Description:
  ```

  File path for timelapse movies relative to target\_dir. The file extensions(.mpg .avi) are automatically added so do not include them This option accepts the conversion specifiers included at the end of this manual.

- **video\_pipe**

  ```
  Values: User specified string
  Default: Not Defined
  Description:
  ```

  Output images to a video4linux loopback device.

- **video\_pipe\_motion**

  ```
  Values: User specified string
  Default: Not Defined
  Description:
  ```

  Output motion images to a video4linux loopback device.

- **webcontrol\_port**

  ```
  Values: 0 to maximum port number
  Default: 0
  Description:
  ```

  Port number for the web control / preview page.

- **webcontrol\_ipv6**

  ```
  Values: on/off
  Default: off
  Description:
  ```

  Listen to IPv6 localhost instead of IPv4.  This option is also applicable for all streams.

- **webcontrol\_localhost**

  ```
  Values: on/off
  Default: on
  Description:
  ```

  Restrict control connections to localhost only

- **webcontrol\_parms**

  ```
  Values:
  0 = No parameters available to change on web control
  1 = Limited list of parameters available to change
  2 = Advanced list of parameters (usually requires restart to become effective)
  3 = Restricted list of parameters (User IDs, passwords, commands to execute, etc)
  Default: 0
  Description:
  ```

  The type of parameters that are able to be modified via the web interface.  This parameter can never be modified via the web interface and must be specified directly in the configuration file.

- **webcontrol\_interface**

  ```
  Values: 0-2
  Default: 0
  Description:
  ```

  Specified the web control interface type.  0=css, 1=text, 2=legacy

- **webcontrol\_auth\_method**

  ```
  Values:
  0 = disabled
  1 = Basic authentication
  2 = MD5 digest (the safer authentication)
  Default: 0
  Description:
  ```

  The authentication method to use for the webcontrol.

- **webcontrol\_authentication**

  ```
  Values: User specified string
  Default: Not defined
  Description:
  ```

  The username and password to use for authentication of the webcontrol. The format is Username:Password

- **webcontrol\_tls**

  ```
  Values: on/off
  Default: off
  Description:
  ```

  When specified as on, use SSL/TLS for the webcontrol.

- **webcontrol\_cert**

  ```
  Values: User specified string
  Default: Not defined
  Description:
  ```

  The full path to the SSL certification file for webcontrol

- **webcontrol\_key**

  ```
  Values: User specified string
  Default: Not defined
  Description:
  ```

  The full path to the SSL key file for webcontrol

- **webcontrol\_header\_params**

  ```
  Values: User specified string
  Default: Not defined
  Description:
  ```

  The comma separated header=value pairs to use for the webcontrol responses.

- **webcontrol\_lock\_attempts**

  ```
  Values: integer
  Default: 5
  Description:
  ```

  The number of failed authentication attempts before IP is locked out.

- **webcontrol\_lock\_minutes**

  ```
  Values: integer
  Default: 5
  Description:
  ```

  The number of minutes a failed authentication IP is locked out.

- **webcontrol\_lock\_max\_ips**

  ```
  Values: integer
  Default: 5
  Description:
  ```

  The maximum number of concurrent IPs that can be locked out.

- **stream\_port**

  ```
  Values: 0 to port number limit
  Default: 0
  Description:
  ```

  This option is the port number that the mini-http server listens on for streams of the pictures.

- **stream\_localhost**

  ```
  Values: on/off
  Default: on
  Description:
  ```

  Restrict stream connections to localhost only

- **stream\_auth\_method**

  ```
  Values:
  0 = disabled
  1 = Basic authentication
  2 = MD5 digest (the safer authentication)
  Default: 0
  Description:
  ```

  The authentication method to use for viewing the stream.

- **stream\_authentication**

  ```
  Values: User specified string
  Default: Not defined
  Description:
  ```

  The username and password to use for authentication of the stream. The format is Username:Password

- **stream\_tls**

  ```
  Values: on/off
  Default: off
  Description:
  ```

  When specified as on, use SSL/TLS for the stream port.

- **stream\_header\_params**

  ```
  Values: User specified string
  Default: Not defined
  Description:
  ```

  The comma separated header=value pairs to send for the stream responses.

- **stream\_preview\_scale**

  ```
  Values: 1 to 100
  Default: 25
  Description:
  ```

  This defines what percentage the stream image should be scaled to for the preview page

- **stream\_preview\_newline**

  ```
  Values: on/off
  Default: off
  Description:
  ```

  When the image is put on the preview page, should the image start on a new line. This option allows the user to specify whether the preview images should be side by side or stacked on the page.

- **stream\_preview\_method**

  ```
  Values: 0 to 2
  Default: 0
  Description:
  ```

  Method to display images on webcontrol page.  0=Full, 1=Substream, 2=Static

- **stream\_quality**

  ```
  Values: 1 to 100
  Default: 50
  Description:
  ```

  The quality in percent for the jpg images streamed.

- **stream\_grey**

  ```
  Values: on/off
  Default: off
  Description:
  ```

  Send the live stream of the camera in grey (black and white) instead of color.

- **stream\_maxrate**

  ```
  Values: 1 to unlimited
  Default: 1
  Description:
  ```

  Maximum frame rate to send to stream

- **stream\_motion**

  ```
  Values: on,off
  Default: off
  Description:
  ```

  Limit stream to 1 fps when no motion is being detected.

- **database\_type**

  ```
  Values: mysql, mariadb, postgresql, sqlite3
  Default: Not defined
  Description:
  ```

  The type of database being used.

- **database\_dbname**

  ```
  Values: User defined string
  Default: Not defined
  Description:
  ```

  The name of the database being used (dbname). For SQLite3, the full path to the database.

- **database\_host**

  ```
  Values: User defined string
  Default: localhost
  Description:
  ```

  The hostname, DNS name, or IP address at which the database is running. Optionally for PostgreSQL, full path of the local directory containing its Unix domain pipe. For SQLite3, ignored.

- **database\_port**

  ```
  Values: 0 to maximum port number
  Default: Not defined
  Description:
  ```

  TCP port number used for database access. For SQLite3, ignored. Default ports used by DBMSs: MySQL & MariaDB, 3306; PostgreSQL, 5432.

- **database\_user**

  ```
  Values: User defined string
  Default: Not Defined
  Description:
  ```

  The username to access the database. For SQLite3, ignored.

- **database\_password**

  ```
  Values: User defined string
  Default: Not Defined
  Description:
  ```

  The database password for the user to access the database. For SQLite3, ignored.

- **database\_busy\_timeout**

  ```
  Values: 0 to unlimited
  Default: 0
  Description:
  ```

  SQLite3 only: database wait time in milliseconds for locked database to be unlocked before returning database locked error

- **sql\_log\_picture**

  ```
  Values: on/off
  Default: off
  Description:
  ```

  Log to the database when creating motion triggered picture file

- **sql\_log\_snapshot**

  ```
  Values: on/off
  Default: off
  Description:
  ```

  Log to the database when creating a snapshot image file

- **sql\_log\_movie**

  ```
  Values: on/off
  Default: off
  Description:
  ```

  Log to the database when creating motion triggered movie file

- **sql\_log\_timelapse**

  ```
  Values: on/off
  Default: off
  Description:
  ```

  Log to the database when creating timelapse movies file

- **sql\_query**

  ```
  Values: User defined string
  Default: Not defined
  Description:
  ```

  SQL statement to execute when Motion saves an image file or begins recording a movie and the corresponding file type's sql\_log\_\* configuration option is set on. Use same conversion specifiers as for text features. Additional special conversion specifiers are:

  %n = the number representing the file\_type %f = filename with full path

  Sample table set up (not sql\_query):

  Mysql:  CREATE TABLE security (camera INTEGER NOT NULL, filename CHAR(80) NOT NULL, frame INTEGER, file\_type INTEGER NOT NULL, time\_stamp DATETIME NOT NULL, text\_event CHAR(255));

  Postgresql: CREATE TABLE security (camera INTEGER NOT NULL, filename VARCHAR NOT NULL, frame INTEGER, file\_type INTEGER NOT NULL, time\_stamp TIMESTAMP NOT NULL, text\_event VARCHAR);

  Sample sql\_query

  INSERT INTO security(camera, filename, frame, file\_type, time\_stamp, text\_event) VALUES(%t, '%f', %q, %n, '%Y-%m-%d %T', '%C')

- **sql\_query\_start**

  ```
  Values: User defined string
  Default: Not defined
  Description:
  ```

  SQL statement to execute at the start of a motion event. When the related table schema (and, for PostgreSQL, a RETURNING clause included in this statement) provide for it, the database generates a table-unique event ID that is returned and substituted for the %{dbeventid} conversion specifier. When no valid value is returned, %{dbeventid} is replaced by zero.

- **sql\_query\_stop**

  ```
  Values: User defined string
  Default: Not defined
  Description:
  ```

  SQL statement to execute upon closure of a motion event movie or timelapse movie file, provided the corresponding file type's sql\_log\_\* configuration option is set on.

- **track\_type**

  ```
  Values:
  0 = none
  1 = stepper
  2 = iomojo
  3 = pwc
  4 = generic
  5 = uvcvideo
  6 = servo
  Default: 0
  Description:
  ```

  This option specifies the type of tracker. The generic type enables the definition of motion center and motion size to be used with the conversion specifiers for options like on\_motion\_detected

- **track\_auto**

  ```
  Values: on/off
  Default: off
  Description:
  ```

  Enables/disables the automatic tracking.

- **track\_port**

  ```
  Values: User specified string
  Default: Not defined
  Description:
  ```

  The serial port of the motor.  For example /dev/ttyS0

- **Tracking options**

  ```
  track_motorx, track_motorx_reverse, track_motory, track_motory_reverse
  track_maxx, track_minx, track_maxy, track_miny, track_homex, track_homey
  track_iomojo_id, track_step_angle_x, track_step_angle_y, track_move_wait
  track_speed, track_stepsize
  ```

  ```
  Values: device dependent
  Default: 0
  Description:
  ```

  These options specify the parameters for cameras with tracking capabilities.

- **track\_generic\_move**

  ```
  Values: User specified string
  Default: Not defined
  Description:
  ```

  Full path and file name for the script to execute to move a camera in generic tracking mode.

## SIGNALS

Motion responds to the following signals:

- **SIGHUP**

  The config file will be reread.

- **SIGTERM**

  If needed motion will create an movie file of the last event and exit

- **SIGUSR1**

  Motion will create an movie file of the current event.

## NOTES

- **Snapshot**

  A snapshot is a picture taken at regular intervals independently of any movement in the picture.

- **Motion image**

  A "motion" image/movie shows the pixels that have actually changed during the last frames. These pictures are not very useful for normal presentation to the public but they are quite useful for testing and tuning and making mask files as you can see exactly where motion sees something moving. Motion is shown in greytones. If labelling is enabled the largest area is marked as blue. Smart mask is shown in read.

- **Normal image**

  A "normal" image is the real image taken by the camera with text overlayed.

- **Cameras and config files**

  If Motion was invoked with command line option -c pathname Motion will expect the config file to be as specified. When you specify the config file on the command line with -c you can call it anything.\
   If you do not specify -c or the filename you give Motion does not exist, Motion will search for the configuration file called 'motion.conf' in the following order:\
   1\. Current directory from where motion was invoked\
   2\. Then in a directory called '.motion' in the current users home directory (shell environment variable $HOME). E.g. /home/goofy/.motion/motion.conf\
   3\. The motion/ subdirectory inside the directory defined by the --sysconfdir=DIR when running .configure during installation of Motion (If this option was not defined the default is /usr/local/etc/)\
   If you have write access to /usr/local/etc/motion then the editor recommends having only one motion.conf file in the default /usr/local/etc/motion directory.\
   Motion has a configuration file in the distribution package called motion-dist.conf. When you run 'make install' this files gets copied to the /usr/local/etc/motion directory.\
   The configuration file needs to be renamed from motion-dist.conf to motion.conf. The original file is called motion-dist.conf so that your perfectly working motion.conf file does not accidentally get overwritten when you re-install or upgrade to a newer version of Motion.\
   If you have more than one camera you should not try and invoke Motion more times. Motion is made to work with more than one camera in a very elegant way and the way to do it is to create a number of camera config files. Motion will then create an extra thread of itself for each camera. If you only have one camera you only need the motion.conf file. The minute you have two or more cameras you must have one camera config file per camera besides the motion.conf file.\
   So if you have for example two cameras you need motion.conf and two camera config files. Total of 3 config files.\
   An option that is common to all cameras can be placed in motion.conf. (You can also put all parameters in the camera files but that makes a lot of editing when you change a common thing).\
   An option that is unique to a camera must be defined in each camera file.\
   The first camera is defined in the first camera file called from motion.conf. The 2nd camera is defined in the 2nd camera file called from motion.conf etc.\
   Any option defined in motion.conf will be used for all cameras except for the cameras in which the same option is defined in a camera config file.\
   Motion reads its configuration parameters in the following sequence. If the same parameter exists more than one place the last one read wins.\
   1\. Motion reads the configuration file motion.conf from the beginning of the file going down line by line.\
   2\. If the option "camera" is defined in motion.conf, the camera configuration file(s) is/(are) read.\
   3\. Motion continues reading the rest of the motion.conf file. Any options from here will overrule the same option previously defines in a camera config file.\
   4\. Motion reads the command line option again overruling any previously defined options.\
   So always call the camera config files in the end of the motion.conf file. If you define options in motion.conf AFTER the camera file calls, the same options in the camera files will never be used. So always put the camera file call at the end of motion.conf.\
   If motion is built without specific features such as ffmpeg, mysql etc it will ignore the options that belongs to these features. You do not have to remove them or comment them out.\
   If you run the http control command http://host:port/0/config/writeyes, motion will overwrite motion.conf and all the camera.conf files by autogenerated config files neatly formatted and only with the features included that Motion was built with. If you later re-build Motion with more features or upgrade to a new version, you can use your old config files, run the motion.conf.write command, and you will have new config files with the new options included all set to their default values. This makes upgrading very easy to do.

- **Conversion Specifiers for Advanced Filename and Text Features**

  The table below shows all the supported Conversion Specifiers you can use in the options text\_left, text\_right, snapshot\_filename, jpeg\_filename, ffmpeg\_filename, timelapse\_filename, on\_event\_start, on\_event\_end, on\_picture\_save, on\_movie\_start, on\_movie\_end, and on\_motion\_detected.\
   In text\_left and text\_right you can additionally use '\\n' for new line.

- **%a**

  The abbreviated weekday name according to the current locale.

- **%A**

  The full weekday name according to the current locale.

- **%b**

  The abbreviated month name according to the current locale.

- **%B**

  The full month name according to the current locale.

- **%c**

  The preferred date and time representation for the current locale.

- **%C**

  Text defined by the text\_event feature

- **%d**

  The day of the month as a decimal number (range 01 to 31).

- **%D**

  Number of pixels detected as Motion. If labelling is enabled the number is the number of pixels in the largest labelled motion area.

- **%E**

  Modifier: use alternative format, see below.

- **%f**

  File name - used in the on\_picture\_save, on\_movie\_start, on\_movie\_end, and sql\_query features.

- **%F**

  Equivalent to %Y-%m-%d (the ISO 8601 date format).

- **%h**

  The height of the image.

- **%H**

  The hour as a decimal number using a 24-hour clock (range 00 to 23).

- **%i**

  Width of the rectangle containing the motion pixels (the rectangle that is shown on the image when locate is on).

- **%I**

  The hour as a decimal number using a 12-hour clock (range 01 to 12).

- **%j**

  The day of the year as a decimal number (range 001 to 366).

- **%J**

  Height of the rectangle containing the motion pixels (the rectangle that is shown on the image when locate is on).

- **%k**

  The hour (24-hour clock) as a decimal number (range 0 to 23); single digits are preceded by a blank. (See also %H.)

- **%K**

  X coordinate in pixels of the center point of motion. Origin is upper left corner.

- **%l**

  The hour (12-hour clock) as a decimal number (range 1 to 12); single digits are preceded by a blank. (See also %I.)

- **%L**

  Y coordinate in pixels of the center point of motion. Origin is upper left corner and number is positive moving downwards (I may change this soon).

- **%m**

  The month as a decimal number (range 01 to 12).

- **%M**

  The minute as a decimal number (range 00 to 59).

- **%n**

  Filetype as used in the on\_picture\_save, on\_movie\_start, on\_movie\_end, and sql\_query features.

- **%N**

  Noise level.

- **%o**

  Threshold. The number of detected pixels required to trigger motion. When threshold\_tune is 'on' this can be used to show the current tuned value of threshold.

- **%p**

  Either 'AM' or 'PM' according to the given time value, or the corresponding strings for the current locale. Noon is treated as \`pm' and midnight as \`am'.

- **%P**

  Like %p but in lowercase: \`am' or \`pm' or a corresponding string for the current locale.

- **%q**

  Picture frame number within current second. For jpeg filenames this should always be included in the filename if you save more then 1 picture per second to ensure unique filenames. It is not needed in filenames for mpegs.

- **%Q**

  Number of detected labels found by the despeckle feature

- **%r**

  The time in a.m. or p.m. notation.

- **%R**

  The time in 24-hour notation (%H:%M).

- **%s**

  The number of seconds since the Epoch, i.e., since 1970-01-01 00:00:00 UTC.

- **%S**

  The second as a decimal number (range 00 to 61).

- **%t**

  Camera ID number

- **%T**

  The time in 24-hour notation (%H:%M:%S).

- **%u**

  The day of the week as a decimal, range 1 to 7, Monday being 1. See also %w.

- **%U**

  The week number of the current year as a decimal number, range 00 to 53, starting with the first Sunday as the first day of week 01. See also %V and %W.

- **%v**

  Event number. An event is a series of motion detections happening with less than 'gap' seconds between them.

- **%V**

  The ISO 8601:1988 week number of the current year as a decimal number, range 01 to 53, where week 1 is the first week that has at least 4 days in the current year, and with Monday as the first day of the week. See also %U and %W.

- **%w**

  The day of the week as a decimal, range 0 to 6, Sunday being 0. See also %u.

- **%W**

  The week number of the current year as a decimal number, range 00 to 53, starting with the first Monday as the first day of week 01.

- **%x**

  The preferred date representation for the current locale without the time.

- **%X**

  The preferred time representation for the current locale without the date.

- **%y**

  The year as a decimal number without a century (range 00 to 99).

- **%Y**

  The year as a decimal number including the century.

- **%z**

  The time-zone as hour offset from GMT.

- **%Z**

  The time zone or name or abbreviation.

- **%$**

  The camera name.

- **%{host}**

  The computer host name

- **%{fps}**

  The frame per seconds.

- **%{dbeventid}**

  The id number returned from mysql\_insert\_id.

- **%{ver}**

  The version number of Motion.

- **More information**

  Motion homepage: https://motion-project.github.io/

  Motion Guide (user and installation guide):\

## AUTHORS

Jeroen Vreeken (pe1rxq@amsat.org), Folkert van Heusden, Kenneth Lavrsen (kenneth@lavrsen.dk), Juan Angulo Moreno \<juan@apuntale.com\>, the motion-project team, and many others
