How to Use the FFmpeg asupercut Filter
This guide provides a clear and straightforward explanation of how to
use the asupercut filter in FFmpeg. You will learn what the
filter does, understand its key parameters like cutoff frequency and
filter order, and see practical command-line examples to optimize your
audio files by removing unwanted, ultra-low subsonic frequencies.
What is the asupercut Filter?
The asupercut filter is an audio filter in FFmpeg
designed to cut off extremely low frequencies (subsonic or infrasonic
bass). These frequencies are often inaudible to human ears (typically
below 20 Hz) but can waste amplifier power, cause unnecessary subwoofer
cone excursion, and muddy the overall sound quality of your audio. This
filter acts as a specialized, high-quality high-pass filter optimized
for the low-frequency range.
Key Parameters
To customize the filter, you can adjust three primary parameters:
cutoff(orf): Sets the cutoff frequency in Hz. Frequencies below this threshold will be attenuated. The default value is20Hz.order(oro): Controls the steepness of the frequency cutoff curve (slope). A higher order results in a sharper, more aggressive cut. The range is from1to20, and the default is4.level(orl): Sets the input level scaling factor. The default is1.0.
Practical Examples
Here is how to apply the asupercut filter in various
scenarios using the FFmpeg command line.
1. Basic Usage (Default Settings)
To apply the filter with the default settings (cutting frequencies below 20 Hz with a 4th-order curve), use the following command:
ffmpeg -i input.wav -af asupercut output.wav2. Adjusting the Cutoff Frequency
If you want to cut off frequencies below 30 Hz to clean up a
bass-heavy mix further, define the cutoff parameter:
ffmpeg -i input.mp3 -af "asupercut=cutoff=30" output.mp33. Creating a Sharper Cutoff (Higher Order)
To create a very sharp drop-off at 25 Hz, increase the
order parameter. This prevents any frequencies just below
25 Hz from leaking through:
ffmpeg -i input.wav -af "asupercut=cutoff=25:order=10" output.wav4. Adjusting Input Level
If you need to scale the input level while applying the subsonic cut,
you can include the level parameter:
ffmpeg -i input.flac -af "asupercut=cutoff=20:order=6:level=0.95" output.flac