Skip to content
nu774 edited this page Dec 19, 2012 · 24 revisions
  1. It doesn't work!
  2. What are these x86 and x64 folders? How should I install them?
  3. How should I setup -b (bits per sample) option?
  4. How should I setup --rate option?
  5. With Apple's afconvert command, I can configure quality (-q) 0-127. qaac allows only 0-2. Why?

It's most likely due to wrong command like you give. Try directly from command prompt and see what qaac says. Note that you need -o to specify output filename. The following is OK:

qaac input.wav -o output.m4a

The following is wrong:

qaac input.wav output.m4a

Since qaac can handle multiple input files, output.m4a is also taken as input file and it fails (since it doesn't exist).

Binaries (dll and exe) inside of x86 are 32bit binaries, and available on both 32bit / 64bit OS.

Binaries inside of x64 are 64bit binaries, and available only on 64bit only.

Generally speaking, 64bit exe can only load 64bit dll, and vice versa. Be careful MSVC runtime dll(msvcr100.dll and msvcp100.dll) share the same name between 32bit and 64bit version. 32bit version (inside of x86) is required by qaac.exe and refalac.exe. 64bit version is required by refalac64.exe. Therefore, you cannot mix them in the same directory.

In case you have installed MSVC runtime in your system, you don't need these DLLs.

If you are encoding to AAC, there's no such concept of "bits per sample" in the same sense of PCM audio. Therefore, you don't need it (you can use it, but it's simply ignored).

If you are encoding to ALAC losslessly, just don't touch it. Otherwise, use it only when you actually want to change output bit depth. The purpose of this option is to change output bit depth. If you don't touch it (and don't apply any DSP), output bit depth will be the same as input, and this is usually what you want. If you apply some DSP such as sample rate conversion or lowpass filter, internal sample format is converted to float. Therefore, you might want to use -b to get 16 or 24bit result.

Usually you don't need it. This is an option to change sample rate, so use it only when you actually want to do sample rate conversion. If you are encoding to AAC, lower sampling rate (or --rate auto) allows you to use more lower bitrate setting.

At API level, CoreAudio allows value in 0-127 for kAudioConverterCodecQuality property. The interface of afconvert command simply reflects it.

However, AAC codec only supports 3 actually functional quality steps (32, 64, and 96), and 0-127 are simply rounded to these values. -q [0-2] of qaac is mapped to 32, 64, or 96, and written into tool tag.

Maybe I should have changed interface of qaac to directly use these actual values. 0-2 has been used just for historical reason. It was more natural way when qaac was based on QuickTime.