How to Use FFmpeg Vibrato Filter for Pitch Modulation
This guide explains how to use the vibrato audio filter
in FFmpeg to apply pitch modulation to your audio files. You will learn
the basic syntax, the key parameters for controlling the modulation’s
speed and depth, and practical command-line examples to help you achieve
the exact audio effect you need.
Understanding the Vibrato Filter
The FFmpeg vibrato filter modulates the pitch of an
audio stream using a low-frequency oscillator (LFO). This creates a
pulsating, wavering pitch effect commonly heard in music and vocal
processing.
The filter accepts two primary parameters:
f(frequency): Controls the modulation frequency in Hertz (Hz), which dictates how fast the pitch wavers. The default value is5.0Hz. The allowed range is0.1to20000.0Hz.d(depth): Controls the modulation depth, which dictates how drastically the pitch changes. The default value is0.5. The allowed range is0.0to1.0(where0.0is no effect and1.0is maximum pitch modulation).
Basic Command Syntax
To apply the filter, use the -af (audio filter) flag
followed by vibrato.
ffmpeg -i input.wav -af "vibrato=f=frequency_value:d=depth_value" output.wavPractical Examples
1. Applying Default Vibrato
If you do not specify any parameters, FFmpeg will apply the default settings (5.0 Hz frequency and 0.5 depth).
ffmpeg -i input.mp3 -af "vibrato" output.mp32. Creating a Slow, Deep Vibrato
To create a slow, dramatic pitch bend, lower the frequency and increase the depth. This example sets the frequency to 2.0 Hz and the depth to 0.8.
ffmpeg -i input.wav -af "vibrato=f=2.0:d=0.8" output.wav3. Creating a Fast, Subtle Vibrato (Tremolo-like Pitch Effect)
For a rapid, subtle shimmer, increase the frequency and decrease the depth. This example sets the frequency to 10.0 Hz and the depth to 0.2.
ffmpeg -i input.wav -af "vibrato=f=10.0:d=0.2" output.wav4. Combining Vibrato with Video
If you are processing a video file and want to apply the vibrato filter to the audio stream while keeping the video stream untouched, use the following command:
ffmpeg -i input.mp4 -c:v copy -af "vibrato=f=6.0:d=0.4" output.mp4(Note: -c:v copy ensures the video is stream-copied
without re-encoding, saving time and preserving quality).