use fseeko64() on i686-pc-mingw32
[fdkaac.git] / README
CommitLineData
48e2f01c 1==========================================================================
2fdkaac - command line frontend encoder for libfdk-aac
3==========================================================================
4
5Prerequisites
6-------------
e9014663 7You need libfdk-aac.
8On Posix environment, you will also need GNU gettext (for iconv.m4) and
9GNU autoconf/automake.
10
11How to build on Posix environment
12---------------------------------
13First, you need to build libfdk-aac and install on your system.
14Once you have done it, the following will do the task.
15(MinGW build can be done the same way, and doesn't require gettext/iconv)
48e2f01c 16
48e2f01c 17$ autoreconf -i
e9014663 18$ ./configure && make && make install
19
20How to build on MSVC
21--------------------
22First you have to extract libfdk-aac source here, so that directory tree will
23look like the following:
24+- fdk-aac ---+-documentation
25| +-libAACdec
26| +-libAACenc
27| :
28+- m4
29+- missings
30+- MSVC
31+- src
32
33MSVC solution for Visual Studio 2010 is under MSVC directory.
a56831da 34
35Tagging Options
36---------------
37Generic tagging options like --tag, --tag-from-file, --long-tag allows you
38to set arbitrary tags.
39Available tags and their fcc (four char code) for --tag and --tag-from-file
40can be found at http://code.google.com/p/mp4v2/wiki/iTunesMetadata
41
42For tags such as Artist where first char of fcc is copyright sign,
43you can skip first char and just say like --tag="ART:Foo Bar" or
44--tag-from-file=lyr:/path/to/your/lyrics.txt
adbd1aac 45
46Currently, --tag-from-file just stores file contents into m4a without any
47character encoding / line terminater conversion.
48Therefore, only use UTF-8 (without BOM) when setting text tags by this option.
49
50On the other hand, --tag / --long-tag (and other command line arguments) are
51converted from locale character encoding to UTF-8 on Posix environment.
52On Windows, command line arguments are always treated as Unicode.
cbb23cdb 53
54Tagging using JSON
55------------------
56With --tag-from-json, fdkaac can read JSON file and set tags from it.
57By default, tags are assumed to be in the root object(dictionary) like this:
58
59{
60 "title": "No Expectations",
61 "artist": "The Rolling Stones",
62 "album": "Beggars Banquet",
63 "track": 2
64}
65
66In this case, you can simply specify the filename like:
67--tag-from-json=/path/to/json
68
69If the object containing tags is placed somewhere else, you can optionally
70specify the path of the object with dotted notation.
71
72{
73 "format" : {
74 "filename" : "Middle Curse.flac",
75 "nb_streams" : 1,
76 "format_name" : "flac",
77 "format_long_name" : "raw FLAC",
78 "start_time" : "N/A",
79 "duration" : "216.146667",
80 "size" : "11851007.000000",
81 "bit_rate" : "438628.000000",
82 "tags" : {
83 "ALBUM" : "Scary World Theory",
84 "ARTIST" : "Lali Puna",
85 "DATE" : "2001",
86 "DISCID" : "9208CC0A",
87 "TITLE" : "Middle Curse",
88 "TRACKTOTAL" : "10",
89 "track" : "2"
90 }
91 }
92}
93
94In this example, tags are placed under the object "format.tags".
95("format" is a child of the root, and "tags" is a child of the "format").
96In this case, you can say:
97--tag-from-json=/path/to/json?format.tags
98
99For your information, ffprobe of ffmpeg project (or avprobe of libav) can
100output media information/metadata in json format like this.
101
102Note that not all tags can be read/written this way.
This page took 0.016088 seconds and 4 git commands to generate.