まず Homebrew で ffmpeg と normalize をインストールする。
1 2 3 4 5 6 7 8 9 10 11 |
# まず最初に ffmpeg ビルドに必要な automake を入れる brew install automake brew link automake libtool # 現在の最新リリースバージョン (2.1) を入れたいので devel オプションを付けた # aac で一番良いとされている fdk-aac を指定す # ogg も欲しいので libvorbis も加える brew install --devel ffmpeg --with-fdk-aac --with-libvorbis # 入力音声のノーマライズに normalize を使う。これも homebrew で入る。 brew install normalize |
どの端末でも大体再生できる mp3 は品質一定の VBR、品質は ffmpeg オプションで 8。
aac は libfdk_aac の平均ビットレート 64kbps を指定。
ogg は品質一定で ffmpeg オプションの 0 にした。
いくつかのオプションを試したがスマホで聞くにはこれで十分な音質が得られた。
normalize は使い方が簡単だが、入力ファイルが上書きされるので元ファイルをバックアップしておいたほうが良い。
複数の wav を一気にエンコードするには、こんな感じ。
1 2 3 4 5 6 7 8 9 10 |
# ノーマライズ normalize -bv *.wav # エンコード (メタデータのクリアを行い、44.1k にダウンサンプリングし、ビット深度も 16bit にしている) for file in `ls *.wav`; do name=`basename $file .wav` ffmpeg -i $file -ar 44100 -map_metadata -1 -sample_fmt s16p -q:a 8 $name.mp3 ffmpeg -i $file -ar 44100 -map_metadata -1 -sample_fmt s16 -c:a libfdk_aac -profile:a aac_he -b:a 64k $name.m4a ffmpeg -i $file -ar 44100 -map_metadata -1 -codec:a libvorbis -qscale:a 0 $name.ogg done |
ogg, celt ではビット深度を指定してはいけない。