NAME

       flac - Free Lossless Audio Codec

SYNOPSIS

       flac  [ OPTIONS ] [ infile.wav | 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.

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.

       --keep-foreign-metadata
              If  encoding,  save  WAVE  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).

       --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.

   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 one of 8, 11.025,  12,  16,
              22.05,  24, 32, 44.1, or 48 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 command 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".  The format of SPECIFICATION is

              [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 specfies 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.

       --sector-align
              Align encoding of multiple CD format files on sector boundaries.
              See the HTML documentation for more information.

       -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 block size in samples.  Subset streams must use  one
              of  192,  576, 1152, 2304, 4608, 256, 512, 1024, 2048, 4096 (and
              8192 or 16384 if the sample rate is >48kHz).

       -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

              -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

              -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

              -7, --compression-level-7
                     Synonymous with -l 8 -b 4096 -m -e -r 6

              -8, --compression-level-8
                     Synonymous with -l 12 -b 4096 -m -e -r 6

       --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.  The
              functions    are:     bartlett,     bartlett_hann,     blackman,
              blackman_harris_4term_92db,   connes,   flattop,  gauss(STDDEV),
              hamming,  hann,  kaiser_bessel,  nuttall,  rectangle,  triangle,
              tukey(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").

              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.

       -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..16). 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 (the default is signed).

       --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, --cue-sheet, 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-aiff-format
              Force  the  decoder  to  output AIFF format.  This option is not
              needed if the output filename (as set by -o)  ends  with  .aiff.
              Also,  this  option has no effect when encoding since input AIFF
              is auto-detected.

       --force-raw-format
              Force input (when encoding) or  output  (when  decoding)  to  be
              treated as raw samples (even if filename ends in .wav).

   NEGATIVE OPTIONS
       --no-adaptive-mid-side

       --no-decode-through-errors

       --no-delete-input-file

       --no-exhaustive-model-search

       --no-lax

       --no-mid-side

       --no-ogg

       --no-padding

       --no-qlp-coeff-precision-search

       --no-residual-gnuplot

       --no-residual-text

       --no-sector-align

       --no-seektable

       --no-silent

       --no-verify

       --no-warnings-as-errors
              These flags can be used to invert the sense of the corresponding
              normal option.

SEE ALSO

       metaflac(1).

       The  programs  are  documented  fully  by  HTML  format  documentation,
       available in /usr/share/doc/flac/html on Debian GNU/Linux systems.

AUTHOR

       This manual page was written by Matt Zimmerman <mdz@debian.org> for the
       Debian GNU/Linux system (but may be used by others).

                               14 September 2007                       FLAC(1)