web-dev-qa-db-ja.com

avconvを使用してビデオボリュームを正規化する

.mkvおよび.mp4(AAC + H.264)形式のビデオのコレクションがあります。 .mkvファイルは問題ありませんが、すべての.mp4ファイルの音量は非常に低いため、音量が最大になっている場合でも電話で聞くことはほとんどできません。

avconvを使用して変換するので、携帯電話用に小さくなります。正常に機能しますが、.mp4ファイルと一致するようにすべての.mkvファイルのボリュームを正規化する方法はまだわかりません。

音量を上げるだけでも大きな成果になります。

5
Lanbo

私はちょうど同様の問題を探していて、SuperUserの この解決策 を使用しました

基本的には、ファイルからオーディオをwavとして抽出し、その上でnormalize-audioを実行してから、aacおよびremuxとして再エンコードします。

これを行うための簡単なスクリプトを書きました。

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

normalize.shなどのファイルに入れてから、bash normalize.sh file_to_convert.mp4を実行します。ファイルfile_to_convert-fixed.mp4を取得します。

normalize-audioコマンドを微調整して、-g siwtchで音量を数dB上げるか、完全に別のコマンドを使用します。私はaacgainwavegainが他の場所で言及されているのを見ました。 normalize-audioはパッケージに含まれていますnormalize-audio、おかしなことに十分です。

これがお役に立てば幸いです。

14
JamesLloyd