home-assistant.io/source/_integrations/ffmpeg_noise.markdown
2024-11-27 18:57:16 +01:00

2.6 KiB

title description ha_category ha_iot_class ha_release ha_domain ha_platforms ha_integration_type related ha_quality_scale
FFmpeg Noise Instructions on how to integrate an FFmpeg-based noise binary sensor
Image processing
Calculated 0.27 ffmpeg_noise
binary_sensor
integration
docs title
/docs/configuration/ Configuration file
legacy

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

{% note %}

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

{% endnote %}

Configuration

To add FFmpeg with noise 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_noise
    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. required: false type: string initial_state: description: Start FFmpeg with Home Assistant. required: false type: boolean default: true peak: description: The threshold of detecting noise, in dB. 0 is very loud and -100 is low. required: false type: integer default: -30 duration: description: How long the noise needs to be over the peak to trigger the state. required: false type: integer default: 1 reset: description: The time to reset the state after no new noise is over the peak. required: false type: integer default: 20 extra_arguments: description: Extra options to pass to ffmpeg, like audio frequency filtering. required: false type: string output: description: Allows you to send the audio output of this sensor to an Icecast server or other FFmpeg-supported output, e.g., to stream with Sonos after a state is triggered. required: false type: string {% endconfiguration %}

To experiment with values:

ffmpeg -i YOUR_INPUT -vn -filter:a silencedetect=n=-30dB:d=1 -f null -

Troubleshooting

Unresponsive after a while

If the noise sensor becomes unresponsive, make sure you have extra_arguments: -nostats in the configuration.

# Example configuration.yaml entry
binary_sensor:
  - platform: ffmpeg_noise
    input: FFMPEG_SUPPORTED_INPUT
    extra_arguments: -nostats