home-assistant.io/source/_integrations/ffmpeg_motion.markdown
Franck Nijhof 9162850d6e
Rename Services to Actions in integrations: F (#33811)
* Rename Services to Actions in integrations: F

* Apply suggestions from code review

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Michael <35783820+mib1185@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Michael <35783820+mib1185@users.noreply.github.com>
2024-07-17 06:01:36 +02:00

3.0 KiB

title, description, ha_category, ha_iot_class, ha_release, ha_domain, ha_platforms, ha_integration_type, related
title description ha_category ha_iot_class ha_release ha_domain ha_platforms ha_integration_type related
FFmpeg Motion Instructions on how to integrate an FFmpeg-based motion binary sensor
Image processing
Calculated 0.27 ffmpeg_motion
binary_sensor
integration
docs title
/docs/configuration/ Configuration file

The ffmpeg {% term integration %} allows you to use any video feed with FFmpeg for motion sensors in Home Assistant.

{% note %}

If the ffmpeg process is broken, the sensor will be unavailable. To control the FFmpeg process of the sensor, use the ffmpeg.start, ffmpeg.stop, and ffmpeg.restart actions.

{% endnote %}

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.

Configuration

To add FFmpeg with motion detection to your installation, add the following to your {% term "configuration.yaml" %} file. {% include integrations/restart_ha_after_config_inclusion.md %}

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

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

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.

Tips

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