Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I have a collection of videos, in the .mkv and .mp4 (AAC+H.264) formats. The .mkv files are ok, but all the .mp4 files have such a low volume that I can hardly hear it on my phone, even when volume is maxed.

I convert them using avconv so they're smaller for my phone. It works fine, but I have not yet found out how I can normalize the volume on all the .mp4 files so they match the .mkv files.

Just raising the volume alone would be a great achievement.

share|improve this question

1 Answer 1

up vote 7 down vote accepted

I've just been searching for a similar problem and used this solution from SuperUser

Basically, just extract the audio from the file as wav, run normalize-audio on it and then re-encode it as aac and remux.

I just wrote this quick script to do it:

VIDEO_FILE=$1
VIDEO_FILE_FIXED=${VIDEO_FILE%.*}-fixed.${VIDEO_FILE##*.}
avconv -i $VIDEO_FILE -c:a pcm_s16le -vn audio.wav
normalize-audio audio.wav
avconv -i $VIDEO_FILE -i audio.wav -map 0:0 -map 1:0 -c:v copy -c:a libvo_aacenc \
   $VIDEO_FILE_FIXED

Put it in a file like normalize.sh, then run bash normalize.sh file_to_convert.mp4. You'll get a file out file_to_convert-fixed.mp4.

You might want to tweak the normalize-audio command to just raise the volume by some dB with the -g siwtch, or use another command entirely. I saw aacgain and wavegain mentioned elsewhere. normalize-audio is in the package normalize-audio, funnily enough.

Hope this helps you.

share|improve this answer

protected by Oli Sep 2 '13 at 11:36

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.