【MP3】圧縮オーディオファイル総合【WMA】

このエントリーをはてなブックマークに追加
872名無しサンプリング@48kHz
コマンドラインでエンコードする場合の話ですが、WMA Losslessに関しては、実は地雷があります。

FlacでもWavPackでも、通常、Losslessコーデックは、オプションで明示的に変更をしない限り、
ソースのビット深度やサンプリング周波数に合わせてエンコードします。
Losslessなんだから当たり前の話です。

なのにWMA Losslessは、オプションで明示的に指定しない限り、ソースではなく、
コーデックのデフォルトのビット深度やサンプリング周波数に勝手に変更してエンコードします。
つまりLosslessなのに、Losslessではなくなるのです。

WMA Losslessのデフォルト値は44.1kHz/16bitであるため、
デフォルトのままだと以下のような結果になります。

24kHz 16bitのソースの場合:
通常のLossless → 24kHz 16bit
WMA Lossless → 44.1kHz 16bit

44.1kHz 16bitのソースの場合:
通常のLossless → 44.1kHz 16bit
WMA Lossless → 44.1kHz 16bit

48kHz 24bitのソースの場合:
通常のLossless → 48kHz 24bit
WMA Lossless → 44.1kHz 16bit

コーデックの問題というよりもコマンドラインの実装が稚拙なせいですが、
Losslessにならない場合があるので注意が必要です。