FFmpeg increase volume: the volume filter, in dB or ×

Increase volume in FFmpeg with -af volume: volume=2 or volume=6dB, with -c:v copy so the video isn't re-encoded. Check headroom with volumedetect first.

5 min readSume
All posts

To increase volume with FFmpeg, apply the volume audio filter and copy the video stream: ffmpeg -i input.mp4 -af "volume=6dB" -c:v copy output.mp4 raises the sound by 6 dB, and volume=2 multiplies it by 2 instead. Only the audio is re-encoded. Run volumedetect first, because anything pushed past the maximum level is clipped.

The FFmpeg behavior below is quoted from the FFmpeg filters documentation, the ffmpeg documentation and the FFmpeg formats documentation, and the Sume facts come from the Timeline 1.0 docs, all read on 2026-09-29. Anything called current behavior is read from Sume's code. The commands were run with FFmpeg 9.0.1 on a 5-second test clip.

How much can I raise the volume without clipping?

As much as the loudest sample is below full scale. volumedetect prints mean_volume and max_volume in decibels relative to the maximum PCM value, so the headroom is the max_volume figure without its minus sign. FFmpeg's own example: a max_volume of −4 dB means raising the volume by +4 dB causes no clipping.

  • On the test clip, the second pass measured a mean_volume of −35.1 dB: 6 dB up.
  • For an audio-only file, drop -c:v copy: ffmpeg -i input.mp3 -af "volume=6dB" output.mp3.
  • -c:v copy works because only the audio passes through a filter. Filters work on decoded frames, so the audio track is always re-encoded.
# Measure: -vn skips the picture, -f null writes no file
ffmpeg -i input.mp4 -af volumedetect -vn -f null -
# [Parsed_volumedetect_0 ...] mean_volume: -41.1 dB
# [Parsed_volumedetect_0 ...] max_volume: -37.6 dB

# Raise by 6 dB and keep the video stream as it is
ffmpeg -i input.mp4 -af "volume=6dB" -c:v copy output.mp4

What values does the volume filter take?

The output volume is volume * input_volume, and the value can be a plain multiplier, a fraction or a decibel figure. To make a file quieter, use a value under 1 or a negative dB.

From the volume, volumedetect and loudnorm filters in the FFmpeg filters documentation, read 2026-09-29.
Filter or optionWhat the docs say
volume=2, volume=6dBMultiplier or decibels; default 1.0
volume=0.5, volume=1/2, volume=-6.0206dBThree ways to halve the volume
Over the limitOutput values are clipped to the maximum value
eval=frameRe-evaluate the expression per frame, e.g. to change volume over time; default once
volumedetectNo parameters; prints mean and max volume when the stream ends
loudnorm IIntegrated loudness target, −70.0 to −5.0; default −24.0
loudnorm TPMaximum true peak, −9.0 to 0.0; default −2.0
loudnorm LRALoudness range target, 1.0 to 50.0; default 7.0

How do I normalize audio with FFmpeg instead?

Use loudnorm when you want a loudness target rather than a fixed gain, for example to make a batch of clips play at the same level. It is EBU R128 loudness normalization and can target integrated loudness, loudness range and maximum true peak. Pick the I value the platform you publish to asks for; the example below uses −16 only as an illustration.

  • In dynamic mode the filter upsamples the audio to 192 kHz to detect true peaks, so set the output rate with -ar, as the docs advise.
  • A single pass works on files and live streams. For a linear, two-pass result, measure first and pass the measured_I, measured_LRA, measured_TP and measured_thresh values back in; if the conditions aren't met, it falls back to dynamic mode.
  • On the test clip, the command above measured a mean_volume of −15.3 dB afterwards, from −41.1 dB.
ffmpeg -i input.mp4 -af "loudnorm=I=-16:TP=-1.5:LRA=11" -ar 48000 -c:v copy output.mp4

Can I increase the volume of a video on Sume?

Yes, for a clip that's already on media.sume.com, such as an earlier Sume job's output, but not by sending FFmpeg arguments: Timeline 1.0 compiles the command itself and refuses a request with filtergraph or ffmpeg_args. The gain control is audio.gain_db, from −60 to 12 dB on the render's audio spine; Replace or remove audio in a video walks through detaching the sound and rendering it back louder.

  • In current code, a Timeline render takes sound only from the spine and the optional soundtrack; each clip's own audio is dropped, so the louder sound has to be on the spine.
  • A render is $0.10 per output minute, plus a 5.5% agent fee by default.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume