MSVC solution for Visual Studio 2010 is under MSVC directory.
+Available input format
+----------------------
+WAV, RF64, CAF, RAW, upto 32bit int / 64bit float format is supported.
+Metadata in CAF info chunk can be read and copied to the resulting m4a.
+This is especially useful and works well when you pipe from ffmpeg via CAF.
+For example, you can copy tag from original "foo.flac" to "foo.m4a"
+through the following pipeline:
+
+$ ffmpeg -i foo.flac -f caf - | fdkaac -m3 - -o foo.m4a
+
+Since FDK AAC encoder is implemented based on fixed point integer,
+encoder itself handles 16bit input only.
+Therefore, when feeding non-integer input, be careful so that input doesn't
+exceed 0dBFS to avoid hard clips.
+You might also want to apply dither/noise shape beforehand when your input
+has higher resolution.
+
+Note that fdkaac doesn't automatically resample for you
+when input samplerate is not supported by AAC spec.
+
Tagging Options
---------------
Generic tagging options like --tag, --tag-from-file, --long-tag allows you
On the other hand, --tag / --long-tag (and other command line arguments) are
converted from locale character encoding to UTF-8 on Posix environment.
On Windows, command line arguments are always treated as Unicode.
+
+Tagging using JSON
+------------------
+With --tag-from-json, fdkaac can read JSON file and set tags from it.
+By default, tags are assumed to be in the root object(dictionary) like this:
+
+{
+ "title": "No Expectations",
+ "artist": "The Rolling Stones",
+ "album": "Beggars Banquet",
+ "track": 2
+}
+
+In this case, you can simply specify the filename like:
+--tag-from-json=/path/to/json
+
+If the object containing tags is placed somewhere else, you can optionally
+specify the path of the object with dotted notation.
+
+{
+ "format" : {
+ "filename" : "Middle Curse.flac",
+ "nb_streams" : 1,
+ "format_name" : "flac",
+ "format_long_name" : "raw FLAC",
+ "start_time" : "N/A",
+ "duration" : "216.146667",
+ "size" : "11851007.000000",
+ "bit_rate" : "438628.000000",
+ "tags" : {
+ "ALBUM" : "Scary World Theory",
+ "ARTIST" : "Lali Puna",
+ "DATE" : "2001",
+ "DISCID" : "9208CC0A",
+ "TITLE" : "Middle Curse",
+ "TRACKTOTAL" : "10",
+ "track" : "2"
+ }
+ }
+}
+
+In this example, tags are placed under the object "format.tags".
+("format" is a child of the root, and "tags" is a child of the "format").
+In this case, you can say:
+--tag-from-json=/path/to/json?format.tags
+
+For your information, ffprobe of ffmpeg project (or avprobe of libav) can
+output media information/metadata in json format like this.
+
+Note that not all tags can be read/written this way.