Difference between revisions of "motion notes"

From Noah.org
Jump to navigationJump to search
m
 
(3 intermediate revisions by the same user not shown)
Line 2: Line 2:
  
 
http://www.lavrsen.dk/foswiki/bin/view/Motion/WebHome
 
http://www.lavrsen.dk/foswiki/bin/view/Motion/WebHome
 +
 +
 +
Beware of '''800x600''' resolution. Some versions of '''Motion''' have a bug that causes it to error out if the resolution is not a modulo of 16.
  
 
== configuration ==
 
== configuration ==
  
Edit the file '''/etc/motion/motion.conf'''. Below are the settings are most often change. I found that threshold is the most difficult to estimate. Every time I do a project I found that I kind of just have to do a few test runs with different threshold values until I find a value that works. The threshold values can be orders of magnitude different between different conditions. In theory, the '''noisr
+
Edit the file '''/etc/motion/motion.conf'''. Below are the settings are most often change. I found that threshold is the most difficult to estimate. Every time I do a project I found that I kind of just have to do a few test runs with different threshold values until I find a value that works. The threshold values can be orders of magnitude different between different conditions.
 
<pre>
 
<pre>
 
videodevice /dev/video1
 
videodevice /dev/video1
Line 13: Line 16:
 
# There is a hack around this bug. Set the resolution to 1920x1200. The images will actually be
 
# There is a hack around this bug. Set the resolution to 1920x1200. The images will actually be
 
# captured at 1920x1080, but this will satisfy Motion.
 
# captured at 1920x1080, but this will satisfy Motion.
 +
# So, why will the camera capture at 1080? I'm not sure.
 +
# I suspect it just defaults to the nearest workable resolution.
 
width 1920
 
width 1920
# really 1080
+
# Hack around the Motion modulo 16 bug.
 
height 1200
 
height 1200
  
Line 26: Line 31:
 
noise_level 64
 
noise_level 64
  
 +
# %v is the event number.
 
movie_filename %Y%m%d%H%M%S-%v
 
movie_filename %Y%m%d%H%M%S-%v
 
timelapse_filename %Y%m%d-timelapse
 
timelapse_filename %Y%m%d-timelapse
Line 33: Line 39:
  
 
text_right %Y-%m-%d\n%T-%q
 
text_right %Y-%m-%d\n%T-%q
 +
# %v is the event number. %q is the frame number.
 
jpeg_filename %Y%m%d%H%M%S-%v-%q
 
jpeg_filename %Y%m%d%H%M%S-%v-%q
 
snapshot_filename %Y%m%d%H%M%S-snapshot
 
snapshot_filename %Y%m%d%H%M%S-snapshot
Line 49: Line 56:
 
</pre>
 
</pre>
  
A different example:
+
== configuration with action scripts triggered on events ==
 +
 
 +
This configuration will turn lights on or off when motion is detected. This assumes that the camera can see in light conditions when the light is off.
 
<pre>
 
<pre>
 +
# Don't set 800x600 due to the Motion modulo 16 bug.
 
width 640
 
width 640
 
height 480
 
height 480
#movie_filename %Y%m%d%H%M%S-%v
+
#movie_filename %Y%m%d-%H%M%S-%v
 
#timelapse_filename %Y%m%d-timelapse
 
#timelapse_filename %Y%m%d-timelapse
 
gap 3
 
gap 3
 
pre_capture 0
 
pre_capture 0
 
post_capture 0
 
post_capture 0
text_right %Y-%m-%d\n%T-%q
+
text_right %Y%m%d-%H%M%S-%v-%q
jpeg_filename %Y%m%d%H%M%S-%v-%q
+
# %v is the event number. %q is the frame number.
snapshot_filename %Y%m%d%H%M%S-snapshot
+
jpeg_filename %Y%m%d-%H%M%S-%v-%q
 +
snapshot_filename %Y%m%d-%H%M%S-snapshot
 
snapshot_interval 0
 
snapshot_interval 0
 
#snapshot_interval 60
 
#snapshot_interval 60
Line 78: Line 89:
 
on_motion_detected br --port=/dev/ttyUSB0 --house=A --on=1
 
on_motion_detected br --port=/dev/ttyUSB0 --house=A --on=1
 
</pre>
 
</pre>
 +
 +
== ERROR: '''Error opening file ...: Invalid argument''' and '''ffopen_open error creating (timelapse) file [...]: Invalid argument''' ==
 +
 +
This is caused by broken support for linking the old '''ffmpeg''' to the new '''libav-tools'''.
 +
 +
You can try to install the old ffmpeg tools.
 +
<pre>
 +
add-apt-repository ppa:mc3man/trusty-media
 +
apt-get update
 +
apt-get install gstreamer0.10-ffmpeg
 +
</pre>
 +
 +
If that does not work then you can disable all the video creation options in '''motion.conf''', such as '''timelapse'''. Hopefully this '''ffmpeg''' confusion will get sorted out someday.

Latest revision as of 13:06, 29 September 2017


http://www.lavrsen.dk/foswiki/bin/view/Motion/WebHome


Beware of 800x600 resolution. Some versions of Motion have a bug that causes it to error out if the resolution is not a modulo of 16.

configuration

Edit the file /etc/motion/motion.conf. Below are the settings are most often change. I found that threshold is the most difficult to estimate. Every time I do a project I found that I kind of just have to do a few test runs with different threshold values until I find a value that works. The threshold values can be orders of magnitude different between different conditions.

videodevice /dev/video1
# HD 1080p resolution is 1920*1080 (2073600 pixels, or 2.1 megapixels)
# Logitech c910/c920 max resolution 2304 * 1296
# Note that some versions of Motion have a bug that requires the height to be a modulo of 16.
# There is a hack around this bug. Set the resolution to 1920x1200. The images will actually be
# captured at 1920x1080, but this will satisfy Motion.
# So, why will the camera capture at 1080? I'm not sure. 
# I suspect it just defaults to the nearest workable resolution.
width 1920
# Hack around the Motion modulo 16 bug.
height 1200

# Threshold for number of pixels that triggers motion detection (default: 1500).
# This sets the threshold to 10% of all pixels, which is a massive change in most conditions.
# This will make motion detection fairly insensitive and immune the minor movements.
# This is not a good setting for distant objects as they may never register as high as 10%.
# 1920 * 1080 = 2073600 pixels
# 2073600 * 10% = 207360
threshold 207360
noise_level 64

# %v is the event number.
movie_filename %Y%m%d%H%M%S-%v
timelapse_filename %Y%m%d-timelapse
gap 10
pre_capture 1
post_capture 1

text_right %Y-%m-%d\n%T-%q
# %v is the event number. %q is the frame number.
jpeg_filename %Y%m%d%H%M%S-%v-%q
snapshot_filename %Y%m%d%H%M%S-snapshot
snapshot_interval 1
#snapshot_interval 60
framerate 30

# jpeg quality
quality 95
# Valid values: 0 (default = no rotation), 90, 180 and 270.
rotate 0
minimum_motion_frames 2
text_right %Y-%m-%d\n%T-%q
text_changes on
text_double on

configuration with action scripts triggered on events

This configuration will turn lights on or off when motion is detected. This assumes that the camera can see in light conditions when the light is off.

# Don't set 800x600 due to the Motion modulo 16 bug.
width 640
height 480
#movie_filename %Y%m%d-%H%M%S-%v
#timelapse_filename %Y%m%d-timelapse
gap 3
pre_capture 0
post_capture 0
text_right %Y%m%d-%H%M%S-%v-%q
# %v is the event number. %q is the frame number.
jpeg_filename %Y%m%d-%H%M%S-%v-%q
snapshot_filename %Y%m%d-%H%M%S-snapshot
snapshot_interval 0
#snapshot_interval 60
framerate 1
videodevice /dev/video1
# Threshold for number of pixels that triggers motion detection (default: 1500)
# 10% is a massive change.
# 640*480=307200
# 307200 * 0.05 = 15360
threshold 15360
# jpeg quality
quality 95
# Valid values: 0 (default = no rotation), 90, 180 and 270.
rotate 0
# Motion events and end cause a light to turn on and off.
on_event_end br --port=/dev/ttyUSB0 --house=A --off=1
on_motion_detected br --port=/dev/ttyUSB0 --house=A --on=1

ERROR: Error opening file ...: Invalid argument and ffopen_open error creating (timelapse) file [...]: Invalid argument

This is caused by broken support for linking the old ffmpeg to the new libav-tools.

You can try to install the old ffmpeg tools.

add-apt-repository ppa:mc3man/trusty-media
apt-get update
apt-get install gstreamer0.10-ffmpeg

If that does not work then you can disable all the video creation options in motion.conf, such as timelapse. Hopefully this ffmpeg confusion will get sorted out someday.