Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
FLAC(1)								       FLAC(1)

       flac - Free Lossless Audio Codec

       flac  [ OPTIONS ] [ infile.wav |	infile.rf64 | infile.aiff | infile.raw
       | infile.flac | infile.oga | infile.ogg | - ... ]

       flac [ -d | --decode | -t | --test | -a | --analyze ] [ OPTIONS ] [ in-
       file.flac | infile.oga |	infile.ogg | - ... ]

       flac is a command-line tool for encoding, decoding, testing and analyz-
       ing FLAC	streams.

       A summary of options is included	below.	For  a	complete  description,
       see the HTML documentation.

       -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

       -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

	      Do not print anything of any kind, including warnings or errors.
	      The  exit	code will be the only way to determine successful com-

	      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	exten-
	      sion).   May  only be used when encoding a single	file.  May not
	      be used in conjunction with --output-prefix.

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

	      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.

	      Output  files  have  their  timestamps/permissions  set to match
	      those of their inputs (this is default).	Use --no-preserve-mod-
	      time to make output files	have the current time and default per-

	      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 can-
	      not be restored when decoding to AIFF.  Input and	output must be
	      regular files (not stdin or stdout).

	      Skip  over the first number of samples of	the input.  This works
	      for both encoding	and decoding, but not testing.	 The  alterna-
	      tive  form can be used to specify minutes, seconds, and
	      fractions	of a second.

	      Stop at the given	sample number for each input file.  This works
	      for both encoding	and decoding, but not testing.	The given sam-
	      ple number is not	included in the	decoded	output.	 The  alterna-
	      tive  form can be used to specify minutes, seconds, and
	      fractions	of a second.  If a `+' (plus) sign is  at  the	begin-
	      ning,  the  --until point	is relative to the --skip point.  If a
	      `-' (minus) sign is at the beginning, the	--until	point is rela-
	      tive 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'.

	      When used	with --ogg, specifies the serial number	to use for the
	      first  Ogg FLAC stream, which is then incremented	for each addi-
	      tional 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.

	      Includes	the  residual  signal in the analysis file.  This will
	      make the file very big, much larger than even the	decoded	file.

	      Generates	a gnuplot file for every subframe; each	file will con-
	      tain  the	residual distribution of the subframe.	This will cre-
	      ate a lot	of files.

	      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  ex-
	      ist, 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.

	      Applies ReplayGain values	while decoding.


	      The equals sign and <specification> is  optional.	  If  omitted,
	      the default is 0aLn1.

	      The  <specification>  is a shorthand notation for	describing how
	      to apply ReplayGain.  All	components are optional	but  order  is
	      important.   '[]'	means 'optional'.  '|' means 'or'.  '{}' means
	      required.	 The format is:


	      preamp A floating	point number in	dB.  This is added to the  ex-
		     isting gain value.

	      a|t    Specify  'a'  to  use  the	 album gain, or	't' to use the
		     track gain.  If tags for the preferred kind (album/track)
		     do	 not  exist  but  tags for the other (track/album) do,
		     those will	be used	instead.

	      l|L    Specify 'l' to peak-limit the output, so that the Replay-
		     Gain  peak	value is full-scale.  Specify 'L' to use a 6dB
		     hard limiter that kicks in	 when  the  signal  approaches

		     Specify  the amount of noise shaping.  ReplayGain synthe-
		     sis happens in floating point; the	result is dithered be-
		     fore  converting back to integer.	This quantization adds
		     noise.  Noise shaping tries to move the noise  where  you
		     won't hear	it as much.  0 means no	noise shaping, 1 means
		     'low', 2 means 'medium', 3	means 'high'.

       For example, the	default	of 0aLn1 means 0dB preamp, use album gain, 6dB
       hard limit, low noise shaping.

       --apply-replaygain-which-is-not-lossless=3  means 3dB preamp, use album
       gain, no	limiting, no noise shaping.

       flac uses the ReplayGain	tags for the calculation.  If  a  stream  does
       not  have the required tags or they can't be parsed, decoding will con-
       tinue with a warning, and no ReplayGain is applied to that stream.

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

	      Calculate	ReplayGain values and store them as FLAC tags, similar
	      to vorbisgain.  Title gains/peaks	will be	computed for each  in-
	      put 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 ex-
	      tra 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).

	      Import the given cuesheet	file and store it in a CUESHEET	 meta-
	      data 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-

	      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 sepa-
	      rated 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 is optional;	it is a	number from one	of:

	      0: Other

	      1: 32x32 pixels 'file icon' (PNG only)

	      2: Other file icon

	      3: Cover (front)

	      4: Cover (back)

	      5: Leaflet page

	      6: Media (e.g. label side	of CD)

	      7: Lead artist/lead performer/soloist

	      8: Artist/performer

	      9: Conductor

	      10: Band/Orchestra

	      11: Composer

	      12: Lyricist/text	writer

	      13: Recording Location

	      14: During recording

	      15: During performance

	      16: Movie/video screen capture

	      17: A bright coloured fish

	      18: Illustration

	      19: Band/artist logotype

	      20: Publisher/Studio logotype

	      The  default  is 3 (front	cover).	 There may only	be one picture
	      each of type 1 and 2 in a	file.

	      MIME-TYPE	is optional; if	left blank, it will be	detected  from
	      the  file.   For	best  compatibility with players, use pictures
	      with MIME	type image/jpeg	or image/png.  The MIME	type can  also
	      be  -->  to mean that FILE is actually a URL to an image,	though
	      this use is discouraged.

	      DESCRIPTION is optional; the default is an empty string.

	      The next part specifies the resolution  and  color  information.
	      If the MIME-TYPE is image/jpeg, image/png, or image/gif, you can
	      usually leave this empty and they	can be detected	from the file.
	      Otherwise,  you must specify the width in	pixels,	height in pix-
	      els, and color depth in bits-per-pixel.  If the  image  has  in-
	      dexed  colors you	should also specify the	number of colors used.
	      When manually specified, it is not checked against the file  for

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

	      Align encoding of	multiple CD format files on sector boundaries.
	      See the HTML documentation for more information.	This option is
	      DEPRECATED and may not exist in future versions of flac.

	      When encoding to flac, ignore the	file size headers in  WAV  and
	      AIFF files to attempt to work around problems with over-sized or
	      malformed	files.

	      WAV and AIFF files both have an unsigned 32 bit numbers  in  the
	      file  header which specifes the length of	audio data. Since this
	      number is	unsigned 32 bits, that limits the size of a valid file
	      to  being	just over 4 Gigabytes. Files larger than this are mal-
	      formed, but should be read correctly using this option.

       -S {#|X|#x|#s}, --seekpoint={#|X|#x|#s}
	      Include a	point or points	in a SEEKTABLE.	 Using #, a seek point
	      at that sample number is added.  Using X,	a placeholder point is
	      added at the end of a the	table.	Using #x, # evenly spaced seek
	      points  will be added, the first being at	sample 0.  Using #s, a
	      seekpoint	will be	added every # seconds (# does not have to be a
	      whole  number;  it can be, for example, 9.5, meaning a seekpoint
	      every 9.5	seconds).  You may use many -S options;	the  resulting
	      SEEKTABLE	 will  be  the	unique-ified union of all such values.
	      With no -S options, flac defaults	to '-S 10s'.   Use  --no-seek-
	      table 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  de-
	      terminable  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;  in-
	      stead  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 writ-
	      ten 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).

	      Add a FLAC tag.  The comment must	adhere to the  Vorbis  comment
	      spec;  i.e. the FIELD must contain only legal characters,	termi-
	      nated 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.

	      Like --tag, except FILENAME is a file  whose  contents  will  be
	      read  verbatim  to set the tag value.  The contents will be con-
	      verted to	UTF-8 from the local charset.  This  can  be  used  to
	      store  a	cuesheet in a tag (e.g.	 --tag-from-file="CUESHEET=im-
	      age.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 --no-mid-side

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

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

	      -3, --compression-level-3
		     Synonymous	with -l	6 -b 4096 -r 4 --no-mid-side

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

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

	      -6, --compression-level-6
		     Synonymous	with -l	8 -b 4096 -m -r	 6  -A	tukey(0.5)  -A

	      -7, --compression-level-7
		     Synonymous	 with  -l  12 -b 4096 -m -r 6 -A tukey(0.5) -A

	      -8, --compression-level-8
		     Synonymous	with -l	12 -b 4096 -m -r 6  -A	tukey(0.5)  -A
		     partial_tukey(2) -A punchout_tukey(3)

       --fast Fastest compression.  Currently synonymous with -0.

       --best Highest compression.  Currently synonymous with -8.

       -e, --exhaustive-model-search
	      Do exhaustive model search (expensive!)

       -A function, --apodization=function
	      Window  audio  data  with	 given	the apodization	function.  The
	      functions	are: bartlett, bartlett_hann, blackman,	 blackman_har-
	      ris_4term_92db,  connes,	flattop, gauss(STDDEV),	hamming, hann,
	      kaiser_bessel,  nuttall,	rectangle,  triangle,  tukey(P),  par-
	      tial_tukey(n[/ov[/P]]), punchout_tukey(n[/ov[/P]]), welch.

	      For  gauss(STDDEV),  STDDEV  is  the  standard deviation (0<STD-

	      For tukey(P), P specifies	the fraction of	the window that	is ta-
	      pered  (0<=P<=1;	P=0  corresponds to "rectangle"	and P=1	corre-
	      sponds to	"hann").

	      For partial_tukey(n) and punchout_tukey(n), n apodization	 func-
	      tions  are added that span different parts of each block.	Values
	      of 2 to 6	seem to	yield sane results. If necessary,  an  overlap
	      can  be  specified,  as  can be the taper	parameter, for example
	      partial_tukey(2/0.2) or partial_tukey(2/0.2/0.5).	ov  should  be
	      smaller than 1 and can be	negative.

	      Please  note  that  P,  STDDEV  and ov are locale	specific, so a
	      comma as decimal separator might be required instead of a	dot.

	      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 sub-
	      frame 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  (expen-
	      sive!).  Overrides -q; does nothing if using -l 0

       -q #, --qlp-coeff-precision=#
	      Precision	 of  the quantized linear-predictor coefficients, 0 =>
	      let encoder decide (min is 5, default is 0)

       -r [#,]#, --rice-partition-order=[#,]#
	      Set the [min,]max	residual partition order (0..15). min defaults
	      to 0 if unspecified.  Default is -r 5.

	      Set the byte order for samples

	      Set number of channels.

	      Set bits per sample.

	      Set sample rate (in Hz).

	      Set the sign of samples (the default is signed).

	      Specify the size of the raw input	in bytes.  If you are encoding
	      raw samples from stdin, you must set this	option in order	to  be
	      able  to	use --skip, --until, --cuesheet, or other options that
	      need to know the size of the  input  beforehand.	 If  the  size
	      given is greater than what is found in the input stream, the en-
	      coder will complain about	an  unexpected	end-of-file.   If  the
	      size given is less, samples will be truncated.

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

	      Force the	decoder	to output AIFF format.	 This  option  is  not
	      needed  if  the output filename (as set by -o) ends with .aif or
	      .aiff.  Also, this option	has no effect when encoding since  in-
	      put AIFF is auto-detected.

	      Force  the  decoder  to  output RF64 format.  This option	is not
	      needed if	the output filename (as	set by -o)  ends  with	.rf64.
	      Also,  this  option has no effect	when encoding since input RF64
	      is auto-detected.

	      Force the	decoder	to output Wave64 format.  This option  is  not
	      needed  if  the  output  filename	(as set	by -o) ends with .w64.
	      Also, this option	has no effect when encoding since input	Wave64
	      is auto-detected.





















	      These flags can be used to invert	the sense of the corresponding
	      normal option.


       The programs are	documented fully by HTML format	documentation,	avail-
       able in /usr/local/share/doc/flac/html.

       This  manual  page  was	initially  written  by Matt Zimmerman <mdz@de-> for the Debian	GNU/Linux system (but may be used by  others).
       It has been kept	up-to-date by the Foundation.

				  2013/09/18			       FLAC(1)


Want to link to this manual page? Use this URL:

home | help