FFmpeg 7.1
Since* 6.0
#

Apply spectral dynamic range controller filter to input audio stream.

A description of the accepted options follows.

transfer

Set the transfer expression.

The expression can contain the following constants:

ch

current channel number

sn

current sample number

nb_channels

number of channels

t

timestamp expressed in seconds

sr

sample rate

p

current frequency power value, in dB

f

current frequency in Hz

Default value is p.

attack

Set the attack in milliseconds. Default is 50 milliseconds. Allowed range is from 1 to 1000 milliseconds.

release

Set the release in milliseconds. Default is 100 milliseconds. Allowed range is from 5 to 2000 milliseconds.

channels

Set which channels to filter, by default all channels in audio stream are filtered.

#

Commands

This filter supports the all above options as commands.

#

Examples

  • Apply spectral compression to all frequencies with threshold of -50 dB and 1:6 ratio:

    adrc=transfer='if(gt(p,-50),-50+(p-(-50))/6,p)':attack=50:release=100
  • Similar to above but with 1:2 ratio and filtering only front center channel:

    adrc=transfer='if(gt(p,-50),-50+(p-(-50))/2,p)':attack=50:release=100:channels=FC
  • Apply spectral noise gate to all frequencies with threshold of -85 dB and with short attack time and short release time:

    adrc=transfer='if(lte(p,-85),p-800,p)':attack=1:release=5
  • Apply spectral expansion to all frequencies with threshold of -10 dB and 1:2 ratio:

    adrc=transfer='if(lt(p,-10),-10+(p-(-10))*2,p)':attack=50:release=100
  • Apply limiter to max -60 dB to all frequencies, with attack of 2 ms and release of 10 ms:

    adrc=transfer='min(p,-60)':attack=2:release=10