FFmpeg Motion
The ffmpeg
integrationIntegrations connect and integrate Home Assistant with your devices, services, and more. [Learn more] allows you to use any video feed with FFmpeg
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.
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 configuration.yaml
The configuration.yaml file is the main configuration file for Home Assistant. It lists the integrations to be loaded and their specific configurations. In some cases, the configuration needs to be edited manually directly in the configuration.yaml file. Most integrations can be configured in the UI. [Learn more] file.
After changing the configuration.yaml
The configuration.yaml file is the main configuration file for Home Assistant. It lists the integrations to be loaded and their specific configurations. In some cases, the configuration needs to be edited manually directly in the configuration.yaml file. Most integrations can be configured in the UI. [Learn more] file, restart Home Assistant to apply the changes. The integration is now shown on the integrations page under Settings > Devices & services. Its entities are listed on the integration card itself and on the Entities tab.
# Example configuration.yaml entry
binary_sensor:
- platform: ffmpeg_motion
input: FFMPEG_SUPPORTED_INPUT
Configuration Variables
How much needs to change between two frames to detect it as motion, value in percentage (a lower value is more sensitive).
How many events need to be detected in repeat_time in order to trigger a motion, 0 repeats means deactivated.
The span of time repeat events need to occur in before triggering a motion, 0 seconds means deactivated.
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
- Use motion only in a custom area with crop filter
:
extra_arguments: -filter:v "crop=100:100:12:34"