From c1db26327a38926a424a9735d6e03a93d97dddf9 Mon Sep 17 00:00:00 2001 From: nu774 Date: Mon, 4 Nov 2013 15:33:01 +0900 Subject: [PATCH] Update README -> README.md, generate groff manpage from README.md --- README | 122 ---------- README.md | 332 +++++++++++++++++++++++++++ man/fdkaac.1 | 620 ++++++++++++++++++++++++++++++++------------------- 3 files changed, 719 insertions(+), 355 deletions(-) delete mode 100644 README create mode 100644 README.md diff --git a/README b/README deleted file mode 100644 index 5941539..0000000 --- a/README +++ /dev/null @@ -1,122 +0,0 @@ -========================================================================== -fdkaac - command line frontend encoder for libfdk-aac -========================================================================== - -Prerequisites -------------- -You need libfdk-aac. -On Posix environment, you will also need GNU gettext (for iconv.m4) and -GNU autoconf/automake. - -How to build on Posix environment ---------------------------------- -First, you need to build libfdk-aac and install on your system. -Once you have done it, the following will do the task. -(MinGW build can be done the same way, and doesn't require gettext/iconv) - -$ autoreconf -i -$ ./configure && make && make install - -How to build on MSVC --------------------- -First you have to extract libfdk-aac source here, so that directory tree will -look like the following: -+- fdk-aac ---+-documentation -| +-libAACdec -| +-libAACenc -| : -+- m4 -+- missings -+- MSVC -+- src - -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 -to set arbitrary tags. -Available tags and their fcc (four char code) for --tag and --tag-from-file -can be found at http://code.google.com/p/mp4v2/wiki/iTunesMetadata - -For tags such as Artist where first char of fcc is copyright sign, -you can skip first char and just say like --tag="ART:Foo Bar" or ---tag-from-file=lyr:/path/to/your/lyrics.txt - -Currently, --tag-from-file just stores file contents into m4a without any -character encoding / line terminater conversion. -Therefore, only use UTF-8 (without BOM) when setting text tags by this option. - -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. diff --git a/README.md b/README.md new file mode 100644 index 0000000..e584375 --- /dev/null +++ b/README.md @@ -0,0 +1,332 @@ +% FDKAAC(1) +% nu774 +% November, 2013 + +NAME +==== + +fdkaac - command line frontend for libfdk-aac encoder   + +SYNOPSIS +======== + +**fdkaac** [OPTIONS] [FILE] + +DESCRIPTION +=========== + +**fdkaac** reads linear PCM audio in either WAV, raw PCM, or CAF format, +and encodes it into either M4A / AAC file. + +If the input file is "-", data is read from stdin. Likewise, if the +output file is "-", data is written to stdout if one of streamable AAC +transport formats is selected by **-f**. + +When CAF input and M4A output is used, tags in CAF file are copied into +the resulting M4A.   + +OPTIONS +======= + +-h, --help +: Show command help + +-o \ +: Output filename. + +-p, --profile \ +: Target profile (MPEG4 audio object type, AOT) + + 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 + + 129 + : MPEG-2 AAC LC + + 132 + : MPEG-2 HE-AAC (SBR) + + 156 + : MPEG-2 HE-AAC v2 (SBR+PS) + +-b, --bitrate \ +: Target bitrate (for CBR) + +-m, --bitrate-mode \ +: Bitrate configuration mode. Available VBR quality value depends on + other parameters such as profile, sample rate, or number of + channels. + + 0 + : CBR (default) + + 1-5 + : VBR (higher value -\> higher bitrate) + +-w, --bandwith \ +: Frequency bandwith (lowpass cut-off frequency) in Hz. Available on + AAC LC only. + +-a, --afterburner \ +: Configure afterburner mode. When enabled, quality is increased at + the expense of additional computational workload. + + 0 + : Off + + 1 + : On (default) + +-L, --lowdelay-sbr \ +: Configure SBR activity on AAC ELD. + + -1 + : Use ELD SBR auto configuration + + 0 + : Disable SBR on ELD (default) + + 1 + : Enable SBR on ELD + +-s, --sbr-ratio \ +: Controls activation of downsampled SBR. + + 0 + : Use lib default (default) + + 1 + : Use downsampled SBR (default for ELD+SBR) + + 2 + : Use dual-rate SBR (default for HE-AAC) + + Dual-rate SBR is what is normally used for HE-AAC, where AAC is + encoded at half the sample rate of SBR, hence "dual rate". On the + other hand, downsampled SBR uses same sample rate for both of AAC + and SBR (single rate), therefore downsampled SBR typically consumes + more bitrate. + + Downsampled SBR is newly introduced feature in FDK encoder library + version 3.4.12. When libfdk-aac in the system doesn't support this, + dual-rate SBR will be used. When available, dual-rate SBR is the + default for HE-AAC and downsampled SBR is the default for ELD+SBR. + + Note that downsampled HE-AAC is not so common as dual-rate one. When + downsampled HE-AAC is selected, **fdkaac** is forced to choose + explicit hierarchical SBR signaling, which (at least) iTunes doesn't + accept. + +-f, --transport-format \ +: Transport format. Tagging and gapless playback is only available on + M4A. Streaming to stdout is only available on others. + + 0 + : M4A (default) + + 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 \ +: StreamMuxConfig/PCE repetition period in transport layer. + +-G, --gapless-mode \ +: Method to declare amount of encoder delay (and padding) in M4A + container. These values are mandatory for proper gapless playback on + player side. + + 0 + : iTunSMPB (default) + + 1 + : ISO standard (edts and sgpd) + + 2 + : Both + +--include-sbr-delay +: When specified, count SBR decoder delay in encoder delay. + + This is not iTunes compatible and will lead to gapless playback + issue on LC only decoder, but this is the default behavior of FDK + library. + + Whether counting SBR decoder delay in encoder delay or not result in + incompatibility in gapless playback. You should pick which one will + work for your favorite player. + + However, it's better not to choose SBR at all if you want gapless + playback. LC doesn't have such issues. + +-I, --ignorelength +: Ignore length field of data chunk in input WAV file. + +-S, --silent +: Don't print progress messages. + +--moov-before-mdat +: Place moov box before mdat box in M4A container. This option might + be important for some hardware players, that are known to refuse + moov box placed after mdat box. + +-R, --raw +: Regard input as raw PCM. + +--raw-channels \ +: Specify number of channels of raw input (default: 2) + +--raw-rate \ +: Specify sample rate of raw input (default: 44100) + +--raw-format \ +: Specify sample format of raw input (default: "S16L"). **Spec** is as + the following (case insensitive): + + 1st char -- type of sample + : **S** (igned) | **U** (nsigned) | **F** (loat) + + 2nd part (in digits) + : bits per channel + + Last char -- endianness (can be ommited) + : **L** (ittle, default) | **B** (ig) + +--title \ +: Set title tag. + +--artist \ +: Set artist tag. + +--album \ +: Set album tag. + +--genre \ +: Set genre tag. + +--date \ +: Set date tag. + +--composer \ +: Set composer tag. + +--grouping \ +: Set grouping tag. + +--comment \ +: Set comment tag. + +--album-artist \ +: Set album artist tag. + +--track \ +: Set track tag, with or without number of total tracks. + +--disk \ +: Set disk tag, with or without number of total discs. + +--tempo \ +: Set tempo (BPM) tag. + +--tag \:\ +: Set iTunes predefined tag with explicit fourcc key and value. See + [https://code.google.com/p/mp4v2/wiki/iTunesMetadata](https://code.google.com/p/mp4v2/wiki/iTunesMetadata) + for known predefined keys. You can omit first char of **fcc** when + it is the copyright sign. + +--tag-from-file \:\ +: Same as --tag, but set content of file as tag value. + +--long-tag \:\ +: Set arbitrary tag as iTunes custom metadata. Stored in + com.apple.iTunes field. + +--tag-from-json \ +: Read tags from JSON. By default, tags are assumed to be direct + children of the root object in JSON. Optionary you can speficy + arbitrary dot notation to locate the object containing tags. +  + +EXAMPLES +======== + +Encode WAV file into a M4A file. MPEG4 AAC LC, VBR quality 3: + + fdkaac -m3 foo.wav + +Encode WAV file into a M4A file. MPEG4 HE-AAC, bitrate 64kbps: + + fdkaac -p5 -b64 foo.wav + +Piping from **ffmpeg** (you need version supporting CAF output): + + ffmpeg -i foo.flac -f caf - | fdkaac -b128 - -o foo.m4a + +Import tags via json: + + ffprobe -v 0 -of json -show_format foo.flac >foo.json + + flac -dc foo.flac | \ + fdkaac - -ox.m4a -m2 --import-tag-from-json=foo.json?format.tags + +NOTES +===== + +Upto 32bit integer or 64bit floating point format is supported as input. +However, FDK library is implemented based on fixed point math and only +supports 16bit integer PCM. Therefore, be careful of clipping. You might +want to dither/noise shape beforehand when your input has higher +resolution. + +Following channel layouts are supported by the encoder. + +1ch +: C + +2ch +: L R + +3ch +: C L R + +4ch +: C L R Cs + +5ch +: C L R Ls Rs + +5.1ch +: C L R Ls Rs LFE + +7.1ch (front) +: C Lc Rc L R Ls Rs LFE + +7.1ch (rear) +: C L R Ls Rs Rls Rrs LFE + diff --git a/man/fdkaac.1 b/man/fdkaac.1 index 87499b7..58864f1 100644 --- a/man/fdkaac.1 +++ b/man/fdkaac.1 @@ -1,343 +1,497 @@ -.TH fdkaac 1 "November 2013" -.\" -.\" +.TH FDKAAC 1 "November, 2013" .SH NAME -fdkaac \- command line frontend for libfdk-aac encoder -.\" -.\" +.PP +fdkaac - command line frontend for libfdk-aac encoder \ .SH SYNOPSIS -.B fdkaac -[-h|--help] [-p|--profile ] [-b|--bitrate ] [-m|--bitrate-mode ] -[-w|--bandwith ] [-a|afterburner ] [-L|--lowdelay-sbr ] -[-s|--sbr-ratio ] [-f|--transport-format ] [-C|--adts-crc-check] -[-h|--header-period ] [-G|--gapless-mode ] [--include-sbr-delay] -[-I|--ignore-length] [-S|--silent] [--mov-before-mdat] -[-R|--raw] [--raw-channels ] [--raw-rate ] [--raw-format ] -[--title ] [--artist ] [--album ] [--genre ] [--date ] -[--composer ] [--grouping ] [--comment ] [--album-artist ] -[--track ] [--disk ] [--tempo ] -[--tag :] [--tag-from-file :] -[--long-tag :] [--tag-from-json ] -[-o FILE] [FILE] -.\" -.\" +.PP +\f[B]fdkaac\f[] [OPTIONS] [FILE] .SH DESCRIPTION -.B fdkaac -reads linear PCM audio in either WAV, raw PCM, or CAF format, -and encodes it into either M4A / AAC file. -.br +.PP +\f[B]fdkaac\f[] reads linear PCM audio in either WAV, raw PCM, or CAF +format, and encodes it into either M4A / AAC file. +.PP If the input file is "-", data is read from stdin. Likewise, if the output file is "-", data is written to stdout if one of -streamable AAC transport formats is selected by -.B -f. -.br +streamable AAC transport formats is selected by \f[B]-f\f[]. +.PP When CAF input and M4A output is used, tags in CAF file are copied into the resulting M4A. -.\" -.\" +\ .SH OPTIONS -.\" -.IP "-h, --help" +.TP +.B -h, --help Show command help -.\" -.IP "-o " +.RS +.RE +.TP +.B -o Output filename. -.\" -.IP "-p, --profile " +.RS +.RE +.TP +.B -p, --profile Target profile (MPEG4 audio object type, AOT) .RS -.IP 2 +.TP +.B 2 MPEG-4 AAC LC (default) -.IP 5 +.RS +.RE +.TP +.B 5 MPEG-4 HE-AAC (SBR) -.IP 29 +.RS +.RE +.TP +.B 29 MPEG-4 HE-AAC v2 (SBR+PS) -.IP 23 +.RS +.RE +.TP +.B 23 MPEG-4 AAC LD -.IP 39 +.RS +.RE +.TP +.B 39 MPEG-4 AAC ELD -.IP 129 +.RS +.RE +.TP +.B 129 MPEG-2 AAC LC -.IP 132 +.RS +.RE +.TP +.B 132 MPEG-2 HE-AAC (SBR) -.IP 156 +.RS +.RE +.TP +.B 156 MPEG-2 HE-AAC v2 (SBR+PS) +.RS .RE -.\" -.IP "-b, --bitrate " +.RE +.TP +.B -b, --bitrate Target bitrate (for CBR) -.\" -.IP "-m, --bitrate-mode " -Bitrate configuration mode. -Available VBR quality value depends on other parameters such as -profile, sample rate, or number of channels. .RS -.IP 0 +.RE +.TP +.B -m, --bitrate-mode +Bitrate configuration mode. +Available VBR quality value depends on other parameters such as profile, +sample rate, or number of channels. +.RS +.TP +.B 0 CBR (default) -.IP 1-5 +.RS +.RE +.TP +.B 1-5 VBR (higher value -> higher bitrate) +.RS +.RE .RE -.\" -.IP "-w, --bandwith " -Frequency bandwith (lowpass cut-off frequency) in Hz. Available on AAC LC only. -.\" -.IP "-a, --afterburner " -Configure afterburner mode. When enabled, quality is increased at the expense -of additional computational workload. +.TP +.B -w, --bandwith +Frequency bandwith (lowpass cut-off frequency) in Hz. +Available on AAC LC only. .RS -.IP 0 +.RE +.TP +.B -a, --afterburner +Configure afterburner mode. +When enabled, quality is increased at the expense of additional +computational workload. +.RS +.TP +.B 0 Off -.IP 1 +.RS +.RE +.TP +.B 1 On (default) +.RS .RE -.\" -.IP "-L, --lowdelay-sbr " +.RE +.TP +.B -L, --lowdelay-sbr Configure SBR activity on AAC ELD. .RS -.IP -1 +.TP +.B -1 Use ELD SBR auto configuration -.IP 0 +.RS +.RE +.TP +.B 0 Disable SBR on ELD (default) -.IP 1 +.RS +.RE +.TP +.B 1 Enable SBR on ELD +.RS +.RE .RE -.\" -.IP "-s, --sbr-ratio " -Controls activation of downsampled SBR. +.TP +.B -s, --sbr-ratio +Controls activation of downsampled SBR. .RS -.IP 0 +.TP +.B 0 Use lib default (default) -.IP 1 +.RS +.RE +.TP +.B 1 Use downsampled SBR (default for ELD+SBR) -.IP 2 -Use dual-rate SBR (default for HE-AAC) +.RS .RE +.TP +.B 2 +Use dual-rate SBR (default for HE-AAC) .RS +.RE .PP -Dual-rate SBR is what is normally used for HE-AAC, where AAC is encoded at half the sample rate of SBR, hence "dual rate". -On the other hand, downsampled SBR uses same sample rate for both of AAC and SBR (single rate), therefore downsampled SBR typically consumes more bitrate. +Dual-rate SBR is what is normally used for HE-AAC, where AAC is encoded +at half the sample rate of SBR, hence "dual rate". +On the other hand, downsampled SBR uses same sample rate for both of AAC +and SBR (single rate), therefore downsampled SBR typically consumes more +bitrate. .PP -Downsampled SBR is newly introduced feature in FDK encoder library version 3.4.12. -When libfdk-aac in the system doesn't support this, dual-rate SBR will be used. -When available, dual-rate SBR is the default for HE-AAC and downsampled SBR is the default for ELD+SBR. +Downsampled SBR is newly introduced feature in FDK encoder library +version 3.4.12. +When libfdk-aac in the system doesn\[aq]t support this, dual-rate SBR +will be used. +When available, dual-rate SBR is the default for HE-AAC and downsampled +SBR is the default for ELD+SBR. .PP Note that downsampled HE-AAC is not so common as dual-rate one. -When downsampled HE-AAC is selected, -.B fdkaac -is forced to choose explicit hierarchical SBR signaling, which (at least) iTunes doesn't accept. +When downsampled HE-AAC is selected, \f[B]fdkaac\f[] is forced to choose +explicit hierarchical SBR signaling, which (at least) iTunes doesn\[aq]t +accept. .RE -.\" -.IP "-f, --transport-format " +.TP +.B -f, --transport-format Transport format. -Tagging and gapless playback is only available on M4A. Streaming to stdout is -only available on others. +Tagging and gapless playback is only available on M4A. +Streaming to stdout is only available on others. .RS -.IP 0 +.TP +.B 0 M4A (default) -.IP 1 +.RS +.RE +.TP +.B 1 ADIF -.IP 2 +.RS +.RE +.TP +.B 2 ADTS -.IP 6 +.RS +.RE +.TP +.B 6 LATM MCP=1 -.IP 7 +.RS +.RE +.TP +.B 7 LATM MCP=0 -.IP 10 +.RS +.RE +.TP +.B 10 LOAS/LATM (LATM within LOAS) +.RS .RE -.\" -.IP "-C, --adts-crc-check" +.RE +.TP +.B -C, --adts-crc-check Add CRC protection on ADTS header. -.\" -.IP "-h, --header-period " +.RS +.RE +.TP +.B -h, --header-period StreamMuxConfig/PCE repetition period in transport layer. -.\" -.IP "-G, --gapless-mode " -Method to declare amount of encoder delay (and padding) in M4A container. +.RS +.RE +.TP +.B -G, --gapless-mode +Method to declare amount of encoder delay (and padding) in M4A +container. These values are mandatory for proper gapless playback on player side. .RS -.IP 0 +.TP +.B 0 iTunSMPB (default) -.IP 1 +.RS +.RE +.TP +.B 1 ISO standard (edts and sgpd) -.IP 2 +.RS +.RE +.TP +.B 2 Both +.RS +.RE .RE -.\" -.IP "--include-sbr-delay" +.TP +.B --include-sbr-delay When specified, count SBR decoder delay in encoder delay. -.br +.RS +.PP This is not iTunes compatible and will lead to gapless playback issue on LC only decoder, but this is the default behavior of FDK library. -.br +.PP Whether counting SBR decoder delay in encoder delay or not result in -incompatibility in gapless playback. You should pick which one will work for -your favorite player. -.br -However, it's better not to choose SBR at all if you want -gapless playback. LC doesn't have such issues. -.\" -.IP "-I, --ignorelength" +incompatibility in gapless playback. +You should pick which one will work for your favorite player. +.PP +However, it\[aq]s better not to choose SBR at all if you want gapless +playback. +LC doesn\[aq]t have such issues. +.RE +.TP +.B -I, --ignorelength Ignore length field of data chunk in input WAV file. -.\" -.IP "-S, --silent" -Don't print progress messages. -.\" -.IP "--moov-before-mdat" +.RS +.RE +.TP +.B -S, --silent +Don\[aq]t print progress messages. +.RS +.RE +.TP +.B --moov-before-mdat Place moov box before mdat box in M4A container. -.br -This option might be important for some hardware players, that are known to -refuse moov box placed after mdat box. -.\" -.IP "-R, --raw" +This option might be important for some hardware players, that are known +to refuse moov box placed after mdat box. +.RS +.RE +.TP +.B -R, --raw Regard input as raw PCM. -.\" -.IP "--raw-channels " +.RS +.RE +.TP +.B --raw-channels Specify number of channels of raw input (default: 2) -.\" -.IP "--raw-rate " +.RS +.RE +.TP +.B --raw-rate Specify sample rate of raw input (default: 44100) -.\" -.IP "--raw-format " +.RS +.RE +.TP +.B --raw-format Specify sample format of raw input (default: "S16L"). -.B Spec -is as the following (case insensitive): -.RS -.IP "1st char -- type of sample" -.B S -(igned) | -.B U -(nsigned) | -.B F -(loat) -.IP "2nd part (in digits)" +\f[B]Spec\f[] is as the following (case insensitive): +.RS +.TP +.B 1st char -- type of sample +\f[B]S\f[] (igned) | \f[B]U\f[] (nsigned) | \f[B]F\f[] (loat) +.RS +.RE +.TP +.B 2nd part (in digits) bits per channel -.IP "Last char -- endianness (can be ommited) -.B L -(ittle, default) | -.B B -(ig) -.RE -.\" -.IP "--title " +.RS +.RE +.TP +.B Last char -- endianness (can be ommited) +\f[B]L\f[] (ittle, default) | \f[B]B\f[] (ig) +.RS +.RE +.RE +.TP +.B --title Set title tag. -.\" -.IP "--artist " +.RS +.RE +.TP +.B --artist Set artist tag. -.\" -.IP "--album " +.RS +.RE +.TP +.B --album Set album tag. -.\" -.IP "--genre " +.RS +.RE +.TP +.B --genre Set genre tag. -.\" -.IP "--date " +.RS +.RE +.TP +.B --date Set date tag. -.\" -.IP "--composer " +.RS +.RE +.TP +.B --composer Set composer tag. -.\" -.IP "--grouping " +.RS +.RE +.TP +.B --grouping Set grouping tag. -.\" -.IP "--comment " +.RS +.RE +.TP +.B --comment Set comment tag. -.\" -.IP "--album-artist " +.RS +.RE +.TP +.B --album-artist Set album artist tag. -.\" -.IP "--track " +.RS +.RE +.TP +.B --track Set track tag, with or without number of total tracks. -.\" -.IP "--disk " +.RS +.RE +.TP +.B --disk Set disk tag, with or without number of total discs. -.\" -.IP "--tempo " +.RS +.RE +.TP +.B --tempo Set tempo (BPM) tag. -.\" -.IP "--tag :" +.RS +.RE +.TP +.B --tag : Set iTunes predefined tag with explicit fourcc key and value. -.br See -.B -https://code.google.com/p/mp4v2/wiki/iTunesMetadata +https://code.google.com/p/mp4v2/wiki/iTunesMetadata (https://code.google.com/p/mp4v2/wiki/iTunesMetadata) for known predefined keys. -.br -You can omit first char of -.B fcc -when it is the copyright sign. -.\" -.IP "--tag-from-file :" -Same as --tag, but set content of file as tag value. -.\" -.IP "--long-tag :" -Set arbitrary tag as iTunes custom metadata. Stored in com.apple.iTunes field. -.\" -.IP "--tag-from-json " -Read tags from JSON. By default, tags are assumed to be direct children of the -root object in JSON. Optionary you can speficy arbitrary dot notation to locate -the object containing tags. -.\" -.\" -.SH EXAMPLES -.\" -.PP -Encode WAV file into a M4A file. MPEG4 AAC LC, VBR quality 3. +You can omit first char of \f[B]fcc\f[] when it is the copyright sign. .RS -fdkaac -m3 foo.wav .RE -.\" -.PP -Encode WAV file into a M4A file. MPEG4 HE-AAC, bitrate 64kbps. +.TP +.B --tag-from-file : +Same as --tag, but set content of file as tag value. .RS -fdkaac -p5 -b64 foo.wav .RE -.\" -.PP -Piping from -.B ffmpeg -(you need version supporting CAF output) +.TP +.B --long-tag : +Set arbitrary tag as iTunes custom metadata. +Stored in com.apple.iTunes field. .RS -ffmpeg -i foo.flac -f caf - | fdkaac -b128 - -o foo.m4a .RE -.\" -.PP -Import tag using json generated by -.B (ff|av)probe +.TP +.B --tag-from-json +Read tags from JSON. +By default, tags are assumed to be direct children of the root object in +JSON. +Optionary you can speficy arbitrary dot notation to locate the object +containing tags. .RS -ffprobe -v 0 -of json -show_format foo.flac >foo.json -.br -flac -dc foo.flac | fdkaac - -o foo.m4a -b128 --import-tag-from-json foo.json?format.tags .RE -.\" -.\" +.PP +\ +.SH EXAMPLES +.PP +Encode WAV file into a M4A file. +MPEG4 AAC LC, VBR quality 3: +.IP +.nf +\f[C] +fdkaac\ -m3\ foo.wav +\f[] +.fi +.PP +Encode WAV file into a M4A file. +MPEG4 HE-AAC, bitrate 64kbps: +.IP +.nf +\f[C] +fdkaac\ -p5\ -b64\ foo.wav +\f[] +.fi +.PP +Piping from \f[B]ffmpeg\f[] (you need version supporting CAF output): +.IP +.nf +\f[C] +ffmpeg\ -i\ foo.flac\ -f\ caf\ -\ |\ fdkaac\ -b128\ -\ -o\ foo.m4a +\f[] +.fi +.PP +Import tags via json: +.IP +.nf +\f[C] +ffprobe\ -v\ 0\ -of\ json\ -show_format\ foo.flac\ >foo.json + +flac\ -dc\ foo.flac\ |\ \\ +fdkaac\ -\ -ox.m4a\ -m2\ --import-tag-from-json=foo.json?format.tags +\f[] +.fi .SH NOTES -.\" .PP Upto 32bit integer or 64bit floating point format is supported as input. -However, FDK library is implemented based on fixed point math and only supports 16bit integer PCM. Therefore, be careful of clipping. You might want to -dither/noise shape beforehand when your input has higher resolution. -.\" +However, FDK library is implemented based on fixed point math and only +supports 16bit integer PCM. +Therefore, be careful of clipping. +You might want to dither/noise shape beforehand when your input has +higher resolution. .PP Following channel layouts are supported by the encoder. -.RS -.IP 1ch +.TP +.B 1ch C -.IP 2ch +.RS +.RE +.TP +.B 2ch L R -.IP 3ch +.RS +.RE +.TP +.B 3ch C L R -.IP 4ch +.RS +.RE +.TP +.B 4ch C L R Cs -.IP 5ch +.RS +.RE +.TP +.B 5ch C L R Ls Rs -.IP 5.1ch +.RS +.RE +.TP +.B 5.1ch C L R Ls Rs LFE -.IP 7.1ch -C Lc Rc L R Ls Rs LFE (7.1ch front) -.br -C L R Ls Rs Rls Rrs LFE (7.1ch rear) +.RS +.RE +.TP +.B 7.1ch (front) +C Lc Rc L R Ls Rs LFE +.RS +.RE +.TP +.B 7.1ch (rear) +C L R Ls Rs Rls Rrs LFE +.RS .RE -.\" .SH AUTHORS -nu774 +nu774 . -- 2.30.2