c1db2632 |
1 | % FDKAAC(1) |
2 | % nu774 <honeycomb77@gmail.com> |
3 | % November, 2013 |
4 | |
5 | NAME |
6 | ==== |
7 | |
8 | fdkaac - command line frontend for libfdk-aac encoder |
9 | |
10 | SYNOPSIS |
11 | ======== |
12 | |
13 | **fdkaac** [OPTIONS] [FILE] |
14 | |
15 | DESCRIPTION |
16 | =========== |
17 | |
18 | **fdkaac** reads linear PCM audio in either WAV, raw PCM, or CAF format, |
19 | and encodes it into either M4A / AAC file. |
20 | |
21 | If the input file is "-", data is read from stdin. Likewise, if the |
22 | output file is "-", data is written to stdout if one of streamable AAC |
23 | transport formats is selected by **-f**. |
24 | |
25 | When CAF input and M4A output is used, tags in CAF file are copied into |
26 | the resulting M4A. |
27 | |
28 | OPTIONS |
29 | ======= |
30 | |
31 | -h, --help |
32 | : Show command help |
33 | |
34 | -o \<FILE\> |
35 | : Output filename. |
36 | |
37 | -p, --profile \<n\> |
38 | : Target profile (MPEG4 audio object type, AOT) |
39 | |
40 | 2 |
41 | : MPEG-4 AAC LC (default) |
42 | |
43 | 5 |
44 | : MPEG-4 HE-AAC (SBR) |
45 | |
46 | 29 |
47 | : MPEG-4 HE-AAC v2 (SBR+PS) |
48 | |
49 | 23 |
50 | : MPEG-4 AAC LD |
51 | |
52 | 39 |
53 | : MPEG-4 AAC ELD |
54 | |
55 | 129 |
56 | : MPEG-2 AAC LC |
57 | |
58 | 132 |
59 | : MPEG-2 HE-AAC (SBR) |
60 | |
61 | 156 |
62 | : MPEG-2 HE-AAC v2 (SBR+PS) |
63 | |
64 | -b, --bitrate \<n\> |
65 | : Target bitrate (for CBR) |
66 | |
67 | -m, --bitrate-mode \<n\> |
68 | : Bitrate configuration mode. Available VBR quality value depends on |
69 | other parameters such as profile, sample rate, or number of |
70 | channels. |
71 | |
72 | 0 |
73 | : CBR (default) |
74 | |
75 | 1-5 |
76 | : VBR (higher value -\> higher bitrate) |
77 | |
78 | -w, --bandwith \<n\> |
79 | : Frequency bandwith (lowpass cut-off frequency) in Hz. Available on |
80 | AAC LC only. |
81 | |
82 | -a, --afterburner \<n\> |
83 | : Configure afterburner mode. When enabled, quality is increased at |
84 | the expense of additional computational workload. |
85 | |
86 | 0 |
87 | : Off |
88 | |
89 | 1 |
90 | : On (default) |
91 | |
92 | -L, --lowdelay-sbr \<n\> |
93 | : Configure SBR activity on AAC ELD. |
94 | |
95 | -1 |
96 | : Use ELD SBR auto configuration |
97 | |
98 | 0 |
99 | : Disable SBR on ELD (default) |
100 | |
101 | 1 |
102 | : Enable SBR on ELD |
103 | |
104 | -s, --sbr-ratio \<n\> |
105 | : Controls activation of downsampled SBR. |
106 | |
107 | 0 |
108 | : Use lib default (default) |
109 | |
110 | 1 |
111 | : Use downsampled SBR (default for ELD+SBR) |
112 | |
113 | 2 |
114 | : Use dual-rate SBR (default for HE-AAC) |
115 | |
116 | Dual-rate SBR is what is normally used for HE-AAC, where AAC is |
117 | encoded at half the sample rate of SBR, hence "dual rate". On the |
118 | other hand, downsampled SBR uses same sample rate for both of AAC |
119 | and SBR (single rate), therefore downsampled SBR typically consumes |
120 | more bitrate. |
121 | |
122 | Downsampled SBR is newly introduced feature in FDK encoder library |
123 | version 3.4.12. When libfdk-aac in the system doesn't support this, |
124 | dual-rate SBR will be used. When available, dual-rate SBR is the |
125 | default for HE-AAC and downsampled SBR is the default for ELD+SBR. |
126 | |
127 | Note that downsampled HE-AAC is not so common as dual-rate one. When |
128 | downsampled HE-AAC is selected, **fdkaac** is forced to choose |
129 | explicit hierarchical SBR signaling, which (at least) iTunes doesn't |
130 | accept. |
131 | |
132 | -f, --transport-format \<n\> |
133 | : Transport format. Tagging and gapless playback is only available on |
134 | M4A. Streaming to stdout is only available on others. |
135 | |
136 | 0 |
137 | : M4A (default) |
138 | |
139 | 1 |
140 | : ADIF |
141 | |
142 | 2 |
143 | : ADTS |
144 | |
145 | 6 |
146 | : LATM MCP=1 |
147 | |
148 | 7 |
149 | : LATM MCP=0 |
150 | |
151 | 10 |
152 | : LOAS/LATM (LATM within LOAS) |
153 | |
154 | -C, --adts-crc-check |
155 | : Add CRC protection on ADTS header. |
156 | |
157 | -h, --header-period \<n\> |
158 | : StreamMuxConfig/PCE repetition period in transport layer. |
159 | |
160 | -G, --gapless-mode \<n\> |
161 | : Method to declare amount of encoder delay (and padding) in M4A |
162 | container. These values are mandatory for proper gapless playback on |
163 | player side. |
164 | |
165 | 0 |
166 | : iTunSMPB (default) |
167 | |
168 | 1 |
169 | : ISO standard (edts and sgpd) |
170 | |
171 | 2 |
172 | : Both |
173 | |
174 | --include-sbr-delay |
175 | : When specified, count SBR decoder delay in encoder delay. |
176 | |
177 | This is not iTunes compatible and will lead to gapless playback |
178 | issue on LC only decoder, but this is the default behavior of FDK |
179 | library. |
180 | |
181 | Whether counting SBR decoder delay in encoder delay or not result in |
182 | incompatibility in gapless playback. You should pick which one will |
183 | work for your favorite player. |
184 | |
185 | However, it's better not to choose SBR at all if you want gapless |
186 | playback. LC doesn't have such issues. |
187 | |
188 | -I, --ignorelength |
189 | : Ignore length field of data chunk in input WAV file. |
190 | |
191 | -S, --silent |
192 | : Don't print progress messages. |
193 | |
194 | --moov-before-mdat |
195 | : Place moov box before mdat box in M4A container. This option might |
196 | be important for some hardware players, that are known to refuse |
197 | moov box placed after mdat box. |
198 | |
199 | -R, --raw |
200 | : Regard input as raw PCM. |
201 | |
202 | --raw-channels \<n\> |
203 | : Specify number of channels of raw input (default: 2) |
204 | |
205 | --raw-rate \<n\> |
206 | : Specify sample rate of raw input (default: 44100) |
207 | |
208 | --raw-format \<spec\> |
209 | : Specify sample format of raw input (default: "S16L"). **Spec** is as |
210 | the following (case insensitive): |
211 | |
212 | 1st char -- type of sample |
213 | : **S** (igned) | **U** (nsigned) | **F** (loat) |
214 | |
215 | 2nd part (in digits) |
216 | : bits per channel |
217 | |
218 | Last char -- endianness (can be ommited) |
219 | : **L** (ittle, default) | **B** (ig) |
220 | |
221 | --title \<string\> |
222 | : Set title tag. |
223 | |
224 | --artist \<string\> |
225 | : Set artist tag. |
226 | |
227 | --album \<string\> |
228 | : Set album tag. |
229 | |
230 | --genre \<string\> |
231 | : Set genre tag. |
232 | |
233 | --date \<string\> |
234 | : Set date tag. |
235 | |
236 | --composer \<string\> |
237 | : Set composer tag. |
238 | |
239 | --grouping \<string\> |
240 | : Set grouping tag. |
241 | |
242 | --comment \<string\> |
243 | : Set comment tag. |
244 | |
245 | --album-artist \<string\> |
246 | : Set album artist tag. |
247 | |
248 | --track \<number[/total]\> |
249 | : Set track tag, with or without number of total tracks. |
250 | |
251 | --disk \<number[/total]\> |
252 | : Set disk tag, with or without number of total discs. |
253 | |
254 | --tempo \<n\> |
255 | : Set tempo (BPM) tag. |
256 | |
257 | --tag \<fcc\>:\<value\> |
258 | : Set iTunes predefined tag with explicit fourcc key and value. See |
259 | [https://code.google.com/p/mp4v2/wiki/iTunesMetadata](https://code.google.com/p/mp4v2/wiki/iTunesMetadata) |
260 | for known predefined keys. You can omit first char of **fcc** when |
261 | it is the copyright sign. |
262 | |
263 | --tag-from-file \<fcc\>:\<filename\> |
264 | : Same as --tag, but set content of file as tag value. |
265 | |
266 | --long-tag \<name\>:\<value\> |
267 | : Set arbitrary tag as iTunes custom metadata. Stored in |
268 | com.apple.iTunes field. |
269 | |
270 | --tag-from-json \<filename[?dot\_notation]\> |
271 | : Read tags from JSON. By default, tags are assumed to be direct |
272 | children of the root object in JSON. Optionary you can speficy |
273 | arbitrary dot notation to locate the object containing tags. |
274 | |
275 | |
276 | EXAMPLES |
277 | ======== |
278 | |
279 | Encode WAV file into a M4A file. MPEG4 AAC LC, VBR quality 3: |
280 | |
281 | fdkaac -m3 foo.wav |
282 | |
283 | Encode WAV file into a M4A file. MPEG4 HE-AAC, bitrate 64kbps: |
284 | |
285 | fdkaac -p5 -b64 foo.wav |
286 | |
287 | Piping from **ffmpeg** (you need version supporting CAF output): |
288 | |
289 | ffmpeg -i foo.flac -f caf - | fdkaac -b128 - -o foo.m4a |
290 | |
291 | Import tags via json: |
292 | |
293 | ffprobe -v 0 -of json -show_format foo.flac >foo.json |
294 | |
295 | flac -dc foo.flac | \ |
296 | fdkaac - -ox.m4a -m2 --import-tag-from-json=foo.json?format.tags |
297 | |
298 | NOTES |
299 | ===== |
300 | |
301 | Upto 32bit integer or 64bit floating point format is supported as input. |
302 | However, FDK library is implemented based on fixed point math and only |
303 | supports 16bit integer PCM. Therefore, be careful of clipping. You might |
304 | want to dither/noise shape beforehand when your input has higher |
305 | resolution. |
306 | |
307 | Following channel layouts are supported by the encoder. |
308 | |
309 | 1ch |
310 | : C |
311 | |
312 | 2ch |
313 | : L R |
314 | |
315 | 3ch |
316 | : C L R |
317 | |
318 | 4ch |
319 | : C L R Cs |
320 | |
321 | 5ch |
322 | : C L R Ls Rs |
323 | |
324 | 5.1ch |
325 | : C L R Ls Rs LFE |
326 | |
327 | 7.1ch (front) |
328 | : C Lc Rc L R Ls Rs LFE |
329 | |
330 | 7.1ch (rear) |
331 | : C L R Ls Rs Rls Rrs LFE |
332 | |