26

I've got a large amount of .MKV video files which seem to all play at a very low volume - I end up having to turn the TV up all the way to hear them, which is really irritating when I switch to another channel and wake the dead because it's so loud.

What I'm looking for is a command-line method to increase the volume (so I can run it on all of them quickly) that would hopefully work regardless of the audio codec in use in the particular file. (I don't mind hard-coding the output audio though).

For reference, I'm using Ubuntu 9.04 on my server, and the files are being played back with Boxee on a Mac Mini, but the volume problem is the same on Windows too.

1
  • Since normalizing is often increasing the volume, check out this post; I use ffmpeg-normalize all the time, and it's easy to download with pip; it takes the guesswork out of using ffmpeg manually on the CLI: superuser.com/questions/323119/…
    – Life5ign
    Apr 12, 2023 at 5:18

2 Answers 2

29

It isn't very well documented, but FFmpeg has a -vol switch which will allow you to increase volume output.

Example:

ffmpeg -i vid.mkv -vol 512 -vcodec copy output.mkv

Some things to take note of:

  • the -vol switch uses "byte percent", so you can't just specify a 200% volume increase, 100% = 256 so specifying 256 would leave the volume as is, 512 would double it and so on.
6
  • Trying to test this out... looks like I need to re-compile ffmpeg from source to use matroska. Will report back! Aug 29, 2009 at 4:52
  • I'll cross my fingers :)
    – user1931
    Aug 29, 2009 at 5:11
  • 3
    Best solution ever and in 2018, it works out-of-the-box! Apr 18, 2018 at 19:40
  • Is there also a way to normalize the volume? Aug 3, 2018 at 15:52
  • For normalization this should be the right place to look: superuser.com/questions/323119/… Aug 6, 2018 at 12:24
12

The -vol switch is deprecated I've found this method to be useful currently:

ffmpeg -i input.mkv -vcodec copy -filter:a "volume=5.000000" output.louder.mkv

Adjust the number after volume= to suit your needs.

You can also use decibel measures. To increase the volume by 15dB: ffmpeg -i input.mkv -vcodec copy -filter:a "volume=15dB" output.louder.mkv

The -vcodec copy simply copies the video as is and -filter:a tells ffmpeg to filter the audio. Note that -vcodec can be shortened to -c:v

Sources:

https://trac.ffmpeg.org/wiki/AudioVolume

Testing.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .