From 30c77dfb6f02159f8505839561f27476639dac21 Mon Sep 17 00:00:00 2001 From: nu774 Date: Mon, 4 Nov 2013 12:14:52 +0900 Subject: [PATCH] add manpage --- Makefile.am | 2 + man/fdkaac.1 | 343 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 345 insertions(+) create mode 100644 man/fdkaac.1 diff --git a/Makefile.am b/Makefile.am index f410b67..cfceda4 100644 --- a/Makefile.am +++ b/Makefile.am @@ -18,6 +18,8 @@ fdkaac_SOURCES = \ src/progress.c \ src/wav_reader.c +dist_man_MANS = man/fdkaac.1 + fdkaac_LDADD = \ @LIBICONV@ -lfdk-aac -lm diff --git a/man/fdkaac.1 b/man/fdkaac.1 new file mode 100644 index 0000000..87499b7 --- /dev/null +++ b/man/fdkaac.1 @@ -0,0 +1,343 @@ +.TH fdkaac 1 "November 2013" +.\" +.\" +.SH NAME +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] +.\" +.\" +.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 +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 +When CAF input and M4A output is used, tags in CAF file are copied into +the resulting M4A. +.\" +.\" +.SH OPTIONS +.\" +.IP "-h, --help" +Show command help +.\" +.IP "-o " +Output filename. +.\" +.IP "-p, --profile " +Target profile (MPEG4 audio object type, AOT) +.RS +.IP 2 +MPEG-4 AAC LC (default) +.IP 5 +MPEG-4 HE-AAC (SBR) +.IP 29 +MPEG-4 HE-AAC v2 (SBR+PS) +.IP 23 +MPEG-4 AAC LD +.IP 39 +MPEG-4 AAC ELD +.IP 129 +MPEG-2 AAC LC +.IP 132 +MPEG-2 HE-AAC (SBR) +.IP 156 +MPEG-2 HE-AAC v2 (SBR+PS) +.RE +.\" +.IP "-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 +CBR (default) +.IP 1-5 +VBR (higher value -> higher bitrate) +.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. +.RS +.IP 0 +Off +.IP 1 +On (default) +.RE +.\" +.IP "-L, --lowdelay-sbr " +Configure SBR activity on AAC ELD. +.RS +.IP -1 +Use ELD SBR auto configuration +.IP 0 +Disable SBR on ELD (default) +.IP 1 +Enable SBR on ELD +.RE +.\" +.IP "-s, --sbr-ratio " +Controls activation of downsampled SBR. +.RS +.IP 0 +Use lib default (default) +.IP 1 +Use downsampled SBR (default for ELD+SBR) +.IP 2 +Use dual-rate SBR (default for HE-AAC) +.RE +.RS +.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. +.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. +.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. +.RE +.\" +.IP "-f, --transport-format " +Transport format. +Tagging and gapless playback is only available on M4A. Streaming to stdout is +only available on others. +.RS +.IP 0 +M4A (default) +.IP 1 +ADIF +.IP 2 +ADTS +.IP 6 +LATM MCP=1 +.IP 7 +LATM MCP=0 +.IP 10 +LOAS/LATM (LATM within LOAS) +.RE +.\" +.IP "-C, --adts-crc-check" +Add CRC protection on ADTS header. +.\" +.IP "-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. +These values are mandatory for proper gapless playback on player side. +.RS +.IP 0 +iTunSMPB (default) +.IP 1 +ISO standard (edts and sgpd) +.IP 2 +Both +.RE +.\" +.IP "--include-sbr-delay" +When specified, count SBR decoder delay in encoder delay. +.br +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 +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" +Ignore length field of data chunk in input WAV file. +.\" +.IP "-S, --silent" +Don't print progress messages. +.\" +.IP "--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" +Regard input as raw PCM. +.\" +.IP "--raw-channels " +Specify number of channels of raw input (default: 2) +.\" +.IP "--raw-rate " +Specify sample rate of raw input (default: 44100) +.\" +.IP "--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)" +bits per channel +.IP "Last char -- endianness (can be ommited) +.B L +(ittle, default) | +.B B +(ig) +.RE +.\" +.IP "--title " +Set title tag. +.\" +.IP "--artist " +Set artist tag. +.\" +.IP "--album " +Set album tag. +.\" +.IP "--genre " +Set genre tag. +.\" +.IP "--date " +Set date tag. +.\" +.IP "--composer " +Set composer tag. +.\" +.IP "--grouping " +Set grouping tag. +.\" +.IP "--comment " +Set comment tag. +.\" +.IP "--album-artist " +Set album artist tag. +.\" +.IP "--track " +Set track tag, with or without number of total tracks. +.\" +.IP "--disk " +Set disk tag, with or without number of total discs. +.\" +.IP "--tempo " +Set tempo (BPM) tag. +.\" +.IP "--tag :" +Set iTunes predefined tag with explicit fourcc key and value. +.br +See +.B +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. +.RS +fdkaac -m3 foo.wav +.RE +.\" +.PP +Encode WAV file into a M4A file. MPEG4 HE-AAC, bitrate 64kbps. +.RS +fdkaac -p5 -b64 foo.wav +.RE +.\" +.PP +Piping from +.B ffmpeg +(you need version supporting CAF output) +.RS +ffmpeg -i foo.flac -f caf - | fdkaac -b128 - -o foo.m4a +.RE +.\" +.PP +Import tag using json generated by +.B (ff|av)probe +.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 +.\" +.\" +.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. +.\" +.PP +Following channel layouts are supported by the encoder. +.RS +.IP 1ch +C +.IP 2ch +L R +.IP 3ch +C L R +.IP 4ch +C L R Cs +.IP 5ch +C L R Ls Rs +.IP 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) +.RE +.\" +.SH AUTHORS +nu774 -- 2.39.2