Acabei de pesquisar um problema semelhante e usei esta solução do superusuário
Basicamente, apenas extraia o áudio do arquivo como wav, execute normalize-audio nele e, em seguida, recodifique-o como aac e remux.
Acabei de escrever este script rápido para o fazer:
VIDEO_FILE=
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
Coloque em um arquivo como normalize.sh
e, em seguida, execute bash normalize.sh file_to_convert.mp4
. Você receberá um arquivo file_to_convert-fixed.mp4
.
Você pode querer ajustar o comando normalize-audio
para apenas aumentar o volume em algum dB com -g
siwtch ou usar outro comando inteiramente. Eu vi uma aacgain e wavegain mencionada em outro lugar. normalize-audio
está no pacote normalize-audio , o suficiente.
Espero que isso ajude você.