.\" This manpage has been automatically generated by docbook2man 
.\" from a DocBook document.  This tool can be found at:
.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/> 
.\" Please send any bug reports, improvements, comments, patches, 
.\" etc. to Steve Cheng <steve@ggi-project.org>.
.TH "METAFLAC" "1" "17 November 2006" "" ""

.SH NAME
metaflac \- program to list, add, remove, or edit metadata in one or more FLAC files.
.SH SYNOPSIS

\fBmetaflac\fR [ \fB\fIoptions\fB\fR ] [ \fB\fIoperations\fB\fR ] \fB\fIFLACfile\fB\fR\fI ...\fR

.SH "DESCRIPTION"
.PP
Use \fBmetaflac\fR to list, add, remove, or edit
metadata in one or more FLAC files.  You may perform one major operation,
or many shorthand operations at a time.
.SH "OPTIONS"
.TP
\fB--preserve-modtime\fR
Preserve the original modification time in spite of edits.
.TP
\fB--with-filename\fR
Prefix each output line with the FLAC file name (the default if
more than one FLAC file is specified).
.TP
\fB--no-filename\fR
Do not prefix each output line with the FLAC file name (the default
if only one FLAC file is specified).
.TP
\fB--dont-use-padding\fR
By default metaflac tries to use padding where possible to avoid
rewriting the entire file if the metadata size changes.  Use this
option to tell metaflac to not take advantage of padding this way.
.SH "SHORTHAND OPERATIONS"
.TP
\fB--show-md5sum\fR
Show the MD5 signature from the STREAMINFO block.
.TP
\fB--show-min-blocksize\fR
Show the minimum block size from the STREAMINFO block.
.TP
\fB--show-max-blocksize\fR
Show the maximum block size from the STREAMINFO block.
.TP
\fB--show-min-framesize\fR
Show the minimum frame size from the STREAMINFO block.
.TP
\fB--show-max-framesize\fR
Show the maximum frame size from the STREAMINFO block.
.TP
\fB--show-sample-rate\fR
Show the sample rate from the STREAMINFO block.
.TP
\fB--show-channels\fR
Show the number of channels from the STREAMINFO block.
.TP
\fB--show-bps\fR
Show the # of bits per sample from the STREAMINFO block.
.TP
\fB--show-total-samples\fR
Show the total # of samples from the STREAMINFO block.
.TP
\fB--show-vendor-tag\fR
Show the vendor string from the VORBIS_COMMENT block.
.TP
\fB--show-tag=name\fR
Show all tags where the the field name matches 'name'.
.TP
\fB--remove-tag=name\fR
Remove all tags whose field name is 'name'.
.TP
\fB--remove-first-tag=name\fR
Remove first tag whose field name is 'name'.
.TP
\fB--remove-all-tags\fR
Remove all tags, leaving only the vendor string.
.TP
\fB--set-tag=field\fR
Add a tag.  The field must comply with the
Vorbis comment spec, of the form "NAME=VALUE".  If there is
currently no tag block, one will be created.
.TP
\fB--set-tag-from-file=field\fR
Like --set-tag, except the VALUE is a filename whose
contents will be read verbatim to set the tag value.
Unless --no-utf8-convert is specified, 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.
--set-tag-from-file="CUESHEET=image.cue").  Do not try to
store binary data in tag fields!  Use APPLICATION blocks for
that.
.TP
\fB--import-tags-from=file\fR
Import tags from a file.  Use '-' for stdin.  Each
line should be of the form NAME=VALUE.  Multi-line comments
are currently not supported.  Specify --remove-all-tags and/or
--no-utf8-convert before --import-tags-from if necessary.  If
FILE is '-' (stdin), only one FLAC file may be specified.
.TP
\fB--export-tags-to=file\fR
Export tags to a file.  Use '-' for stdin.  Each
line will be of the form NAME=VALUE.  Specify
--no-utf8-convert if necessary.
.TP
\fB--import-cuesheet-from=file\fR
Import a cuesheet from a file.  Use '-' for stdin.  Only one
FLAC file may be specified.  A seekpoint will be added for each
index point in the cuesheet to the SEEKTABLE unless
--no-cued-seekpoints is specified.
.TP
\fB--export-cuesheet-to=file\fR
Export CUESHEET block to a cuesheet file, suitable for use by
CD authoring software.  Use '-' for stdout.  Only one FLAC file
may be specified on the command line.
.TP
\fB--import-picture-from=\fISPECIFICATION\fB\fR
Import a picture and store it in a PICTURE metadata block.  More than one --import-picture-from command can be specified.  The SPECIFICATION is a string whose parts are separated by | (pipe) characters.  Some parts may be left empty to invoke default values.  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 mandatory; 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.
.TP
\fB--export-picture-to=file\fR
Export PICTURE block to a file.  Use '-' for stdout.  Only one FLAC file may be specified on the command line.  The first PICTURE block will be exported unless --export-picture-to is preceded by a --block-number=# option to specify the exact metadata block to extract.  Note that the block number is the one shown by --list.
.TP
\fB--add-replay-gain\fR
Calculates the title and album gains/peaks of the given FLAC
files as if all the files were part of one album, then stores
them in the VORBIS_COMMENT block.  The tags are the same as
those used by vorbisgain.  Existing ReplayGain tags will be
replaced.  If only one FLAC file is given, the album and title
gains will be the same.  Since this operation requires two
passes, it is always executed last, after all other operations
have been completed and written to disk.  All FLAC files
specified must have the same resolution, sample rate, and
number of channels.  The sample rate must be one of 8, 11.025,
12, 16, 22.05, 24, 32, 44.1, or 48 kHz.
.TP
\fB--remove-replay-gain\fR
Removes the ReplayGain tags.
.TP
\fB--add-seekpoint={\fI#\fB|\fIX\fB|\fI#x\fB|\fI#s\fB}\fR
Add seek points to a SEEKTABLE block.  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).  If no SEEKTABLE block exists, one will be
created.  If one already exists, points will be added to the
existing table, and any duplicates will be turned into placeholder
points.  You may use many --add-seekpoint options; the resulting
SEEKTABLE will be the unique-ified union of all such values.
Example: --add-seekpoint=100x --add-seekpoint=3.5s will add 100
evenly spaced seekpoints and a seekpoint every 3.5 seconds.
.TP
\fB--add-padding=length\fR
Add a padding block of the given length (in bytes).  The overall
length of the new block will be 4 + length; the extra 4 bytes is
for the metadata block header.
.SH "MAJOR OPERATIONS"
.TP
\fB--list\fR
List the contents of one or more metadata blocks to stdout.  By
default, all metadata blocks are listed in text format.  Use the
following options to change this behavior:
.RS
.TP
\fB--block-number=#[,#[...]]\fR
An optional comma-separated list of block numbers to display.
The first block, the STREAMINFO block, is block 0.
.TP
\fB--block-type=type[,type[...]]\fR
.TP
\fB--except-block-type=type[,type[...]]\fR
An optional comma-separated list of block types to be included
or ignored with this option.  Use only one of --block-type or
--except-block-type.  The valid block types are: STREAMINFO,
PADDING, APPLICATION, SEEKTABLE, VORBIS_COMMENT.  You may
narrow down the types of APPLICATION blocks displayed as
follows:

APPLICATION:abcd        The APPLICATION block(s) whose textual repre-
sentation of the 4-byte ID is "abcd"
APPLICATION:0xXXXXXXXX  The APPLICATION block(s) whose hexadecimal big-
endian representation of the 4-byte ID is
"0xXXXXXXXX".  For the example "abcd" above the
hexadecimal equivalalent is 0x61626364
.sp
.RS
.B "Note:"
if both --block-number and --[except-]block-type are
specified, the result is the logical AND of both
arguments.
.RE
.TP
\fB--application-data-format=hexdump|text\fR
If the application block you are displaying contains binary
data but your --data-format=text, you can display a hex dump
of the application data contents instead using
--application-data-format=hexdump.
.RE
.TP
\fB--remove\fR
Remove one or more metadata blocks from the metadata.  Unless
--dont-use-padding is specified, the blocks will be replaced with
padding.  You may not remove the STREAMINFO block.
.RS
.TP
\fB--block-number=#[,#[...]]\fR
.TP
\fB--block-type=type[,type[...]]\fR
.TP
\fB--except-block-type=type[,type[...]]\fR
See --list above for usage.
.sp
.RS
.B "Note:"
if both --block-number and --[except-]block-type are
specified, the result is the logical AND of both arguments.
.RE
.RE
.TP
\fB--remove-all\fR
Remove all metadata blocks (except the STREAMINFO block) from the
metadata.  Unless --dont-use-padding is specified, the blocks will
be replaced with padding.
.TP
\fB--merge-padding\fR
Merge adjacent PADDING blocks into single blocks.
.TP
\fB--sort-padding\fR
Move all PADDING blocks to the end of the metadata and merge them
into a single block.
.SH "SEE ALSO"
.PP
flac(1).
