


FLAC(1)                                                   FLAC(1)


NAME
       flac - Free Lossless Audio Codec

SYNOPSIS
       flac [ options ] [ infile.wav | infile.aiff | infile.raw |
       - ... ]


       flac [ -d | --decode | -t | --test | -a |  --analyze  ]  [
       OPTIONS ] [ infile.flac ... ]


DESCRIPTION
       flac  is a command-line tool for encoding, decoding, test-
       ing and analyzing FLAC streams.

       This manual page was originally  written  for  the  Debian
       GNU/Linux  distribution  because  the original program did
       not have a manual page.

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



                         02 February 2005                       1





FLAC(1)                                                   FLAC(1)


              warnings or errors.  The exit code will be the only
              way to determine successful completion.

       -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  con-
              junction 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 suc-
              cessful encode or decode.  If there  was  an  error
              (including  a  verify error) the input file is left
              intact.

       --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,  sec-
              onds,  and  fractions of a second.  If a `+' (plus)
              sign is at the beginning, the --until point is rel-
              ative  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 '.ogg' 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



                         02 February 2005                       2





FLAC(1)                                                   FLAC(1)


              or when the filename does not end in '.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.

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



                         02 February 2005                       3





FLAC(1)                                                   FLAC(1)


              have  trouble  being  played  in all players (espe-
              cially 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  in  Vorbis
              comments, 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  pro-
              cessed.   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 speci-
              fied.

       --sector-align
              Align  encoding of multiple CD format WAVE 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 deter-
              mine 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  deter-
              minable).




                         02 February 2005                       4





FLAC(1)                                                   FLAC(1)


       -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 4096 bytes by default.

       -T FIELD=VALUE, --tag=FIELD=VALUE
              Add a Vorbis comment.  The comment must  adhere  to
              the  Vorbis  comment spec; i.e. the FIELD must con-
              tain  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.

       -b #, --blocksize=#
              Specify the block size in samples.  The default  is
              1152  for -l 0, else 4608; must be one of 192, 576,
              1152, 2304, 4608, 256, 512, 1024, 2048, 4096, 8192,
              16384, or 32768 (unless --lax is used)

       -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 2,2

              -1, --compression-level-1
                     Synonymous with -l 0 -b 1152 -M -r 2,2

              -2, --compression-level-2
                     Synonymous with -l 0 -b 1152 -m -r 3

              -3, --compression-level-3
                     Synonymous with -l 6 -b 4608 -r 3,3





                         02 February 2005                       5





FLAC(1)                                                   FLAC(1)


              -4, --compression-level-4
                     Synonymous with -l 8 -b 4608 -M -r 3,3

              -5, --compression-level-5
                     Synonymous with -l 8 -b 4608 -m -r 3,3

              -6, --compression-level-6
                     Synonymous with -l 8 -b 4608 -m -r 4

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

              -8, --compression-level-8
                     Synonymous with -l 12 -b 4608 -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!)

       -l #, --max-lpc-order=#
              Set the maximum LPC order; 0  means  use  only  the
              fixed predictors

       -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 coeffi-
              cients, 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
              3,3.

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




                         02 February 2005                       6





FLAC(1)                                                   FLAC(1)


       --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 unex-
              pected 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 decod-
              ing) 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





                         02 February 2005                       7





FLAC(1)                                                   FLAC(1)


       --no-silent

       --no-verify
              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  documen-
       tation,  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).








































                         02 February 2005                       8


