Skip to content

About output format

nu774 edited this page Nov 16, 2012 · 17 revisions

By default, qaac produces m4a for AAC and ALAC. If you don't specify output filename by -o, output filename is automatically generated from input filename.

When you are encoding into AAC, you can optionally specify --adts to create ADTS file instead of m4a. ADTS is not a convenient format for storing songs since it cannot store tags and seeking is inefficient. However, it is a streamable format, and you can output to stdout in case of ADTS.

When you specify decoding mode with -D, WAV file is created. stdout is also usable for WAV output.

When encoding to m4a, you can optionally specify "--no-optimize" option. By default (without --no-optimize), qaac works like the following:

foo.wav -----> temporary file ------> foo.m4a
encode optimize

This "optimization" does the same as "Optimize MP4 layout" of foobar2000 context menu command. It re-layout the MP4 container.

Output bit depth

In case of ALAC or WAV, you can optionally use -b to specify output bit depth. Usually, output bitdepth is same as input. However, when some of DSP filter is applied, internal format can be converted into floating point. In this case, 32bit float WAV file is written if you don't specify -b.

On the other hand, on ALAC encoding mode, internal format will be automatically re-quantized to integer again before encdoing.

For ALAC encoding, 16bit, 20bit, 24bit, and 32bit is available. For WAV output, you can specify arbitrary value between 2 and 32. On WAV case, -b32 means floating point format.

When bit depth gets lowered down with -b, and final bit depth is lower than 18, qaac will apply TPDF dither by default. If you don't want it, use --no-dither.