home-assistant.io/source/_components/binary_sensor.ffmpeg_motion.markdown
Audric Schiltknecht b44641b3d1 Fix minor typos (#3471)
Tipps -> Tips and customer -> custom.
2017-10-01 11:56:59 +02:00

2.6 KiB

layout title description date sidebar comments sharing footer logo ha_category ha_release redirect_from
page FFmpeg Motion Binary Sensor Instructions on how to integrate an FFmpeg-based motion binary sensor 2016-08-25 08:00 true false true true ffmpeg.png Binary Sensor 0.27 /components/binary_sensor.ffmpeg/

The ffmpeg platform allows you to use any video feed with FFmpeg for motion sensors in Home Assistant.

If the `ffmpeg` process is broken, the sensor will be unavailable. To control the ffmpeg process of sensor, use the service *ffmpeg.start*, *ffmpeg.stop*, *ffmpeg.restart*.

{% linkable_title Motion %}

FFmpeg doesn't have a motion detection filter, but can use a scene filter to detect a new scene/motion. You can set how much needs to change in order to detect motion with the option 'changes', the percent value of change between frames. If you want a really small value for 'changes', you can also add a denoise filter.

To add FFmpeg with motion detection to your installation, add the following to your configuration.yaml file:

# Example configuration.yaml entry
binary_sensor:
  - platform: ffmpeg_motion
    input: FFMPEG_SUPPORTED_INPUT

Configuration variables:

  • input (Required): An FFmpeg-compatible input file, stream, or feed.
  • name (Optional): Override the name of your camera for the frontend.
  • initial_state (Optional): Start ffmpeg with Home Assistant. Defaults to true.
  • changes (Optional): How much needs to change between two frames to detect it as motion (a lower value is more sensitive). Defaults to 10%.
  • reset (Optional): The time to reset the state after no new motion is detected. Defaults to 20 seconds.
  • repeat (Optional): How many events need to be detected in repeat_time in order to trigger a motion. Defaults to 0 repeats (deactivated).
  • repeat_time (Optional): The span of time repeat events need to occur in before triggering a motion. Defaults to 0 seconds (deactivated).
  • extra_arguments (Optional): Extra options to pass to ffmpeg, e.g. video denoise filtering.

To experiment with values (changes/100 is the scene value in ffmpeg):

$ ffmpeg -i YOUR_INPUT -an -filter:v select=gt(scene\,0.1) -f framemd5 -

If you are running into trouble with this sensor, please refer to the troubleshooting section.

{% linkable_title Tips %}

extra_arguments: -filter:v "crop=100:100:12:34"