953 lines
47 KiB
HTML
953 lines
47 KiB
HTML
<!DOCTYPE html>
|
||
<html xmlns="http://www.w3.org/1999/xhtml" lang xml:lang>
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="generator" content="pandoc" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
||
<title>flac(1) Version 1.5.0 | Free Lossless Audio Codec conversion tool</title>
|
||
<style>
|
||
code{white-space: pre-wrap;}
|
||
span.smallcaps{font-variant: small-caps;}
|
||
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
||
div.column{flex: auto; overflow-x: auto;}
|
||
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
||
|
||
ul.task-list[class]{list-style: none;}
|
||
ul.task-list li input[type="checkbox"] {
|
||
font-size: inherit;
|
||
width: 0.8em;
|
||
margin: 0 0.8em 0.2em -1.6em;
|
||
vertical-align: middle;
|
||
}
|
||
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
|
||
</style>
|
||
<style type="text/css">html{background-color: #B3D9B3;}body{position: relative;display: block;background-color: #F2F2DE;color: black;margin: 0 auto;padding: 0 0 10px 0;max-width: 1200px;font-family: lucida, verdana, helvetica, arial, sans-serif;font-weight: normal;font-size: 100%;}div.logo{position: relative;background-color: black;padding: 1px;text-align: center;}div.navbar {font-weight: bold;}@media (min-width: 800px){div.navbar{display: flex;gap: 5px;flex-direction: row;padding: 8px;text-align: center;}div.navbar:before, div.navbar:after{content: "";flex: 1 1;border-bottom: 2px solid;margin: 10px;}div.navbar div:first-child a::after, div.navbar div:last-child a:not(:last-child)::after {content: " - ";}#navbarshow{display: none;}}@media (max-width: 799px){div.navbar div{display: flex;gap: 5px;flex-direction: row;padding: 8px;text-align: center;}div.navbar div:before, div.navbar div:after{content: "";flex: 1 1;flex-grow: 3;border-bottom: 2px solid;margin: 10px;}div.navbar div a:not(:last-child)::after {content: " - ";}#navbarshow{display: none;}}div.navbar a{color: #000;text-decoration: none;}div.content{padding: 0 25px;}div.box_footer{border-width: 0px 0px 1px 0px;border-style: solid;border-color: black;background-color: #EEEED4;padding: 3px;}div.box_body{background-color: #EEEED4;padding: 0px 3px 0px 3px;font-family: lucida, verdana, helvetica, arial, sans-serif;font-weight: normal;font-size: 100%;}#newsbox h3{margin: 5px 0 0 0; font-size: 0.9em; }#newsbox p{margin: 0;}div.smallbox{text-align: left;margin: 0 0 0 8px;background-color: #EEEED4;}div.smallbox_title{text-align: center;border-width: 1px 0px 0px 0px;border-style: solid;border-color: black;background-color: #D3D4C5;padding: 3px;font-family: lucida, verdana, helvetica, arial, sans-serif;font-weight: bold;font-size: 100%;}div.smallbox_header{border-width: 1px 0px 0px 0px;border-style: solid;border-color: black;background-color: #EEEED4;padding: 3px;}div.smallbox_footer{border-width: 0px 0px 1px 0px;border-style: solid;border-color: black;background-color: #EEEED4;padding: 3px;}div.smallbox_body{background-color: #EEEED4;padding: 0px 3px 0px 3px;font-family: lucida, verdana, helvetica, arial, sans-serif;font-weight: normal;font-size: 80%;}div.copyright{text-align: left;padding-bottom: 10px;}div.copyright hr {margin: 20px 0;}span.commandname{font-family: monospace;font-weight: bold;}span.command{font-family: monospace;font-weight: bold;}span.argument{font-family: monospace;}span.code{font-family: monospace;}a:link, a:visited, a:active, a:hover{color:#336699;background-color:transparent;}div.imageflex{display: flex;flex-wrap: wrap;justify-content: center;padding: 0 20px}div.imageflex div{width: 200px;height: 125px;padding: 10px;text-align: center;}div.imageflex div span {display: block;text-align: center;}</style>
|
||
</head>
|
||
<body>
|
||
<div class="logo">
|
||
<img src="data:image/png;base64,
|
||
iVBORw0KGgoAAAANSUhEUgAAAKEAAABQBAMAAACDsQg5AAAAMFBMVEUAAABTAgC1AAMkMh/7AABQ
|
||
UQBbYFklgx8nnieiogCZm5i9wLzIysfY29f5+gD7/vuN5xJAAAAEtklEQVRYw92YP4vbPBjA9SKq
|
||
wU5I+xX6CQyBDHcX0qEf4F26CwwenJjc1vWFd+n4rt0MhQzOhQsUPLgXEihkSHNcIJAhdyGF7qVQ
|
||
uOGS4Nd/ZFmyZV+Sc4dWoER6LP2sP8/z6JEBKD69ePG8WOBfr1+/ynoGNVwkEVlr150VSEQez3V/
|
||
BuWaPlg8mYhufKD7AIB85bPvn0y8DIDuBoBKUHgyUQ6B7q4wIhmi6yqHE4X6KEVAFx9BFKUGJY6O
|
||
IL58+Zz799OQEmfHryO7nnBNiffFEBEFegpZCDHSHdeyOsUQQ4i7YCrFEJXiiI3IAgsjtiMvISLW
|
||
tI6aouj+imcmWG2zEI6od8mWsa4YNkOho2QQeyviJVarO4Unxmq1jXtDag+bQPjs/fv/ohy2iNXb
|
||
3SWIsb2T3pxXIUv/7Pv3r17+5uewhZtNlJlnkVc33IQwRUQ5xBLbG6eae8kUEKUcYoXtPE/Ombzm
|
||
IGKD7bwRDPFBNOtSDrHNdVdSEs+dCoiVHCI/xb4nueEkfvu09rRziGuu/4zf/NjMsg4tIXHqaPqU
|
||
euPkpPtC4k02Ed6GFn1CibSxpfXIpKN19HM462pVI55C09SEXSucK7mnO73xdfNkHTZK20zcIdOb
|
||
SUQmc8peNo8nIiJr8AYJjiE2p1M7JrbZIR5FRJfhqkXEoUhnDiISzdqpRLZmDDxJ/LoPkerzJpQh
|
||
oRZCz1ai/BiRNzlK3CNYzyAmTI4SwdHEdpIoCYnMOgY5h5gAuvNc4jd2v8VE0n/3ZVAUsUxPEqJE
|
||
c/HO7E+MpYgn9o8lXkZDjIpz6OZo+B7EYbxoZUJaP2aF+cSg+5aJBOZRvI4zbSayGzGRCQFlcs7w
|
||
3gwqh2k4ZFSlRIjkJN6Fg2yEHtc7BRQuP0LEcYMZjRaCsEoipwJ89+4fNj8y6+DGTW4ns+gt/plU
|
||
1ddkrPsT1/R4PKPwy3RIcQAxuiB3unEEUBdEAPsTk67HJyYCqSAU2p9YFhBF096fKImIgsAnQTzP
|
||
8Y9DATEpxAfoI91iniinouYDToX4kryLifyGBc3evPnbzyDKOWdhK+rYYYiImfcW5+zM7m4cE6NK
|
||
L+y4RKynRTccUEzcdrQqvchuLVqBgbI8KMi9tTRV4aTei3CmXeckvet0RN/YvBTdPw8k7pF+E+I5
|
||
m8GvSRotqalC/DEAcbVcIBrTop0q0NSU2ZoRz/rt23M2B1cBW8U1FfhfcW2kAb+o2FBTUCirqUhB
|
||
QGuioBYKNcN/rpF1/De5M9L46sOnq9pk4hFbXdO5kK25Xe6OnO6p8xmAZU/GDcn5UkF+i089r6Hs
|
||
rGTns3FhZhBR30EjuYUbHtGGPxZINhW7CxZjWDJVAHH9FDcquFkp4xaAPyTDrBtg0AL2AmUTbWl7
|
||
bdxdK8Aeg/vWEg1N+3q6aD7AnmfMg4FHrAOPqNQBGoEKLjWBYUyXcwCyiWiEzrAUjPGneaZ7/12g
|
||
4pIOHCD1y6e4XVHCMaJ4jOoC9bOIpg0mF7WJE67jste0xnbdGjkXTWcM0LKnT4aSdVuWHMdfR23i
|
||
lJxVyfpodLNmDbEKTlSgezuJUQfUOlDHYSGQ6RrWNe8XBTUUCK0atBTUydKePz79Dy84W9TLWTUv
|
||
AAAAAElFTkSuQmCC" alt="FLAC Logo" id="logo" />
|
||
</div>
|
||
|
||
<div class="content">
|
||
|
||
|
||
<header id="title-block-header">
|
||
<h1 class="title">flac(1) Version 1.5.0 | Free Lossless Audio Codec
|
||
conversion tool</h1>
|
||
</header>
|
||
<h1 id="name">NAME</h1>
|
||
<p>flac - Free Lossless Audio Codec</p>
|
||
<h1 id="synopsis">SYNOPSIS</h1>
|
||
<p><strong>flac</strong> [ <em>OPTIONS</em> ] [ <em>infile.wav</em> |
|
||
<em>infile.rf64</em> | <em>infile.aiff</em> | <em>infile.raw</em> |
|
||
<em>infile.flac</em> | <em>infile.oga</em> | <em>infile.ogg</em> |
|
||
<strong>-</strong> <em>…</em> ]</p>
|
||
<p><strong>flac</strong> [ <strong>-d</strong> |
|
||
<strong>--decode</strong> | <strong>-t</strong> |
|
||
<strong>--test</strong> | <strong>-a</strong> |
|
||
<strong>--analyze</strong> ] [ <em>OPTIONS</em> ] [ <em>infile.flac</em>
|
||
| <em>infile.oga</em> | <em>infile.ogg</em> | <strong>-</strong>
|
||
<em>…</em> ]</p>
|
||
<h1 id="description">DESCRIPTION</h1>
|
||
<p><strong>flac</strong> is a command-line tool for encoding, decoding,
|
||
testing and analyzing FLAC streams.</p>
|
||
<h1 id="general-usage">GENERAL USAGE</h1>
|
||
<p><strong>flac</strong> 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.</p>
|
||
<p>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.</p>
|
||
<p>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).</p>
|
||
<p>Before going into the full command-line description, a few other
|
||
things help to sort it out:</p>
|
||
<ol type="1">
|
||
<li>flac encodes by default, so you must use -d to decode</li>
|
||
<li>Encoding 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).<br />
|
||
</li>
|
||
<li>The order in which options are specified is generally not important
|
||
except when they contradict each other, then the latter takes precedence
|
||
except that compression presets are overridden by any option given
|
||
before or after. For example, -0M, -M0, -M2 and -2M are all the same as
|
||
-1, and -l 12 -6 the same as -7.</li>
|
||
<li>flac behaves similarly to gzip in the way it handles input and
|
||
output files</li>
|
||
</ol>
|
||
<p>Skip to the EXAMPLES section below for examples of some typical
|
||
tasks.</p>
|
||
<p>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 <strong>-d</strong>,
|
||
analysis with <strong>-a</strong> or testing with <strong>-t</strong>.
|
||
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.</p>
|
||
<p>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.</p>
|
||
<p>If you are encoding/decoding from stdin to a file, you should use the
|
||
-o option like so:</p>
|
||
<pre><code>flac [options] -o outputfile
|
||
flac -d [options] -o outputfile</code></pre>
|
||
<p>which are better than:</p>
|
||
<pre><code>flac [options] > outputfile
|
||
flac -d [options] > outputfile</code></pre>
|
||
<p>since the former allows flac to seek backwards to write the
|
||
STREAMINFO or RIFF WAVE header contents when necessary.</p>
|
||
<p>Also, you can force output data to go to stdout using -c.</p>
|
||
<p>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:</p>
|
||
<pre><code>flac -V -- -01-filename.wav</code></pre>
|
||
<p>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.</p>
|
||
<p>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.</p>
|
||
<p>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.).</p>
|
||
<p>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.</p>
|
||
<h1 id="examples">EXAMPLES</h1>
|
||
<p>Some typical encoding and decoding tasks using flac:</p>
|
||
<h2 id="encoding-examples">Encoding examples</h2>
|
||
<dl>
|
||
<dt><code>flac abc.wav</code></dt>
|
||
<dd>
|
||
Encode abc.wav to abc.flac using the default compression setting.
|
||
abc.wav is not deleted.
|
||
</dd>
|
||
<dt><code>flac --delete-input-file abc.wav</code></dt>
|
||
<dd>
|
||
Like above, except abc.wav is deleted if there were no errors.
|
||
</dd>
|
||
<dt><code>flac --delete-input-file -w abc.wav</code></dt>
|
||
<dd>
|
||
Like above, except abc.wav is deleted if there were no errors and no
|
||
warnings.
|
||
</dd>
|
||
<dt><code>flac --best abc.wav</code> or
|
||
<code>flac -8 abc.wav</code></dt>
|
||
<dd>
|
||
Encode abc.wav to abc.flac using the highest compression preset.
|
||
</dd>
|
||
<dt><code>flac --verify abc.wav</code> or
|
||
<code>flac -V abc.wav</code></dt>
|
||
<dd>
|
||
Encode abc.wav to abc.flac and internally decode abc.flac to make sure
|
||
it matches abc.wav.
|
||
</dd>
|
||
<dt><code>flac -o my.flac abc.wav</code></dt>
|
||
<dd>
|
||
Encode abc.wav to my.flac.
|
||
</dd>
|
||
<dt><code>flac abc.aiff foo.rf64 bar.w64</code></dt>
|
||
<dd>
|
||
Encode abc.aiff to abc.flac, foo.rf64 to foo.flac and bar.w64 to
|
||
bar.flac
|
||
</dd>
|
||
<dt><code>flac *.wav *.aif?</code></dt>
|
||
<dd>
|
||
Wildcards are supported. This command will encode all .wav files and all
|
||
.aif/.aiff/.aifc files (as well as other supported files ending in
|
||
.aif+one character) in the current directory.
|
||
</dd>
|
||
<dt><code>flac abc.flac --force</code> or
|
||
<code>flac abc.flac -f</code></dt>
|
||
<dd>
|
||
Recompresses, keeping metadata like tags. The syntax is a little tricky:
|
||
this is an <em>encoding</em> command (which is the default: you need to
|
||
specify -d for decoded output), and will thus want to output the file
|
||
abc.flac - which already exists. flac will require the --force or
|
||
shortform -f option to overwrite an existing file. Recompression will
|
||
first write a temporary file, which afterwards replaces the old abc.flac
|
||
(provided flac has write access to that file). The above example uses
|
||
default settings. More often, recompression is combined with a different
|
||
- usually higher - compression option. Note: If the FLAC file does not
|
||
end with .flac - say, it is abc.fla - the -f is not needed: A new
|
||
abc.flac will be created and the old kept, just like for an uncompressed
|
||
input file.
|
||
</dd>
|
||
<dt><code>flac --tag-from-file="ALBUM=albumtitle.txt" -T "ARTIST=Queen" *.wav</code></dt>
|
||
<dd>
|
||
Encode every .wav file in the directory and add some tags. Every file
|
||
will get the same set of tags. Warning: Will wipe all existing tags,
|
||
when the input file is (Ogg) FLAC - not just those tags listed in the
|
||
option. Use the metaflac utility to tag FLAC files.
|
||
</dd>
|
||
<dt><code>flac --keep-foreign-metadata-if-present abc.wav</code></dt>
|
||
<dd>
|
||
FLAC files can store non-audio chunks of input WAVE/AIFF/RF64/W64 files.
|
||
The related option --keep-foreign-metadata works the same way, but will
|
||
instead exit with an error if the input has no such non-audio chunks.
|
||
The encoder only stores the chunks as they are, it cannot import the
|
||
content into its own tags (vorbis comments). To transfer such tags from
|
||
a source file, use tagging software which supports them.
|
||
</dd>
|
||
<dt><code>flac -Vj2 -m3fo Track07.flac -- -7.wav</code></dt>
|
||
<dd>
|
||
flac employs the commonplace convention that options in a short version
|
||
- invoked with single dash - can be shortened together until one that
|
||
takes an argument. Here -j and -o do, and after the “2” a whitespace is
|
||
needed to start new options with single/double dash. The -m option does
|
||
not, and the following “3” is the -3 compression setting. The options
|
||
could equally well have been written out as -V -j 2 -m -3 -f -o
|
||
Track04.flac , or as -fo Track04.flac -3mVj2. flac also employs the
|
||
convention that <code>--</code> (with whitespace!) signifies end of
|
||
options, treating everything to follow as filename. That is needed when
|
||
an input filenames could otherwise be read as an option, and “-7” is one
|
||
such. In total, this line takes the input file -7.wav as input; -o will
|
||
give output filename as Track07.flac, and the -f will overwrite if the
|
||
file Track04.flac is already present. The encoder will select encoding
|
||
preset -3 modified with the -m switch, and use two CPU threads.
|
||
Afterwards, the -V will make it decode the flac file and compare the
|
||
audio to the input, to ensure they are indeed equal.
|
||
</dd>
|
||
</dl>
|
||
<h2 id="decoding-examples">Decoding examples</h2>
|
||
<dl>
|
||
<dt><code>flac --decode abc.flac</code> or
|
||
<code>flac -d abc.flac</code></dt>
|
||
<dd>
|
||
Decode abc.flac to abc.wav. abc.flac is not deleted. If abc.wav is
|
||
already present, the process will exit with an error instead of
|
||
overwriting; use –force / -f to force overwrite. NOTE: A mere flac
|
||
abc.flac <em>without –decode or its shortform -d</em>, would mean to
|
||
re-encode abc.flac to abc.flac (see above), and that command would err
|
||
out because abc.flac already exists.
|
||
</dd>
|
||
<dt><code>flac -d --force-aiff-format abc.flac</code> or
|
||
<code>flac -d -o abc.aiff abc.flac</code></dt>
|
||
<dd>
|
||
Two different ways of decoding abc.flac to abc.aiff (AIFF format).
|
||
abc.flac is not deleted. -d -o could be shortened to -do. The decoder
|
||
can force other output formats, or different versions of the WAVE/AIFF
|
||
formats, see the options below.
|
||
</dd>
|
||
<dt><code>flac -d --keep-foreign-metadata-if-present abc.flac</code></dt>
|
||
<dd>
|
||
If the FLAC file has non-audio chunks stored from the original input
|
||
file, this option will restore both audio and non-audio. The chunks will
|
||
reveal the original file type, and the decoder will select output format
|
||
and output file extension accordingly - note that this is not compatible
|
||
with forcing a particular output format except if it coincides with the
|
||
original, as the decoder cannot transcode non-audio between formats. If
|
||
there are no such chunks stored, it will decode to abc.wav. The related
|
||
option --keep-foreign-metadata will instead exit with an error if no
|
||
such non-audio chunks are found.
|
||
</dd>
|
||
<dt><code>flac -d -F abc.flac</code></dt>
|
||
<dd>
|
||
Decode abc.flac to abc.wav and don’t abort if errors are found. This is
|
||
potentially useful for recovering as much as possible from a corrupted
|
||
file. Note: Be careful about trying to “repair” files this way. Often it
|
||
will only conceal an error, and not play any subjectively “better” than
|
||
the corrupted file. It is a good idea to at least keep it, and possibly
|
||
try several decoders, including the one that generated the file, and
|
||
hear if one has less detrimental audible errors than another. Make sure
|
||
output volume is limited, as corrupted audio can generate loud noises.
|
||
</dd>
|
||
</dl>
|
||
<h1 id="options">OPTIONS</h1>
|
||
<p>A summary of options is included below. Several of the options can be
|
||
negated, see the <strong>Negative options</strong> section below.</p>
|
||
<h2 id="general-options">GENERAL OPTIONS</h2>
|
||
<dl>
|
||
<dt><strong>-v</strong>, <strong>--version</strong></dt>
|
||
<dd>
|
||
Show the flac version number, and quit.
|
||
</dd>
|
||
<dt><strong>-h</strong>, <strong>--help</strong></dt>
|
||
<dd>
|
||
Show basic usage and a list of all options, and quit.
|
||
</dd>
|
||
<dt><strong>-d</strong>, <strong>--decode</strong></dt>
|
||
<dd>
|
||
Decode (the default behavior is to encode)
|
||
</dd>
|
||
<dt><strong>-t</strong>, <strong>--test</strong></dt>
|
||
<dd>
|
||
Test a flac encoded file. This works the same as -d except no decoded
|
||
file is written, and with some additional checks like parsing of all
|
||
metadata blocks.
|
||
</dd>
|
||
<dt><strong>-a</strong>, <strong>--analyze</strong></dt>
|
||
<dd>
|
||
Analyze a FLAC encoded file. This works the same as -d except the output
|
||
is an analysis file, not a decoded file.
|
||
</dd>
|
||
<dt><strong>-c</strong>, <strong>--stdout</strong></dt>
|
||
<dd>
|
||
Write output to stdout
|
||
</dd>
|
||
<dt><strong>-f</strong>, <strong>--force</strong></dt>
|
||
<dd>
|
||
Force overwriting of output files. By default, flac warns that the
|
||
output file already exists and continues to the next file.
|
||
</dd>
|
||
<dt><strong>--delete-input-file</strong></dt>
|
||
<dd>
|
||
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.
|
||
</dd>
|
||
<dt><strong>-o</strong> <em>FILENAME</em>,
|
||
<strong>--output-name</strong>=<em>FILENAME</em></dt>
|
||
<dd>
|
||
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.
|
||
</dd>
|
||
<dt><strong>--output-prefix</strong>=<em>STRING</em></dt>
|
||
<dd>
|
||
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).
|
||
</dd>
|
||
<dt><strong>--preserve-modtime</strong></dt>
|
||
<dd>
|
||
(Enabled by default.) Output files have their timestamps/permissions set
|
||
to match those of their inputs. Use --no-preserve-modtime to make output
|
||
files have the current time and default permissions.
|
||
</dd>
|
||
<dt><strong>--keep-foreign-metadata</strong></dt>
|
||
<dd>
|
||
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. It
|
||
will exit with error if no such chunks are found.
|
||
</dd>
|
||
<dt><strong>--keep-foreign-metadata-if-present</strong></dt>
|
||
<dd>
|
||
Like --keep-foreign-metadata, but without throwing an error if foreign
|
||
metadata cannot be found or restored. Instead, prints a warning.
|
||
</dd>
|
||
<dt><strong>--skip</strong>={#|<em>MM:SS</em>}</dt>
|
||
<dd>
|
||
Skip the first number of samples of the input. To skip over a given
|
||
initial time, specify instead minutes and seconds: there must then be at
|
||
least one digit on each side of the colon sign. Fractions of a second
|
||
can be specified, with locale-dependent decimal point, e.g.
|
||
--skip=123:9,867 if your decimal point is a comma. A --skip option is
|
||
applied to each input file if more are given. This option cannot be used
|
||
with -t. When used with -a, the analysis file will enumerate frames from
|
||
starting point.
|
||
</dd>
|
||
<dt><strong>--until</strong>={#|[+|]<em>MM:SS</em>}</dt>
|
||
<dd>
|
||
Stop at the given sample number (which is not included). A negative
|
||
number is taken relative to the end of the audio, a `+’ (plus) sign
|
||
means that the --until point is taken relative to the --skip point. For
|
||
other considerations, see --skip.
|
||
</dd>
|
||
<dt><strong>--no-utf8-convert</strong></dt>
|
||
<dd>
|
||
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!
|
||
</dd>
|
||
<dt><strong>-s</strong>, <strong>--silent</strong></dt>
|
||
<dd>
|
||
Silent mode (do not write runtime encode/decode statistics to stderr)
|
||
</dd>
|
||
<dt><strong>--totally-silent</strong></dt>
|
||
<dd>
|
||
Do not print anything of any kind, including warnings or errors. The
|
||
exit code will be the only way to determine successful completion.
|
||
</dd>
|
||
<dt><strong>-w</strong>, <strong>--warnings-as-errors</strong></dt>
|
||
<dd>
|
||
Treat all warnings as errors (which cause flac to terminate with a
|
||
non-zero exit code).
|
||
</dd>
|
||
</dl>
|
||
<h2 id="decoding-options">DECODING OPTIONS</h2>
|
||
<dl>
|
||
<dt><strong>-F</strong>, <strong>--decode-through-errors</strong></dt>
|
||
<dd>
|
||
By default flac stops decoding with an error message 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.
|
||
</dd>
|
||
<dt><strong>--cue</strong>=[#.#][-[#.#]]</dt>
|
||
<dd>
|
||
Set the beginning and ending cuepoints to decode. Decimal points are
|
||
locale-dependent (dot or comma). 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.
|
||
</dd>
|
||
<dt><strong>–decode-chained-stream</strong></dt>
|
||
<dd>
|
||
Decode all links in a chained Ogg stream, not just the first one.
|
||
</dd>
|
||
<dt><strong>--apply-replaygain-which-is-not-lossless</strong>[=<em>SPECIFICATION</em>]</dt>
|
||
<dd>
|
||
Applies ReplayGain values while decoding. <strong>WARNING: THIS IS NOT
|
||
LOSSLESS. DECODED AUDIO WILL NOT BE IDENTICAL TO THE ORIGINAL WITH THIS
|
||
OPTION.</strong> 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 <strong>ReplayGain application
|
||
specification</strong>.
|
||
</dd>
|
||
</dl>
|
||
<h2 id="encoding-options">ENCODING OPTIONS</h2>
|
||
<p>Encoding will default to -5, -A “tukey(5e-1)” and one CPU thread.</p>
|
||
<dl>
|
||
<dt><strong>-V</strong>, <strong>--verify</strong></dt>
|
||
<dd>
|
||
Verify a correct encoding by decoding the output in parallel and
|
||
comparing to the original.
|
||
</dd>
|
||
<dt><strong>-0</strong>, <strong>--compression-level-0</strong>,
|
||
<strong>--fast</strong></dt>
|
||
<dd>
|
||
Fastest compression preset. Currently synonymous with
|
||
<code>-l 0 -b 1152 -r 3 --no-mid-side</code>
|
||
</dd>
|
||
<dt><strong>-1</strong>, <strong>--compression-level-1</strong></dt>
|
||
<dd>
|
||
Currently synonymous with <code>-l 0 -b 1152 -M -r 3</code>
|
||
</dd>
|
||
<dt><strong>-2</strong>, <strong>--compression-level-2</strong></dt>
|
||
<dd>
|
||
Currently synonymous with <code>-l 0 -b 1152 -m -r 3</code>
|
||
</dd>
|
||
<dt><strong>-3</strong>, <strong>--compression-level-3</strong></dt>
|
||
<dd>
|
||
Currently synonymous with <code>-l 6 -b 4096 -r 4 --no-mid-side</code>
|
||
</dd>
|
||
<dt><strong>-4</strong>, <strong>--compression-level-4</strong></dt>
|
||
<dd>
|
||
Currently synonymous with <code>-l 8 -b 4096 -M -r 4</code>
|
||
</dd>
|
||
<dt><strong>-5</strong>, <strong>--compression-level-5</strong></dt>
|
||
<dd>
|
||
Currently synonymous with <code>-l 8 -b 4096 -m -r 5</code>
|
||
</dd>
|
||
<dt><strong>-6</strong>, <strong>--compression-level-6</strong></dt>
|
||
<dd>
|
||
Currently synonymous with
|
||
<code>-l 8 -b 4096 -m -r 6 -A "subdivide_tukey(2)"</code>
|
||
</dd>
|
||
<dt><strong>-7</strong>, <strong>--compression-level-7</strong></dt>
|
||
<dd>
|
||
Currently synonymous with
|
||
<code>-l 12 -b 4096 -m -r 6 -A "subdivide_tukey(2)"</code>
|
||
</dd>
|
||
<dt><strong>-8</strong>, <strong>--compression-level-8</strong>,
|
||
<strong>--best</strong></dt>
|
||
<dd>
|
||
Currently synonymous with
|
||
<code>-l 12 -b 4096 -m -r 6 -A "subdivide_tukey(3)"</code>
|
||
</dd>
|
||
<dt><strong>-l</strong> #, <strong>--max-lpc-order</strong>=#</dt>
|
||
<dd>
|
||
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 only
|
||
choose among a set of fixed (hard-coded) predictors. Restricting to
|
||
fixed predictors only is faster, but compresses weaker - typically five
|
||
percentage points / ten percent larger files.
|
||
</dd>
|
||
<dt><strong>-b</strong> #, <strong>--blocksize</strong>=#</dt>
|
||
<dd>
|
||
Specify the blocksize in samples. The current default is 1152 for -l 0,
|
||
else 4096. Blocksize must be between 16 and 65535 (inclusive). For
|
||
subset streams it must be <= 4608 if the samplerate is <= 48kHz,
|
||
for subset streams with higher samplerates it must be <= 16384.
|
||
</dd>
|
||
<dt><strong>-m</strong>, <strong>--mid-side</strong></dt>
|
||
<dd>
|
||
Try mid-side coding for each frame (stereo only, otherwise ignored).
|
||
</dd>
|
||
<dt><strong>-M</strong>, <strong>--adaptive-mid-side</strong></dt>
|
||
<dd>
|
||
Adaptive mid-side coding for all frames (stereo only, otherwise
|
||
ignored).
|
||
</dd>
|
||
<dt><strong>-r</strong> [#,]#,
|
||
<strong>--rice-partition-order</strong>=[#,]#</dt>
|
||
<dd>
|
||
Set the [min,]max residual partition order (0..15). For subset streams,
|
||
max must be <=8. min defaults to 0. Default is -r 5. Actual
|
||
partitioning will be restricted by block size and prediction order, and
|
||
the encoder will silently reduce too high values.
|
||
</dd>
|
||
<dt><strong>-A</strong> <em>FUNCTION(S)</em>,
|
||
<strong>--apodization</strong>=<em>FUNCTION(S)</em></dt>
|
||
<dd>
|
||
Window audio data with given apodization function. More can be given,
|
||
comma-separated. See section <strong>Apodization functions</strong> for
|
||
details.
|
||
</dd>
|
||
<dt><strong>-e</strong>, <strong>--exhaustive-model-search</strong></dt>
|
||
<dd>
|
||
Do exhaustive model search (expensive!).
|
||
</dd>
|
||
<dt><strong>-q</strong> #, <strong>--qlp-coeff-precision</strong>=#</dt>
|
||
<dd>
|
||
Precision of the quantized linear-predictor coefficients. This number
|
||
must be in between 5 and 16, or 0 (the default) to let encoder decide.
|
||
Does nothing if using -l 0.
|
||
</dd>
|
||
<dt><strong>-p</strong>,
|
||
<strong>--qlp-coeff-precision-search</strong></dt>
|
||
<dd>
|
||
Do exhaustive search of LP coefficient quantization (expensive!).
|
||
Overrides -q; does nothing if using -l 0.
|
||
</dd>
|
||
<dt><strong>--lax</strong></dt>
|
||
<dd>
|
||
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.
|
||
</dd>
|
||
<dt><strong>--limit-min-bitrate</strong></dt>
|
||
<dd>
|
||
Limit minimum bitrate by not allowing frames consisting of only constant
|
||
subframes. This ensures a bitrate of at least 1 bit/sample, for example
|
||
48kbit/s for 48kHz input. This is mainly useful for internet streaming.
|
||
</dd>
|
||
<dt><strong>-j</strong> #, <strong>--threads</strong>=#</dt>
|
||
<dd>
|
||
Try to set a maximum number of threads to use for encoding. If
|
||
multithreading was not enabled on compilation or when setting a number
|
||
of threads that is too high, this fails with a warning. The value of 0
|
||
means a default set by the encoder; currently that is 1 thread (i.e. no
|
||
multithreading), but that could change in the future. Currently, up to
|
||
128 threads are supported. Using a value higher than the number of
|
||
available CPU threads harms performance.
|
||
</dd>
|
||
<dt><strong>--ignore-chunk-sizes</strong></dt>
|
||
<dd>
|
||
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 specifies length of audio data with an
|
||
unsigned 32-bit number, limiting audio to just over 4 gigabytes. Files
|
||
larger than this are malformed, but should be read correctly using this
|
||
option. Beware however, it could misinterpret any data following the
|
||
audio chunk, as audio.
|
||
</dd>
|
||
<dt><strong>--replay-gain</strong></dt>
|
||
<dd>
|
||
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).
|
||
</dd>
|
||
<dt><strong>--cuesheet</strong>=<em>FILENAME</em></dt>
|
||
<dd>
|
||
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.
|
||
</dd>
|
||
<dt><strong>--picture</strong>={<em>FILENAME|SPECIFICATION</em>}</dt>
|
||
<dd>
|
||
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
|
||
<em>SPECIFICATION</em> is a string whose parts are separated by | (pipe)
|
||
characters. Some parts may be left empty to invoke default values.
|
||
Specifying only <em>FILENAME</em> is just shorthand for “||||FILENAME”.
|
||
See the section <strong>Picture specification</strong> for
|
||
<em>SPECIFICATION</em> format.
|
||
</dd>
|
||
<dt><strong>-S</strong> {#|X|#x|#s},
|
||
<strong>--seekpoint</strong>={#|X|#x|#s}</dt>
|
||
<dd>
|
||
Specifies point(s) to include in SEEKTABLE, to override the encoder’s
|
||
default choice of one per ten seconds (‘-s 10s’). 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, where decimal points are locale-dependent, e.g. ‘-s
|
||
9.5s’ or ‘-s 9,5s’. Several -S options may be given; the resulting
|
||
SEEKTABLE will contain all seekpoints specified (duplicates removed).
|
||
Note: ‘-S #x’ and ‘-S #s’ will not work if the encoder cannot determine
|
||
the input size before starting. Note: if you use ‘-S #’ with # being
|
||
>= the number of 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). Use
|
||
--no-seektable for no SEEKTABLE.
|
||
</dd>
|
||
<dt><strong>-P</strong> #, <strong>--padding</strong>=#</dt>
|
||
<dd>
|
||
(Default: 8192 bytes, although 65536 for input above 20 minutes.) Tell
|
||
the encoder to write a PADDING metadata block of the given length (in
|
||
bytes) after the STREAMINFO block. This is useful for later tagging,
|
||
where one can write over the PADDING block instead of having to rewrite
|
||
the entire file. Note that a block header of 4 bytes will come on top of
|
||
the length specified.
|
||
</dd>
|
||
<dt><strong>-T</strong> “<em>FIELD=VALUE</em>”<strong>,
|
||
--tag</strong>=“<em>FIELD=VALUE</em>”</dt>
|
||
<dd>
|
||
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 content if necessary. This option
|
||
may appear more than once to add several Vorbis comments. NOTE: all tags
|
||
will be added to all encoded files.
|
||
</dd>
|
||
<dt><strong>--tag-from-file</strong>=“<em>FIELD=FILENAME</em>”</dt>
|
||
<dd>
|
||
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.
|
||
</dd>
|
||
</dl>
|
||
<h2 id="format-options">FORMAT OPTIONS</h2>
|
||
<p>Encoding defaults to FLAC and not OGG. Decoding defaults to WAVE
|
||
(more specifically WAVE_FORMAT_PCM for mono/stereo with 8/16 bits, and
|
||
to WAVE_FORMAT_EXTENSIBLE otherwise), except: will be overridden by
|
||
chunks found by --keep-foreign-metadata-if-present or
|
||
--keep-foreign-metadata</p>
|
||
<dl>
|
||
<dt><strong>--ogg</strong></dt>
|
||
<dd>
|
||
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’.
|
||
</dd>
|
||
<dt><strong>--serial-number</strong>=#</dt>
|
||
<dd>
|
||
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.
|
||
</dd>
|
||
</dl>
|
||
<p><strong>--force-aiff-format</strong><br />
|
||
<strong>--force-rf64-format</strong><br />
|
||
<strong>--force-wave64-format</strong> : For decoding: Override default
|
||
output format and force output to AIFF/RF64/WAVE64, respectively. This
|
||
option is not needed if the output filename (as set by -o) ends with
|
||
<em>.aif</em> or <em>.aiff</em>, <em>.rf64</em> and <em>.w64</em>
|
||
respectively. The encoder auto-detects format and ignores this
|
||
option.</p>
|
||
<p><strong>--force-legacy-wave-format</strong><br />
|
||
<strong>--force-extensible-wave-format</strong> : Instruct the decoder
|
||
to output a WAVE file with WAVE_FORMAT_PCM and WAVE_FORMAT_EXTENSIBLE
|
||
respectively, overriding default choice.</p>
|
||
<p><strong>--force-aiff-c-none-format</strong><br />
|
||
<strong>--force-aiff-c-sowt-format</strong> : Instruct the decoder to
|
||
output an AIFF-C file with format NONE and sowt respectively.</p>
|
||
<dl>
|
||
<dt><strong>--force-raw-format</strong></dt>
|
||
<dd>
|
||
Force input (when encoding) or output (when decoding) to be treated as
|
||
raw samples (even if filename suggests otherwise).
|
||
</dd>
|
||
</dl>
|
||
<h3 id="raw-format-options">raw format options</h3>
|
||
<p>When encoding from or decoding to raw PCM, format must be
|
||
specified.</p>
|
||
<dl>
|
||
<dt><strong>--sign</strong>={signed|unsigned}</dt>
|
||
<dd>
|
||
Specify the sign of samples.
|
||
</dd>
|
||
<dt><strong>--endian</strong>={big|little}</dt>
|
||
<dd>
|
||
Specify the byte order for samples
|
||
</dd>
|
||
<dt><strong>--channels</strong>=#</dt>
|
||
<dd>
|
||
(Input only) specify number of channels. The channels must be
|
||
interleaved, and in the order of the FLAC format (see the format
|
||
specification); the encoder (/decoder) cannot re-order channels.
|
||
</dd>
|
||
<dt><strong>--bps</strong>=#</dt>
|
||
<dd>
|
||
(Input only) specify bits per sample (per channel: 16 for CDDA.)
|
||
</dd>
|
||
<dt><strong>--sample-rate</strong>=#</dt>
|
||
<dd>
|
||
(Input only) specify sample rate (in Hz. Only integers supported.)
|
||
</dd>
|
||
<dt><strong>--input-size</strong>=#</dt>
|
||
<dd>
|
||
(Input only) specify the size of the raw input in bytes. This option is
|
||
only compulsory when encoding from stdin and using options that need to
|
||
know the input size beforehand (like, --skip, --until, --cuesheet ) The
|
||
encoder will truncate at the specified size if the input stream is
|
||
bigger. If the input stream is smaller, it will complain about an
|
||
unexpected end-of-file.
|
||
</dd>
|
||
</dl>
|
||
<h2 id="analysis-options">ANALYSIS OPTIONS</h2>
|
||
<dl>
|
||
<dt><strong>--residual-text</strong></dt>
|
||
<dd>
|
||
Includes the residual signal in the analysis file. This will make the
|
||
file very big, much larger than even the decoded file.
|
||
</dd>
|
||
<dt><strong>--residual-gnuplot</strong></dt>
|
||
<dd>
|
||
Generates a gnuplot file for every subframe; each file will contain the
|
||
residual distribution of the subframe. This will create a lot of files.
|
||
gnuplot must be installed separately.
|
||
</dd>
|
||
</dl>
|
||
<h2 id="negative-options">NEGATIVE OPTIONS</h2>
|
||
<p>The following will negate an option previously given:</p>
|
||
<p><strong>--no-adaptive-mid-side</strong><br />
|
||
<strong>--no-cued-seekpoints</strong><br />
|
||
<strong>--no-decode-through-errors</strong><br />
|
||
<strong>--no-delete-input-file</strong><br />
|
||
<strong>--no-preserve-modtime</strong><br />
|
||
<strong>--no-keep-foreign-metadata</strong><br />
|
||
<strong>--no-exhaustive-model-search</strong><br />
|
||
<strong>--no-force</strong><br />
|
||
<strong>--no-lax</strong><br />
|
||
<strong>--no-mid-side</strong><br />
|
||
<strong>--no-ogg</strong><br />
|
||
<strong>--no-padding</strong><br />
|
||
<strong>--no-qlp-coeff-prec-search</strong><br />
|
||
<strong>--no-replay-gain</strong><br />
|
||
<strong>--no-residual-gnuplot</strong><br />
|
||
<strong>--no-residual-text</strong><br />
|
||
<strong>--no-seektable</strong><br />
|
||
<strong>--no-silent</strong><br />
|
||
<strong>--no-verify</strong><br />
|
||
<strong>--no-warnings-as-errors</strong></p>
|
||
<h2 id="replaygain-application-specification">ReplayGain application
|
||
specification</h2>
|
||
<p>The option
|
||
--apply-replaygain-which-is-not-lossless[=<specification>] applies
|
||
ReplayGain values while decoding. <strong>WARNING: THIS IS NOT LOSSLESS.
|
||
DECODED AUDIO WILL NOT BE IDENTICAL TO THE ORIGINAL WITH THIS
|
||
OPTION.</strong> This option is useful for example in transcoding media
|
||
servers, where the client does not support ReplayGain.</p>
|
||
<p>The <specification> is a shorthand notation for describing how
|
||
to apply ReplayGain. All elements are optional - defaulting to 0aLn1 -
|
||
but order is important. The format is:</p>
|
||
<p>[<preamp>][a|t][l|L][n{0|1|2|3}]</p>
|
||
<p>In which the following parameters are used:</p>
|
||
<ul>
|
||
<li><p><strong>preamp</strong>: A floating point number in dB. This is
|
||
added to the existing gain value.</p></li>
|
||
<li><p><strong>a|t</strong>: 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.</p></li>
|
||
<li><p><strong>l|L</strong>: 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.</p></li>
|
||
<li><p><strong>n{0|1|2|3}</strong>: 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’.</p></li>
|
||
</ul>
|
||
<p>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.</p>
|
||
<p>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.</p>
|
||
<h2 id="picture-specification">Picture specification</h2>
|
||
<p>This described the specification used for the
|
||
<strong>--picture</strong> option.
|
||
[<em>TYPE</em>]|[<em>MIME-TYPE</em>]|[<em>DESCRIPTION</em>]|[<em>WIDTHxHEIGHTxDEPTH</em>[/<em>COLORS</em>]]|<em>FILE</em></p>
|
||
<p><em>TYPE</em> is optional; it is a number from one of:</p>
|
||
<ol start="0" type="1">
|
||
<li>Other</li>
|
||
<li>32x32 pixels ‘file icon’ (PNG only)</li>
|
||
<li>Other file icon</li>
|
||
<li>Cover (front)</li>
|
||
<li>Cover (back)</li>
|
||
<li>Leaflet page</li>
|
||
<li>Media (e.g. label side of CD)</li>
|
||
<li>Lead artist/lead performer/soloist</li>
|
||
<li>Artist/performer</li>
|
||
<li>Conductor</li>
|
||
<li>Band/Orchestra</li>
|
||
<li>Composer</li>
|
||
<li>Lyricist/text writer</li>
|
||
<li>Recording Location</li>
|
||
<li>During recording</li>
|
||
<li>During performance</li>
|
||
<li>Movie/video screen capture</li>
|
||
<li>A bright coloured fish</li>
|
||
<li>Illustration</li>
|
||
<li>Band/artist logotype</li>
|
||
<li>Publisher/Studio logotype</li>
|
||
</ol>
|
||
<p>The default is 3 (front cover). There may only be one picture each of
|
||
type 1 and 2 in a file.</p>
|
||
<p><em>MIME-TYPE</em> 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.</p>
|
||
<p><em>DESCRIPTION</em> is optional; the default is an empty string.</p>
|
||
<p>The next part specifies the resolution and color information. If the
|
||
<em>MIME-TYPE</em> 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.</p>
|
||
<p><em>FILE</em> is the path to the picture file to be imported, or the
|
||
URL if MIME type is --></p>
|
||
<p><strong>Specification examples:</strong> “|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.
|
||
“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.</p>
|
||
<h2 id="apodization-functions">Apodization functions</h2>
|
||
<p>To improve LPC analysis, the audio data is windowed. An
|
||
<strong>-A</strong> option applies the specified apodization function(s)
|
||
instead of the default (which is “tukey(5e-1)”, though different for
|
||
presets -6 to -8.) Specifying one more function effectively means, for
|
||
each subframe, to try another weighting of the data and see if it
|
||
happens to result in a smaller encoded subframe. Specifying several
|
||
functions is time-expensive, at typically diminishing compression
|
||
gains.</p>
|
||
<p>The subdivide_tukey(<em>N</em>) functions (see below) used in presets
|
||
-6 to -8 were developed to recycle calculations for speed, compared to
|
||
using a number of independent functions. Even then, a high number like
|
||
<em>N</em>>4 or 5, will often become less efficient than other
|
||
options considered expensive, like the slower -p, though results vary
|
||
with signal.</p>
|
||
<p>Up to 32 functions can be given as comma-separated list and/or
|
||
individual <strong>-A</strong> options. Any mis-specified function is
|
||
silently ignored. Quoting a function which takes options (and has
|
||
parentheses) may be necessary, depending on shell. Currently the
|
||
following functions are implemented: bartlett, bartlett_hann, blackman,
|
||
blackman_harris_4term_92db, connes, flattop, gauss(<em>STDDEV</em>),
|
||
hamming, hann, kaiser_bessel, nuttall, rectangle, triangle,
|
||
tukey(<em>P</em>), partial_tukey(<em>N</em>[/<em>OV</em>[/<em>P</em>]]),
|
||
punchout_tukey(<em>N</em>[/<em>OV</em>[/<em>P</em>]]),
|
||
subdivide_tukey(<em>N</em>[/<em>P</em>]), welch.</p>
|
||
<p>For parameters <em>P</em>, <em>STDDEV</em> and <em>OV</em>,
|
||
scientific notation is supported, e.g. tukey(5e-1). Otherwise, the
|
||
decimal point must agree with the locale, e.g. tukey(0.5) or tukey(0,5)
|
||
depending on your system.</p>
|
||
<ul>
|
||
<li><p>For gauss(<em>STDDEV</em>), <em>STDDEV</em> is the standard
|
||
deviation (0<<em>STDDEV</em><=5e-1).</p></li>
|
||
<li><p>For tukey(<em>P</em>), <em>P</em> (between 0 and 1) specifies the
|
||
fraction of the window that is cosine-tapered; <em>P</em>=0 corresponds
|
||
to “rectangle” and <em>P</em>=1 to “hann”.</p></li>
|
||
<li><p>partial_tukey(<em>N</em>) and punchout_tukey(<em>N</em>) are
|
||
largely obsoleted by the more time-effective
|
||
subdivide_tukey(<em>N</em>), see next item. They generate <em>N</em>
|
||
functions each spanning a part of each block. Optional arguments are an
|
||
overlap <em>OV</em> (<1, may be negative), for example
|
||
partial_tukey(2/2e-1); and then a taper parameter <em>P</em>, for
|
||
example partial_tukey(2/2e-1/5e-1).</p></li>
|
||
<li><p>subdivide_tukey(<em>N</em>) is a more efficient reimplementation
|
||
of partial_tukey and punchout_tukey taken together, combining the
|
||
windows they would generate up to the specified <em>N</em>. Specifying
|
||
subdivide_tukey(3) entails a tukey, a partial_tukey(2), a
|
||
partial_tukey(3) and a punchout_tukey(3); specifying subdivide_tukey(5)
|
||
will on top of that add a partial_tukey(4), a punchout_tukey(4), a
|
||
partial_tukey(5) and a punchout_tukey(5) - but all with tapering chosen
|
||
to facilitate the re-use of computation. Thus the <em>P</em> parameter
|
||
(defaulting to 5e-1) is applied for the smallest used window: For
|
||
example, subdivide_tukey(2/5e-1) results in the same taper as that of
|
||
tukey(25e-2) and subdivide_tukey(5) in the same taper as of
|
||
tukey(1e-1).</p></li>
|
||
</ul>
|
||
<h1 id="see-also">SEE ALSO</h1>
|
||
<p><strong>metaflac(1)</strong></p>
|
||
<h1 id="author">AUTHOR</h1>
|
||
<p>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.</p>
|
||
<div class="copyright">
|
||
<hr />
|
||
Copyright (c) 2000-2009 Josh Coalson, 2011-2025 Xiph.Org Foundation
|
||
</div>
|
||
</div>
|
||
</body>
|
||
</html>
|