use fseeko64() on i686-pc-mingw32
[fdkaac.git] / README
1 ==========================================================================
2 fdkaac - command line frontend encoder for libfdk-aac
3 ==========================================================================
4
5 Prerequisites
6 -------------
7 You need libfdk-aac.
8 On Posix environment, you will also need GNU gettext (for iconv.m4) and
9 GNU autoconf/automake.
10
11 How to build on Posix environment
12 ---------------------------------
13 First, you need to build libfdk-aac and install on your system.
14 Once 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)
16
17 $ autoreconf -i
18 $ ./configure && make && make install
19
20 How to build on MSVC
21 --------------------
22 First you have to extract libfdk-aac source here, so that directory tree will
23 look like the following:
24 +- fdk-aac ---+-documentation
25 | +-libAACdec
26 | +-libAACenc
27 | :
28 +- m4
29 +- missings
30 +- MSVC
31 +- src
32
33 MSVC solution for Visual Studio 2010 is under MSVC directory.
34
35 Tagging Options
36 ---------------
37 Generic tagging options like --tag, --tag-from-file, --long-tag allows you
38 to set arbitrary tags.
39 Available tags and their fcc (four char code) for --tag and --tag-from-file
40 can be found at http://code.google.com/p/mp4v2/wiki/iTunesMetadata
41
42 For tags such as Artist where first char of fcc is copyright sign,
43 you can skip first char and just say like --tag="ART:Foo Bar" or
44 --tag-from-file=lyr:/path/to/your/lyrics.txt
45
46 Currently, --tag-from-file just stores file contents into m4a without any
47 character encoding / line terminater conversion.
48 Therefore, only use UTF-8 (without BOM) when setting text tags by this option.
49
50 On the other hand, --tag / --long-tag (and other command line arguments) are
51 converted from locale character encoding to UTF-8 on Posix environment.
52 On Windows, command line arguments are always treated as Unicode.
53
54 Tagging using JSON
55 ------------------
56 With --tag-from-json, fdkaac can read JSON file and set tags from it.
57 By 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
66 In this case, you can simply specify the filename like:
67 --tag-from-json=/path/to/json
68
69 If the object containing tags is placed somewhere else, you can optionally
70 specify 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
94 In 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").
96 In this case, you can say:
97 --tag-from-json=/path/to/json?format.tags
98
99 For your information, ffprobe of ffmpeg project (or avprobe of libav) can
100 output media information/metadata in json format like this.
101
102 Note that not all tags can be read/written this way.
This page took 0.022257 seconds and 4 git commands to generate.