diff options
Diffstat (limited to 'man/flac.md')
-rw-r--r-- | man/flac.md | 760 |
1 files changed, 760 insertions, 0 deletions
diff --git a/man/flac.md b/man/flac.md new file mode 100644 index 0000000..b51ac69 --- /dev/null +++ b/man/flac.md @@ -0,0 +1,760 @@ +% flac(1) Version 1.4.3 | Free Lossless Audio Codec conversion tool + +# NAME + +flac - Free Lossless Audio Codec + +# SYNOPSIS + +**flac** \[ *OPTIONS* \] \[ *infile.wav* \| *infile.rf64* \| +*infile.aiff* \| *infile.raw* \| *infile.flac* \| *infile.oga* \| +*infile.ogg* \| **-** *...* \] + +**flac** \[ **-d** \| **\--decode** \| **-t** \| **\--test** \| **-a** \| +**\--analyze** \] \[ *OPTIONS* \] \[ *infile.flac* \| *infile.oga* \| +*infile.ogg* \| **-** *...* \] + +# DESCRIPTION + +**flac** is a command-line tool for encoding, decoding, testing and +analyzing FLAC streams. + +# GENERAL USAGE + +**flac** supports as input RIFF WAVE, Wave64, RF64, AIFF, FLAC or Ogg +FLAC format, or raw interleaved samples. The decoder currently can output +to RIFF WAVE, Wave64, RF64, or AIFF format, or raw interleaved samples. +flac only supports linear PCM samples (in other words, no A-LAW, uLAW, +etc.), and the input must be between 4 and 32 bits per sample. + +flac assumes that files ending in ".wav" or that have the RIFF WAVE +header present are WAVE files, files ending in ".w64" or have the Wave64 +header present are Wave64 files, files ending in ".rf64" or have the +RF64 header present are RF64 files, files ending in ".aif" or ".aiff" or +have the AIFF header present are AIFF files, files ending in ".flac" +or have the FLAC header present are FLAC files and files ending in ".oga" +or ".ogg" or have the Ogg FLAC header present are Ogg FLAC files. + +Other than this, flac makes no assumptions about file extensions, though +the convention is that FLAC files have the extension ".flac" +(or ".fla" on ancient "8.3" file systems like FAT-16). + +Before going into the full command-line description, a few other things +help to sort it out: +1. flac encodes by default, so you must use -d to decode +2. the options -0 .. -8 (or --fast and --best) that control the + compression level actually are just synonyms for different groups of + specific encoding options (described later) and you can get the same + effect by using the same options. When specific options are specified + they take priority over the compression level no matter the order +3. flac behaves similarly to gzip in the way it handles input and output + files +4. the order in which options are specified is generally not important + +Skip to the examples below for examples of some common tasks. + +flac will be invoked one of four ways, depending on whether you are +encoding, decoding, testing, or analyzing. Encoding is the default +invocation, but can be switch to decoding with **-d**, analysis with +**-a** or testing with **-t**. Depending on which way is chosen, +encoding, decoding, analysis or testing options can be used, see section +OPTIONS for details. General options can be used for all. + +If only one inputfile is specified, it may be "-" for stdin. When stdin +is used as input, flac will write to stdout. Otherwise flac will perform +the desired operation on each input file to similarly named output files +(meaning for encoding, the extension will be replaced with ".flac", or +appended with ".flac" if the input file has no extension, and for +decoding, the extension will be ".wav" for WAVE output and ".raw" for raw +output). The original file is not deleted unless --delete-input-file is +specified. + +If you are encoding/decoding from stdin to a file, you should use the -o +option like so: + + flac [options] -o outputfile + flac -d [options] -o outputfile + +which are better than: + + flac [options] > outputfile + flac -d [options] > outputfile + +since the former allows flac to seek backwards to write the STREAMINFO or +RIFF WAVE header contents when necessary. + +Also, you can force output data to go to stdout using -c. + +To encode or decode files that start with a dash, use -- to signal the +end of options, to keep the filenames themselves from being treated as +options: + + flac -V -- -01-filename.wav + +The encoding options affect the compression ratio and encoding speed. The +format options are used to tell flac the arrangement of samples if the +input file (or output file when decoding) is a raw file. If it is a RIFF +WAVE, Wave64, RF64, or AIFF file the format options are not needed since +they are read from the file's header. + +In test mode, flac acts just like in decode mode, except no output file +is written. Both decode and test modes detect errors in the stream, but +they also detect when the MD5 signature of the decoded audio does not +match the stored MD5 signature, even when the bitstream is valid. + +flac can also re-encode FLAC files. In other words, you can specify a +FLAC or Ogg FLAC file as an input to the encoder and it will decoder it +and re-encode it according to the options you specify. It will also +preserve all the metadata unless you override it with other options (e.g. +specifying new tags, seekpoints, cuesheet, padding, etc.). + +flac has been tuned so that the default settings yield a good speed vs. +compression tradeoff for many kinds of input. However, if you are looking +to maximize the compression rate or speed, or want to use the full power +of FLAC's metadata system, see the page titled 'About the FLAC Format' on +the FLAC website. + +# EXAMPLES + +Some common **encoding** tasks using flac: + +`flac abc.wav` +: Encode abc.wav to abc.flac using the default compression setting. abc.wav is not deleted. + +`flac --delete-input-file abc.wav` +: Like above, except abc.wav is deleted if there were no errors. + +`flac --delete-input-file -w abc.wav` +: Like above, except abc.wav is deleted if there were no errors or warnings. + +`flac --best abc.wav` +: Encode abc.wav to abc.flac using the highest compression setting. + +`flac --verify abc.wav` +: Encode abc.wav to abc.flac and internally decode abc.flac to make sure it matches abc.wav. + +`flac -o my.flac abc.wav` +: Encode abc.wav to my.flac. + +`flac -T "TITLE=Bohemian Rhapsody" -T "ARTIST=Queen" abc.wav` +: Encode abc.wav and add some tags at the same time to abc.flac. + +`flac *.wav` +: Encode all .wav files in the current directory. + +`flac abc.aiff` +: Encode abc.aiff to abc.flac. + +`flac abc.rf64` +: Encode abc.rf64 to abc.flac. + +`flac abc.w64` +: Encode abc.w64 to abc.flac. + +`flac abc.flac --force` +: This one's a little tricky: notice that flac is in encode mode by + default (you have to specify -d to decode) so this command actually + recompresses abc.flac back to abc.flac. --force is needed to make + sure you really want to overwrite abc.flac with a new version. Why + would you want to do this? It allows you to recompress an existing + FLAC file with (usually) higher compression options or a newer + version of FLAC and preserve all the metadata like tags too. + +Some common **decoding** tasks using flac: + +`flac -d abc.flac` +: Decode abc.flac to abc.wav. abc.flac is not deleted. NOTE: Without + -d it means re-encode abc.flac to abc.flac (see above). + +`flac -d --force-aiff-format abc.flac` +`flac -d -o abc.aiff abc.flac` +: Two different ways of decoding abc.flac to abc.aiff (AIFF format). + abc.flac is not deleted. + +`flac -d --force-rf64-format abc.flac` +`flac -d -o abc.rf64 abc.flac` +: Two different ways of decoding abc.flac to abc.rf64 (RF64 format). + abc.flac is not deleted. + +`flac -d --force-wave64-format abc.flac` +`flac -d -o abc.w64 abc.flac` +: Two different ways of decoding abc.flac to abc.w64 (Wave64 format). + abc.flac is not deleted. + +`flac -d -F abc.flac` +: Decode abc.flac to abc.wav and don't abort if errors are found + (useful for recovering as much as possible from corrupted files). + + +# OPTIONS + +A summary of options is included below. For a complete description, see +the HTML documentation. + +## GENERAL OPTIONS + +**-v, \--version** +: Show the flac version number + +**-h, \--help** +: Show basic usage and a list of all options + +**-H, \--explain** +: Show detailed explanation of usage and all options + +**-d, \--decode** +: Decode (the default behavior is to encode) + +**-t, \--test** +: Test a flac encoded file (same as -d except no decoded file is written) + +**-a, \--analyze** +: Analyze a FLAC encoded file (same as -d except an analysis file is + written) + +**-c, \--stdout** +: Write output to stdout + +**-s, \--silent** +: Silent mode (do not write runtime encode/decode statistics to stderr) + +**\--totally-silent** +: Do not print anything of any kind, including warnings or errors. The + exit code will be the only way to determine successful completion. + +**\--no-utf8-convert** +: Do not convert tags from local charset to UTF-8. This is useful for + scripts, and setting tags in situations where the locale is wrong. + This option must appear before any tag options! + +**-w, \--warnings-as-errors** +: Treat all warnings as errors (which cause flac to terminate with a + non-zero exit code). + +**-f, \--force** +: Force overwriting of output files. By default, flac warns that the + output file already exists and continues to the next file. + +**-o** *filename***, \--output-name=***filename* +: Force the output file name (usually flac just changes the extension). + May only be used when encoding a single file. May not be used in + conjunction with \--output-prefix. + +**\--output-prefix=***string* +: Prefix each output file name with the given string. This can be + useful for encoding or decoding files to a different directory. Make + sure if your string is a path name that it ends with a trailing \`/' + (slash). + +**\--delete-input-file** +: Automatically delete the input file after a successful encode or + decode. If there was an error (including a verify error) the input + file is left intact. + +**\--preserve-modtime** +: Output files have their timestamps/permissions set to match those of + their inputs (this is default). Use \--no-preserve-modtime to make + output files have the current time and default permissions. + +**\--keep-foreign-metadata** +: If encoding, save WAVE, RF64, or AIFF non-audio chunks in FLAC + metadata. If decoding, restore any saved non-audio chunks from FLAC + metadata when writing the decoded file. Foreign metadata cannot be + transcoded, e.g. WAVE chunks saved in a FLAC file cannot be restored + when decoding to AIFF. Input and output must be regular files (not + stdin or stdout). With this option, FLAC will pick the right output + format on decoding. + +**\--keep-foreign-metadata-if-present** +: Like \--keep-foreign-metadata, but without throwing an error if + foreign metadata cannot be found or restored, instead printing a + warning. + +**\--skip={***\#***\|***mm:ss.ss***}** +: Skip over the first number of samples of the input. This works for + both encoding and decoding, but not testing. The alternative form + mm:ss.ss can be used to specify minutes, seconds, and fractions of a + second. + +**\--until={***\#***\|\[***+***\|***-***\]***mm:ss.ss***}** +: Stop at the given sample number for each input file. This works for + both encoding and decoding, but not testing. The given sample number + is not included in the decoded output. The alternative form mm:ss.ss + can be used to specify minutes, seconds, and fractions of a second. + If a \`+' (plus) sign is at the beginning, the \--until point is + relative to the \--skip point. If a \`-' (minus) sign is at the + beginning, the \--until point is relative to end of the audio. + +**\--ogg** +: When encoding, generate Ogg FLAC output instead of native FLAC. Ogg + FLAC streams are FLAC streams wrapped in an Ogg transport layer. The + resulting file should have an '.oga' extension and will still be + decodable by flac. When decoding, force the input to be treated as + Ogg FLAC. This is useful when piping input from stdin or when the + filename does not end in '.oga' or '.ogg'. + +**\--serial-number=***\#* +: When used with \--ogg, specifies the serial number to use for the + first Ogg FLAC stream, which is then incremented for each additional + stream. When encoding and no serial number is given, flac uses a + random number for the first stream, then increments it for each + additional stream. When decoding and no number is given, flac uses + the serial number of the first page. + +## ANALYSIS OPTIONS + +**\--residual-text** +: Includes the residual signal in the analysis file. This will make the + file very big, much larger than even the decoded file. + +**\--residual-gnuplot** +: Generates a gnuplot file for every subframe; each file will contain + the residual distribution of the subframe. This will create a lot of + files. + +## DECODING OPTIONS + +**\--cue=\[***\#.#***\]\[-\[***\#.#***\]\]** +: Set the beginning and ending cuepoints to decode. The optional first + \#.# is the track and index point at which decoding will start; the + default is the beginning of the stream. The optional second \#.# is + the track and index point at which decoding will end; the default is + the end of the stream. If the cuepoint does not exist, the closest + one before it (for the start point) or after it (for the end point) + will be used. If those don't exist, the start of the stream (for the + start point) or end of the stream (for the end point) will be used. + The cuepoints are merely translated into sample numbers then used as + \--skip and \--until. A CD track can always be cued by, for example, + \--cue=9.1-10.1 for track 9, even if the CD has no 10th track. + +**-F, \--decode-through-errors** +: By default flac stops decoding with an error and removes the + partially decoded file if it encounters a bitstream error. With -F, + errors are still printed but flac will continue decoding to + completion. Note that errors may cause the decoded audio to be + missing some samples or have silent sections. + +**\--apply-replaygain-which-is-not-lossless\[=\<specification\>\]** +: Applies ReplayGain values while decoding. **WARNING: THIS IS NOT + LOSSLESS. DECODED AUDIO WILL NOT BE IDENTICAL TO THE ORIGINAL WITH + THIS OPTION.** This option is useful for example in transcoding + media servers, where the client does not support ReplayGain. For + details on the use of this option, see the section **ReplayGain + application specification**. + +## ENCODING OPTIONS + +**-V, \--verify** +: Verify a correct encoding by decoding the output in parallel and + comparing to the original + +**\--lax** +: Allow encoder to generate non-Subset files. The resulting FLAC file + may not be streamable or might have trouble being played in all + players (especially hardware devices), so you should only use this + option in combination with custom encoding options meant for + archival. + +**\--replay-gain** +: Calculate ReplayGain values and store them as FLAC tags, similar to + vorbisgain. Title gains/peaks will be computed for each input file, + and an album gain/peak will be computed for all files. All input + files must have the same resolution, sample rate, and number of + channels. Only mono and stereo files are allowed, and the sample + rate must be 8, 11.025, 12, 16, 18.9, 22.05, 24, 28, 32, 36, 37.8, + 44.1, 48, 56, 64, 72, 75.6, 88.2, 96, 112, 128, 144, 151.2, 176.4, + 192, 224, 256, 288, 302.4, 352.8, 384, 448, 512, 576, or 604.8 kHz. + Also note that this option may leave a few extra bytes in a PADDING + block as the exact size of the tags is not known until all files + are processed. Note that this option cannot be used when encoding + to standard output (stdout). + +**\--cuesheet=***filename* +: Import the given cuesheet file and store it in a CUESHEET metadata + block. This option may only be used when encoding a single file. A + seekpoint will be added for each index point in the cuesheet to the + SEEKTABLE unless \--no-cued-seekpoints is specified. + +**\--picture={***FILENAME***\|***SPECIFICATION***}** +: Import a picture and store it in a PICTURE metadata block. More than + one \--picture option can be specified. Either a filename for the + picture file or a more complete specification form can be used. The + SPECIFICATION is a string whose parts are separated by \| (pipe) + characters. Some parts may be left empty to invoke default values. + FILENAME is just shorthand for "\|\|\|\|FILENAME". For the format of + SPECIFICATION, see the section **picture specification**. + +**\--ignore-chunk-sizes** +: When encoding to flac, ignore the file size headers in WAV and AIFF + files to attempt to work around problems with over-sized or malformed + files. WAV and AIFF files both have an unsigned 32 bit numbers in + the file header which specifes the length of audio data. Since this + number is unsigned 32 bits, that limits the size of a valid file to + being just over 4 Gigabytes. Files larger than this are mal-formed, + but should be read correctly using this option. + +**-S {***\#***\|***X***\|***\#x***\|***\#s***}, \--seekpoint={***\#***\|***X***\|***\#x***\|***\#s***}** +: Include a point or points in a SEEKTABLE. Using \#, a seek point at + that sample number is added. Using X, a placeholder point is added at + the end of a the table. Using \#x, \# evenly spaced seek points will + be added, the first being at sample 0. Using \#s, a seekpoint will be + added every \# seconds (# does not have to be a whole number; it can + be, for example, 9.5, meaning a seekpoint every 9.5 seconds). You may + use many -S options; the resulting SEEKTABLE will be the unique-ified + union of all such values. With no -S options, flac defaults to + '-S 10s'. Use \--no-seektable for no SEEKTABLE. Note: '-S \#x' and + '-S \#s' will not work if the encoder can't determine the input size + before starting. Note: if you use '-S \#' and \# is \>= samples in + the input, there will be either no seek point entered (if the input + size is determinable before encoding starts) or a placeholder point + (if input size is not determinable). + +**-P** *\#***, \--padding=***\#* +: Tell the encoder to write a PADDING metadata block of the given + length (in bytes) after the STREAMINFO block. This is useful if you + plan to tag the file later with an APPLICATION block; instead of + having to rewrite the entire file later just to insert your block, + you can write directly over the PADDING block. Note that the total + length of the PADDING block will be 4 bytes longer than the length + given because of the 4 metadata block header bytes. You can force no + PADDING block at all to be written with \--no-padding. The encoder + writes a PADDING block of 8192 bytes by default (or 65536 bytes if + the input audio stream is more that 20 minutes long). + +**-T** *FIELD=VALUE***, \--tag=***FIELD=VALUE* +: Add a FLAC tag. The comment must adhere to the Vorbis comment spec; + i.e. the FIELD must contain only legal characters, terminated by an + 'equals' sign. Make sure to quote the comment if necessary. This + option may appear more than once to add several comments. NOTE: all + tags will be added to all encoded files. + +**\--tag-from-file=***FIELD=FILENAME* +: Like \--tag, except FILENAME is a file whose contents will be read + verbatim to set the tag value. The contents will be converted to + UTF-8 from the local charset. This can be used to store a cuesheet + in a tag (e.g. \--tag-from-file="CUESHEET=image.cue"). Do not try to + store binary data in tag fields! Use APPLICATION blocks for that. + +**-b** *\#***, \--blocksize=***\#* +: Specify the blocksize in samples. The default is 1152 for -l 0, + else 4096. For subset streams this must be \<= 4608 if the samplerate + \<= 48kHz, for subset streams with higher samplerates it must be \<= + 16384. + +**-m, \--mid-side** +: Try mid-side coding for each frame (stereo input only) + +**-M, \--adaptive-mid-side** +: Adaptive mid-side coding for all frames (stereo input only) + +**-0..-8, \--compression-level-0..\--compression-level-8** +: Fastest compression..highest compression (default is -5). These are + synonyms for other options: + +**-0, \--compression-level-0** +: Synonymous with -l 0 -b 1152 -r 3 \--no-mid-side + +**-1, \--compression-level-1** +: Synonymous with -l 0 -b 1152 -M -r 3 + +**-2, \--compression-level-2** +: Synonymous with -l 0 -b 1152 -m -r 3 + +**-3, \--compression-level-3** +: Synonymous with -l 6 -b 4096 -r 4 \--no-mid-side + +**-4, \--compression-level-4** +: Synonymous with -l 8 -b 4096 -M -r 4 + +**-5, \--compression-level-5** +: Synonymous with -l 8 -b 4096 -m -r 5 + +**-6, \--compression-level-6** +: Synonymous with -l 8 -b 4096 -m -r 6 -A subdivide_tukey(2) + +**-7, \--compression-level-7** +: Synonymous with -l 12 -b 4096 -m -r 6 -A subdivide_tukey(2) + +**-8, \--compression-level-8** +: Synonymous with -l 12 -b 4096 -m -r 6 -A subdivide_tukey(3) + +**\--fast** +: Fastest compression. Currently synonymous with -0. + +**\--best** +: Highest compression. Currently synonymous with -8. + +**-e, \--exhaustive-model-search** +: Do exhaustive model search (expensive!) + +**-A** *function***, \--apodization=***function* +: Window audio data with given the apodization function. See section + **Apodization functions** for details. + +**-l** *\#***, \--max-lpc-order=***\#* +: Specifies the maximum LPC order. This number must be \<= 32. For + subset streams, it must be \<=12 if the sample rate is \<=48kHz. If + 0, the encoder will not attempt generic linear prediction, and use + only fixed predictors. Using fixed predictors is faster but usually + results in files being 5-10% larger. + +**-p, \--qlp-coeff-precision-search** +: Do exhaustive search of LP coefficient quantization (expensive!). + Overrides -q; does nothing if using -l 0 + +**-q** *\#***, \--qlp-coeff-precision=***\#* +: Precision of the quantized linear-predictor coefficients, 0 =\> let + encoder decide (min is 5, default is 0) + +**-r \[***\#***,\]***\#***, \--rice-partition-order=\[***\#***,\]***\#* +: Set the \[min,\]max residual partition order (0..15). min defaults to + 0 if unspecified. Default is -r 5. + +## FORMAT OPTIONS + +**\--endian={***big***\|***little***}** +: Set the byte order for samples + +**\--channels=***\#* +: Set number of channels. + +**\--bps=***\#* +: Set bits per sample. + +**\--sample-rate=***\#* +: Set sample rate (in Hz). + +**\--sign={***signed***\|***unsigned***}** +: Set the sign of samples. + +**\--input-size=***\#* +: Specify the size of the raw input in bytes. If you are encoding raw + samples from stdin, you must set this option in order to be able to + use \--skip, \--until, \--cuesheet, or other options that need to + know the size of the input beforehand. If the size given is greater + than what is found in the input stream, the encoder will complain + about an unexpected end-of-file. If the size given is less, samples + will be truncated. + +**\--force-raw-format** +: Force input (when encoding) or output (when decoding) to be treated + as raw samples (even if filename ends in *.wav*). + +**\--force-aiff-format** +**\--force-rf64-format** +**\--force-wave64-format** +: Force the decoder to output AIFF/RF64/WAVE64 format respectively. + This option is not needed if the output filename (as set by -o) + ends with *.aif* or *.aiff*, *.rf64* and *.w64* respectively. Also, + this option has no effect when encoding since input is + auto-detected. When none of these options nor + --keep-foreign-metadata are given and no output filename is set, + the output format is WAV by default. + +**\--force-legacy-wave-format** +**\--force-extensible-wave-format** +: Instruct the decoder to output a WAVE file with WAVE_FORMAT_PCM and + WAVE_FORMAT_EXTENSIBLE respectively. If none of these options nor + --keep-foreign-metadata are given, FLAC outputs WAVE_FORMAT_PCM + for mono or stereo with a bit depth of 8 or 16 bits, and + WAVE_FORMAT_EXTENSIBLE for all other audio formats. + +**\--force-aiff-c-none-format** +**\--force-aiff-c-sowt-format** +: Instruct the decoder to output an AIFF-C file with format NONE and + sowt respectively. + +## NEGATIVE OPTIONS + +**\--no-adaptive-mid-side** +**\--no-cued-seekpoints** +**\--no-decode-through-errors** +**\--no-delete-input-file** +**\--no-preserve-modtime** +**\--no-keep-foreign-metadata** +**\--no-exhaustive-model-search** +**\--no-force** +**\--no-lax** +**\--no-mid-side** +**\--no-ogg** +**\--no-padding** +**\--no-qlp-coeff-prec-search** +**\--no-replay-gain** +**\--no-residual-gnuplot** +**\--no-residual-text** +**\--no-seektable** +**\--no-silent** +**\--no-verify** +**\--no-warnings-as-errors** + +These flags can be used to invert the sense of the corresponding normal +option. + +## ReplayGain application specification +The option \--apply-replaygain-which-is-not-lossless\[=\<specification\>\]** +applies ReplayGain values while decoding. **WARNING: THIS IS NOT +LOSSLESS. DECODED AUDIO WILL NOT BE IDENTICAL TO THE ORIGINAL WITH THIS +OPTION.** This option is useful for example in transcoding media servers, +where the client does not support ReplayGain. + +The equals sign and \<specification\> is optional. If omitted, the +default specification is 0aLn1. + +The \<specification\> is a shorthand notation for describing how to apply +ReplayGain. All components are optional but order is important. '\[\]' +means 'optional'. '\|' means 'or'. '{}' means required. The format is: + +\[\<preamp\>\]\[a\|t\]\[l\|L\]\[n{0\|1\|2\|3}\] + +In which the following parameters are used: + +- **preamp**: A floating point number in dB. This is added to the + existing gain value. + +- **a\|t**: Specify 'a' to use the album gain, or 't' to use the track + gain. If tags for the preferred kind (album/track) do not exist but + tags for the other (track/album) do, those will be used instead. + +- **l\|L**: Specify 'l' to peak-limit the output, so that the + ReplayGain peak value is full-scale. Specify 'L' to use a 6dB hard + limiter that kicks in when the signal approaches full-scale. + +- **n{0\|1\|2\|3}**: Specify the amount of noise shaping. ReplayGain + synthesis happens in floating point; the result is dithered before + converting back to integer. This quantization adds noise. Noise + shaping tries to move the noise where you won't hear it as much. + 0 means no noise shaping, 1 means 'low', 2 means 'medium', 3 means + 'high'. + +For example, the default of 0aLn1 means 0dB preamp, use album gain, 6dB +hard limit, low noise shaping. \--apply-replaygain-which-is-not-lossless=3 +means 3dB preamp, use album gain, no limiting, no noise shaping. + +flac uses the ReplayGain tags for the calculation. If a stream does +not have the required tags or they can't be parsed, decoding will +continue with a warning, and no ReplayGain is applied to that stream. + +## Picture specification +This described the specification used for the **\--picture** option. +\[TYPE\]\|\[MIME-TYPE\]\|\[DESCRIPTION\]\|\[WIDTHxHEIGHTxDEPTH\[/COLORS\]\]\|FILE + +TYPE is optional; it is a number from one of: + +0. Other +1. 32x32 pixels 'file icon' (PNG only) +2. Other file icon +3. Cover (front) +4. Cover (back) +5. Leaflet page +6. Media (e.g. label side of CD) +7. Lead artist/lead performer/soloist +8. Artist/performer +9. Conductor +10. Band/Orchestra +11. Composer +12. Lyricist/text writer +13. Recording Location +14. During recording +15. During performance +16. Movie/video screen capture +17. A bright coloured fish +18. Illustration +19. Band/artist logotype +20. Publisher/Studio logotype + +The default is 3 (front cover). There may only be one picture each of +type 1 and 2 in a file. + +MIME-TYPE is optional; if left blank, it will be detected from the file. +For best compatibility with players, use pictures with MIME type +image/jpeg or image/png. The MIME type can also be \--\> to mean that +FILE is actually a URL to an image, though this use is discouraged. + +DESCRIPTION is optional; the default is an empty string. + +The next part specifies the resolution and color information. If the +MIME-TYPE is image/jpeg, image/png, or image/gif, you can usually leave +this empty and they can be detected from the file. Otherwise, you must +specify the width in pixels, height in pixels, and color depth in +bits-per-pixel. If the image has indexed colors you should also specify +the number of colors used. When manually specified, it is not checked +against the file for accuracy. + +FILE is the path to the picture file to be imported, or the URL if MIME +type is \--\> + +For example, "\|image/jpeg\|\|\|../cover.jpg" will embed the JPEG file +at ../cover.jpg, defaulting to type 3 (front cover) and an empty +description. The resolution and color info will be retrieved from the +file itself. + +The specification +"4\|\--\>\|CD\|320x300x24/173\|http://blah.blah/backcover.tiff" will +embed the given URL, with type 4 (back cover), description "CD", and a +manually specified resolution of 320x300, 24 bits-per-pixel, and 173 +colors. The file at the URL will not be fetched; the URL itself is +stored in the PICTURE metadata block. + +## Apodization functions +To improve LPC analysis, audio data is windowed . The window can be +selected with one or more **-A** options. Possible functions are: +bartlett, bartlett_hann, blackman, blackman_harris_4term_92db, +connes, flattop, gauss(STDDEV), hamming, hann, kaiser_bessel, nuttall, +rectangle, triangle, tukey(P), partial_tukey(n\[/ov\[/P\]\]), +punchout_tukey(n\[/ov\[/P\]\]), subdivide_tukey(n\[/P\]) welch. + +- For gauss(STDDEV), STDDEV is the standard deviation (0\<STDDEV\<=0.5). + +- For tukey(P), P specifies the fraction of the window that is tapered +(0\<=P\<=1; P=0 corresponds to "rectangle" and P=1 corresponds to +"hann"). + +- For partial_tukey(n) and punchout_tukey(n), n apodization functions are +added that span different parts of each block. Values of 2 to 6 seem to +yield sane results. If necessary, an overlap can be specified, as can be +the taper parameter, for example partial_tukey(2/0.2) or +partial_tukey(2/0.2/0.5). ov should be smaller than 1 and can be +negative. The use of this is that different parts of a block are ignored +as the might contain transients which are hard to predict anyway. The +encoder will try each different added apodization (each covering a +different part of the block) to see which resulting predictor results in +the smallest representation. + +- subdivide_tukey(n) is a more efficient reimplementation of partial_tukey +and punchout_tukey taken together, recycling as much data as possible. It +combines all possible non-redundant partial_tukey(n) and punchout_tukey(n) +up to the n specified. Specifying subdivide_tukey(3) is equivalent to +specifying tukey, partial_tukey(2), partial_tukey(3) and punchout_tukey(3), +specifying subdivide_tukey(5) equivalently adds partial_tukey(4), +punchout_tukey(4), partial_tukey(5) and punchout_tukey(5). To be able to +reuse data as much as possible, the tukey taper is taken equal for all +windows, and the P specified is applied for the smallest used window. +In other words, subdivide_tukey(2/0.5) results in a taper equal to that +of tukey(0.25) and subdivide_tukey(5) in a taper equal to that of +tukey(0.1). The default P for subdivide_tukey when none is specified is +0.5. + +Note that P, STDDEV and ov are locale specific, so a comma as +decimal separator might be required instead of a dot. Use scientific +notation for a locale-independent specification, for example +tukey(5e-1) instead of tukey(0.5) or tukey(0,5). + +More than one -A option (up to 32) may be used. Any function that is +specified erroneously is silently dropped. The encoder chooses suitable +defaults in the absence of any -A options; any -A option specified +replaces the default(s). + +When more than one function is specified, then for every subframe the +encoder will try each of them separately and choose the window that +results in the smallest compressed subframe. Multiple functions can +greatly increase the encoding time. + +# SEE ALSO + +**metaflac(1)** + +# AUTHOR + +This manual page was initially written by Matt Zimmerman +\<mdz@debian.org\> for the Debian GNU/Linux system (but may be used by +others). It has been kept up-to-date by the Xiph.org Foundation. |