Motion - Intuitive Option Names Discussion
You are here: Foswiki>Motion Web>RoadMap>IntuitiveOptionNamesDiscussion (05 Feb 2010, AngelCarpintero)Edit Attach

Intuitive Option Names Discussion

One day I am going to upset off a lot of you all my renaming many of the original Motion options. (hopefully you will later forgive me).

  • gap should be event_gap - after minimum gap is removed the gap name is OK because it is the only gap left
  • minimum_gap should be picture_gap - replaced by better minimum_frame_time feature
  • output_normal should be something like output_pictures
  • output_motion should be something like output_debug_pictures
  • output_all is directly misleading.
  • ffmpeg_cap_new should be ffmpeg_output_movies
  • ffmpeg_cap_motion should be ffmpeg_output_debug_movies
  • Remove duplicate database parameters by database engine and add a generic database_* options.
and many more renames that would make Motion more intuitive.

Once in the early days of Motion there were 10 options and the names made sense. But now we have 100+ and it is time to once and for all re-define them. Also in preparation for later Motion version with plugin feature.

The table below lists all options currently in 3.2.5.1. Let us try and come up with the right names. More proposals per option is OK.

Current Name Proposed New Name Description
auto_brightness   Let motion regulate the brightness of a video device. Only recommended for cameras without auto brightness
brightness   The brightness level for the video device.
contrast   The contrast level for the video device.
control_authentication webcontrol_authentication To protect HTTP Control by username and password, use this option for HTTP 1.1 Basic authentication. The string is specified as username:password. Do not specify this option for no authentication. This option must be placed in motion.conf and not in a thread config file.
control_html_output webcontrol_html_output Enable HTML in the answer sent back to a browser connecting to the control_port. This option must be placed in motion.conf and not in a thread config file.
control_localhost webcontrol_localhost Limits the http (html) control to the localhost. This option must be placed in motion.conf and not in a thread config file.
control_port webcontrol_port Sets the port number for the http (html using browser) based remote control. This option must be placed in motion.conf and not in a thread config file.
daemon   Start in daemon (background) mode and release terminal. This option must be placed in motion.conf and not in a thread config file.
despeckle despeckle_filter Despeckle motion image using combinations of (E/e)rode or (D/d)ilate. And ending with optional (l)abeling.
ffmpeg_bps   Bitrate of mpegs produced by ffmpeg. Bitrate is bits per second. Default: 400000 (400kbps). Higher value mans better quality and larger files. Option requires that ffmpeg libraries are installed.
ffmpeg_cap_motion ffmpeg_output_debug_movies Use ffmpeg libraries to encode motion type mpeg movies where you only see the pixels that changes.
ffmpeg_cap_new ffmpeg_output_movies Use ffmpeg libraries to encode mpeg movies in realtime.
ffmpeg_deinterlace   Use ffmpeg to deinterlace video. Necessary if you use an analog camera and see horizontal combing on moving objects in video or pictures.
ffmpeg_timelapse   Create a timelapse movie saving a picture frame at the interval in seconds set by this parameter. Set it to 0 if not used.
ffmpeg_timelapse_mode   The file rollover mode of the timelapse video.
ffmpeg_variable_bitrate   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 2 - 31 where 2 means best quality and 31 is worst.
ffmpeg_video_codec   Codec to be used by ffmpeg for the video compression. Timelapse mpegs are always made in mpeg1 format independent from this option.
framerate   Maximum number of frames to be captured from the camera per second.
frequency   The frequency to set the tuner to (kHz). Valid range: per tuner spec, default: 0 (Don't set it)
gap event_gap 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.
height   The height of each frame in pixels.
hue   The hue level for the video device.
input   Input channel to use expressed as an integer number starting from 0. Should normally be set to 1 for video/TV cards, and 8 for USB cameras.
NEW ipv6_enabled Enable or disable IPV6 for http control and stream (default: off)
jpeg_filename picture_filename File path for motion triggered images (jpeg or ppm) relative to target_dir. Value 'preview' makes a jpeg filename with the same name body as the associated saved mpeg movie file.
lightswitch   Ignore sudden massive light intensity changes given as a percentage of the picture area that changed intensity.
locate locate_motion Locate and draw a box around the moving object. Value 'preview' makes Motion only draw a box on a saved preview jpeg image and not on the saved mpeg movie. NEW : on , red, center, redcross, off
mask_file   PGM file to use as a sensitivity mask. This picture MUST have the same width and height as the frames being captured and be in binary format.
max_mpeg_time max_movie_time The maximum length of an mpeg movie in seconds. Set this to zero for unlimited length.
minimum_frame_time   The minimum time between capturing each picture frame in seconds
minimum_motion_frames   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 is 1 to thousands, but it is recommended to keep it within 1-10.
motion_video_pipe   The video4linux video loopback input device for motion images. If a particular pipe is to be used then use the device filename of this pipe, if a dash '-' is given motion will use /proc/video/vloopback/vloopbacks to locate a free pipe. Default: not set
movie_filename   File path for motion triggered ffmpeg movies (mpeg) relative to target_dir. This was previously called ffmpeg_filename.
NEW database_type database type : mysql, postgresql (default : not defined)
mysql_db database_dbname Name of the MySQL database.
mysql_host database_host IP address or domain name for the MySQL server. Use "localhost" if motion and MySQL runs on the same server.
mysql_password database_password The MySQL password.
mysql_user database_user The MySQL user name.
netcam_http netcam_keepalive The setting for keep-alive of network socket, should improve performance on compatible net cameras.
1.0 -> off : the historical implementation using HTTP/1.0, closing the socket after each http request.
keep_alive -> force : Use HTTP/1.0 requests with keep alive header to reuse the same connection.
1.1 -> on : Use HTTP/1.1 requests that support keep alive as default.
netcam_proxy   URL to use for a netcam proxy server, if required. The syntax is http://myproxy:portnumber
netcam_url   Specify an url to a downloadable jpeg file or raw mjpeg stream to use as input device. Such as an AXIS 2100 network camera.
netcam_userpass   For network cameras protected by username and password, use this option for HTTP 1.1 Basic authentication. The string is specified as username:password. Do not specify this option for no authentication.
noise_level   The noise level is used as a threshold for distinguishing between noise and motion.
noise_tune   Activates the automatic tuning of noise level.
norm   Select the norm of the video device. Values: 0 (PAL), 1 (NTSC), 2 (SECAM), 3 (PAL NC no colour). Default: 0 (PAL)
on_event_end   Command to be executed when an event ends after a period of no motion. The period of no motion is defined by option gap. You can use Conversion Specifiers and spaces as part of the command.
on_event_start   Command to be executed when an event starts. An event starts at first motion detected after a period of no motion defined by gap. You can use ConversionSpecifiers and spaces as part of the command.
on_motion_detected   Command to be executed when a motion frame is detected. You can use Conversion Specifiers and spaces as part of the command.
on_movie_end   Command to be executed when an ffmpeg movie is closed at the end of an event. You can use Conversion Specifiers and spaces as part of the command. Use %f for passing filename (with full path) to the command.
on_movie_start   Command to be executed when an mpeg movie is created. You can use Conversion Specifiers and spaces as part of the command. Use %f for passing filename (with full path) to the command.
on_picture_save   Command to be executed when an image is saved. You can use Conversion Specifiers and spaces as part of the command. Use %f for passing filename (with full path) to the command.
output_all emulate_motion Picture are saved continuously as if motion was detected all the time.
output_motion output_debug_pictures Output pictures with only the moving object. This feature generates the special motion type movies where you only see the pixels that changes as a graytone image. If labelling is enabled you see the largest area in blue. Smartmask is shown in red.
output_normal output_pictures Normal image is an image that is stored when motion is detected. It is the same image that was taken by the camera. I.e. not a motion image like defined by output_motion. Default is that normal images are stored.
NEW picture_type Output images you can specify which type : jpeg , ppm. Default: jpeg
pgsql_db database_dbname Name of the PostgreSQL database.
pgsql_host database_host IP address or domain name for the PostgreSQL server. Use "localhost" if motion and PostgreSQL runs on the same server.
pgsql_password database_password The PostgreSQL password.
pgsql_port database_port The PostgreSQL server port number.      
pgsql_user database_user The PostgreSQL user name.      
post_capture   Specifies the number of frames to be captured after motion has been detected.      
ppm REMOVED Output ppm images instead of jpeg. This uses less CPU time, but causes a LOT of hard disk I/O, and it is generally slower than jpeg.      
pre_capture   Specifies the number of previous frames to be outputted 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 mpegs. To smooth mpegs use larger values of post_capture instead.      
quality   The quality for the jpeg images in percent.      
quiet   Be quiet, don't output beeps when detecting motion.      
rotate   Rotate image the given number of degrees. The rotation affects all saved images as well as mpeg movies.      
roundrobin_frames   Specifies the number of frames to capture before switching inputs, this way also slow switching (e.g. every second) is possible.      
roundrobin_skip   Specifies the number of frames to skip after a switch. (1 if you are feeling lucky, 2 if you want to be safe).      
saturation   The colour saturation level for the video device.      
setup_mode remove , new logging system Run Motion in setup mode.      
smart_mask_speed   Slugginess of the smart mask. Default is 0 = DISABLED. 1 is slow, 10 is fast.      
snapshot_filename   File path for snapshots (jpeg or ppm) relative to target_dir.      
snapshot_interval   Make automated snapshots every 'snapshot_interval' seconds.      
sql_log_image sql_log_picture Log to the database when creating motion triggered image file.      
sql_log_mpeg sql_log_movie Log to the database when creating motion triggered mpeg file.      
sql_log_snapshot   Log to the database when creating a snapshot image file.      
sql_log_timelapse   Log to the database when creating timelapse mpeg file      
sql_query   SQL query string that is sent to the database. The values for each field are given by using convertion specifiers      
switchfilter   Turns the switch filter on or off. The filter can distinguish between most switching noise and real motion. With this you can even set roundrobin_skip to 1 without generating much false detection.      
target_dir ? Target directory for picture and movie files.      
text_changes   Turns the text showing changed pixels on/off.      
text_double   Draw characters at twice normal size on images.      
text_event   This option defines the value of the speciel 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.      
text_left   User defined text overlayed on each in the lower left corner. Use A-Z, a-z, 0-9, " / ( ) @ ~ # < > ¦ , . : - + _ \n and conversion specifiers (codes starting by a %).      
text_right   User defined text overlayed on each in the lower right corner. Use A-Z, a-z, 0-9, " / ( ) @ ~ # < > ¦ , . : - + _ \n and conversion specifiers (codes starting by a %). Default: %Y-%m-%d\n%T = date in ISO format and time in 24 hour clock      
thread   Specifies full path and filename for a thread config file. Each camera needs a thread config file containing the options that are unique to the camera. If you only have one camera you do not need thread config files. If you have two or more cameras you need one thread config file for each camera in addition to motion.conf. This option must be placed in motion.conf and not in a thread config file.      
threshold   Threshold for declaring motion. The threshold is the number of changed pixels counted after noise filtering, masking, despeckle, and labelling.      
threshold_tune FIX or REMOVE Activates the automatic tuning of threshold level.      
timelapse_filename   File path for timelapse mpegs relative to target_dir (ffmpeg only).      
track_auto   Enable auto tracking      
track_iomojo_id   Use this option if you have an iomojo smilecam connected to the serial port instead of a general stepper motor controller.      
track_maxx   The maximum position for servo x.      
track_maxy   The maximum position for servo y.      
track_motorx   The motor number that is used for controlling the x-axis.      
track_motory   The motor number that is used for controlling the y-axis.      
track_move_wait   Delay during which tracking is disabled after auto tracking has moved the camera. Delay is defined as number of picture frames.      
track_port   This is the device name of the serial port to which the stepper motor interface is connected.      
track_speed   Speed to set the motor to.      
track_step_angle_x   Angle in degrees the camera moves per step on the X-axis with auto tracking. Currently only used with pwc type cameras.      
track_step_angle_y   Angle in degrees the camera moves per step on the Y-axis with auto tracking. Currently only used with pwc type cameras.      
track_stepsize   Number of steps to make.      
track_type   Type of tracker.      
tunerdevice   The tuner device used for controlling the tuner in a tuner card. This option is only used when Motion is compiled for FreeBSD.      
video_pipe   The video4linux video loopback input device for normal images. If a particular pipe is to be used then use the device filename of this pipe. If a dash '-' is given motion will use /proc/video/vloopback/vloopbacks to locate a free pipe.      
videodevice   The video device to be used for capturing. Default for Linux is /dev/video0. for FreeBSD the default is /dev/bktr0.      
NEW stream_auth_method Set the authentication method for stream: 0 = disabled
, 1 = Basic authentication ,2 = MD5 digest (the safer authentication). default 0
     
NEW stream_authentication Authentication for the stream. Syntax username:password
Default: not defined (Disabled)
     
webcam_limit stream_limit Limit the number of frames to number frames. After 'stream_limit' number of frames the connection will be closed by motion. The value 0 means unlimited.      
webcam_localhost stream_localhost Limits the access to the stream to the localhost.      
webcam_maxrate stream_maxrate Limit the framerate of the stream. Default is 1. Set the value to 100 for practically unlimited.      
webcam_motion stream_motion If set to 'on' Motion sends slows down the stream to 1 picture per second when no motion is detected. When motion is detected the stream runs as defined by stream_maxrate. When 'off' the stream always runs as defined by webcam_maxrate.      
webcam_port stream_port TCP port on which motion will listen for incoming connects with its stream server.      
webcam_quality stream_quality Quality setting in percent for the mjpeg picture frames transferred over the stream connection. Keep it low to restrict needed bandwidth.      
width   The width in pixels of each frame. Valid range is camera dependent.      

-- KennethLavrsen - 14 Mar 2006

I haven't yet downloaded the latest Motion release, but is ffmpeg_deinterlace merged? If so, it isn't on this list or I am blind (possible).

-- AndrewHamilton - 14 Mar 2006

You are not blind. Good news is - yes it is integrated. Bad news is - I forgot to add it to the Guide. Need to better track the changes in options that I must add to the guide a few hours before a release. I have added it now. ConfigOptionFfmpegDeinterlace.

-- KennethLavrsen - 15 Mar 2006

A couple of suggestions:

1) instead of: max_mpeg_time this: max_event_time -- because max_movie_time is not accurate as motion starts a new event, not a new movie.
2) instead of: output_all this: emulate_motion -- because the option makes motion act as if there is motion.

-- RomanGaufman - 21 May 2008
Topic revision: r15 - 05 Feb 2010, AngelCarpintero
Copyright © 1999-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Please do not email Kenneth for support questions (read why). Use the Support Requests page or join the Mailing List.
This website only use harmless session cookies. See Cookie Policy for details. By using this website you accept the use of these cookies.