Change Audio Speed Without Pitch Shift in FFmpeg

This article provides a quick guide on how to change the tempo of an audio file without altering its pitch using FFmpeg’s atempo audio filter. You will learn the basic syntax for speeding up or slowing down audio, as well as how to bypass the filter’s default limits for extreme speed adjustments by chaining multiple filters together.

The Basic Syntax

To change the speed of an audio file, use the -filter:a (or -af) flag followed by the atempo filter and your desired speed multiplier. The value must be a real number between 0.5 (half speed) and 2.0 (double speed).

Here is the template command:

ffmpeg -i input.mp3 -filter:a "atempo=MULTIPLIER" output.mp3

Examples

To speed up audio by 1.5x (50% faster):

ffmpeg -i input.mp3 -filter:a "atempo=1.5" output.mp3

To slow down audio to 0.8x (20% slower):

ffmpeg -i input.mp3 -filter:a "atempo=0.8" output.mp3

Going Beyond the Limits (Chaining Filters)

Because the atempo filter only supports values between 0.5 and 2.0, you cannot use a single filter for speeds outside this range. To achieve faster or slower speeds, you must chain multiple atempo filters together, separating them with commas.

To speed up audio to 4x speed (2.0 * 2.0 = 4.0):

ffmpeg -i input.mp3 -filter:a "atempo=2.0,atempo=2.0" output.mp3

To slow down audio to 0.25x speed (0.5 * 0.5 = 0.25):

ffmpeg -i input.mp3 -filter:a "atempo=0.5,atempo=0.5" output.mp3

Using these configurations, FFmpeg will process the audio tempo while preserving the original pitch of the source file.