Man Linux: Main Page and Category List

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/libflac-doc/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).