I'm pretty sure I got it
jlwServer@jlwServer MINGW64 ~
# cd c:
jlwServer@jlwServer MINGW64 /c
# cd aac64
jlwServer@jlwServer MINGW64 /c/aac64
# pacman -Syu --needed mingw-w64-x86_64-fdk-aac
:: Synchronizing package databases...
mingw32 is up to date
mingw64 is up to date
msys is up to date
warning: mingw-w64-x86_64-fdk-aac-2.0.0-1 is up to date -- skipping
:: Starting core system upgrade...
there is nothing to do
:: Starting full system upgrade...
there is nothing to do
jlwServer@jlwServer MINGW64 /c/aac64
# curl -kL https://github.com/nu774/fdkaac/archive/master.zip -o master.zip
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 117 0 117 0 0 497 0 --:--:-- --:--:-- --:--:-- 497
100 103k 0 103k 0 0 188k 0 --:--:-- --:--:-- --:--:-- 552k
jlwServer@jlwServer MINGW64 /c/aac64
# unzip -q master.zip
jlwServer@jlwServer MINGW64 /c/aac64
# cd fdkaac-master
jlwServer@jlwServer MINGW64 /c/aac64/fdkaac-master
# autoreconf -i
configure.ac:12: installing './compile'
configure.ac:47: installing './config.guess'
configure.ac:47: installing './config.sub'
configure.ac:10: installing './install-sh'
configure.ac:10: installing './missing'
Makefile.am: installing './depcomp'
jlwServer@jlwServer MINGW64 /c/aac64/fdkaac-master
# ./configure --quiet CFLAGS="-O3 -static"
jlwServer@jlwServer MINGW64 /c/aac64/fdkaac-master
# make
make all-am
make[1]: Entering directory '/c/aac64/fdkaac-master'
depbase=`echo src/aacenc.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -O3 -static -MT src/aacenc.o -MD -MP -MF $depbase.Tpo -c -o src/aacenc.o src/aacenc.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/caf_reader.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -O3 -static -MT src/caf_reader.o -MD -MP -MF $depbase.Tpo -c -o src/caf_reader.o src/caf_reader.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/extrapolater.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -O3 -static -MT src/extrapolater.o -MD -MP -MF $depbase.Tpo -c -o src/extrapolater.o src/extrapolater.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/limiter.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -O3 -static -MT src/limiter.o -MD -MP -MF $depbase.Tpo -c -o src/limiter.o src/limiter.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/lpc.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -O3 -static -MT src/lpc.o -MD -MP -MF $depbase.Tpo -c -o src/lpc.o src/lpc.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/m4af.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -O3 -static -MT src/m4af.o -MD -MP -MF $depbase.Tpo -c -o src/m4af.o src/m4af.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/main.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -O3 -static -MT src/main.o -MD -MP -MF $depbase.Tpo -c -o src/main.o src/main.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/metadata.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -O3 -static -MT src/metadata.o -MD -MP -MF $depbase.Tpo -c -o src/metadata.o src/metadata.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/parson.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -O3 -static -MT src/parson.o -MD -MP -MF $depbase.Tpo -c -o src/parson.o src/parson.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/pcm_float_converter.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -O3 -static -MT src/pcm_float_converter.o -MD -MP -MF $depbase.Tpo -c -o src/pcm_float_converter.o src/pcm_float_converter.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/pcm_native_converter.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -O3 -static -MT src/pcm_native_converter.o -MD -MP -MF $depbase.Tpo -c -o src/pcm_native_converter.o src/pcm_native_converter.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/pcm_readhelper.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -O3 -static -MT src/pcm_readhelper.o -MD -MP -MF $depbase.Tpo -c -o src/pcm_readhelper.o src/pcm_readhelper.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/pcm_sint16_converter.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -O3 -static -MT src/pcm_sint16_converter.o -MD -MP -MF $depbase.Tpo -c -o src/pcm_sint16_converter.o src/pcm_sint16_converter.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/progress.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -O3 -static -MT src/progress.o -MD -MP -MF $depbase.Tpo -c -o src/progress.o src/progress.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/wav_reader.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -O3 -static -MT src/wav_reader.o -MD -MP -MF $depbase.Tpo -c -o src/wav_reader.o src/wav_reader.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/compat_win32.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -O3 -static -MT src/compat_win32.o -MD -MP -MF $depbase.Tpo -c -o src/compat_win32.o src/compat_win32.c &&\
mv -f $depbase.Tpo $depbase.Po
gcc -O3 -static -o fdkaac.exe src/aacenc.o src/caf_reader.o src/extrapolater.o src/limiter.o src/lpc.o src/m4af.o src/main.o src/metadata.o src/parson.o src/pcm_float_converter.o src/pcm_native_converter.o src/pcm_readhelper.o src/pcm_sint16_converter.o src/progress.o src/wav_reader.o src/compat_win32.o -liconv -lfdk-aac -lm -lfdk-aac
make[1]: Leaving directory '/c/aac64/fdkaac-master'
jlwServer@jlwServer MINGW64 /c/aac64/fdkaac-master
# strip --strip-unneeded fdkaac.exe
jlwServer@jlwServer MINGW64 /c/aac64/fdkaac-master
# ./fdkaac.exe
fdkaac 1.0.0
Usage: fdkaac [options] input_file
Options:
-h, --help Print this help message
-p, --profile <n> Profile (audio object type)
2: MPEG-4 AAC LC (default)
5: MPEG-4 HE-AAC (SBR)
29: MPEG-4 HE-AAC v2 (SBR+PS)
23: MPEG-4 AAC LD
39: MPEG-4 AAC ELD
-b, --bitrate <n> Bitrate in bits per seconds (for CBR)
-m, --bitrate-mode <n> Bitrate configuration
0: CBR (default)
1-5: VBR
(VBR mode is not officially supported, and
works only on a certain combination of
parameter settings, sample rate, and
channel configuration)
-w, --bandwidth <n> Frequency bandwidth in Hz (AAC LC only)
-a, --afterburner <n> Afterburner
0: Off
1: On(default)
-L, --lowdelay-sbr <-1|0|1> Configure SBR activity on AAC ELD
-1: Use ELD SBR auto configurator
0: Disable SBR on ELD (default)
1: Enable SBR on ELD
-s, --sbr-ratio <0|1|2> Controls activation of downsampled SBR
0: Use lib default (default)
1: downsampled SBR (default for ELD+SBR)
2: dual-rate SBR (default for HE-AAC)
-f, --transport-format <n> Transport format
0: RAW (default, muxed into M4A)
1: ADIF
2: ADTS
6: LATM MCP=1
7: LATM MCP=0
10: LOAS/LATM (LATM within LOAS)
-C, --adts-crc-check Add CRC protection on ADTS header
-h, --header-period <n> StreamMuxConfig/PCE repetition period in
transport layer
-o <filename> Output filename
-G, --gapless-mode <n> Encoder delay signaling for gapless playback
0: iTunSMPB (default)
1: ISO standard (edts + sgpd)
2: Both
--include-sbr-delay Count SBR decoder delay in encoder delay
This is not iTunes compatible, but is default
behavior of FDK library.
-I, --ignorelength Ignore length of WAV header
-S, --silent Don't print progress messages
--moov-before-mdat Place moov box before mdat box on m4a output
--no-timestamp Don't inject timestamp in the file
Options for raw (headerless) input:
-R, --raw Treat input as raw (by default WAV is
assumed)
--raw-channels <n> Number of channels (default: 2)
--raw-rate <n> Sample rate (default: 44100)
--raw-format <spec> Sample format, default is "S16L".
Spec is as follows:
1st char: S(igned)|U(nsigned)|F(loat)
2nd part: bits per channel
Last char: L(ittle)|B(ig)
Last char can be omitted, in which case L is
assumed. Spec is case insensitive, therefore
"u16b" is same as "U16B".
Tagging options:
--title <string>
--artist <string>
--album <string>
--genre <string>
--date <string>
--composer <string>
--grouping <string>
--comment <string>
--album-artist <string>
--track <number[/total]>
--disk <number[/total]>
--tempo <n>
--tag <fcc>:<value> Set iTunes predefined tag with four char code.
--tag-from-file <fcc>:<filename>
Same as above, but value is read from file.
--long-tag <name>:<value> Set arbitrary tag as iTunes custom metadata.
--tag-from-json <filename[?dot_notation]>
Read tags from JSON. By default, tags are
assumed to be direct children of the root
object(dictionary).
Optionally, position of the dictionary
that contains tags can be specified with
dotted notation.
Example:
--tag-from-json /path/to/json?format.tags
jlwServer@jlwServer MINGW64 /c/aac64/fdkaac-master
#
I made the 32 bit version and the 64 bit version.
Any reason why the 64 bit version is slightly smaller like 20ish kbs smaller then the 32 bit version?