EXIV2(1)

NAME
exiv2 - Image metadata manipulation tool

SYNOPSIS
exiv2 [options] [action] file ...

DESCRIPTION

exiv2 is a program to read and write Exif, IPTC and XMP image metadata and image comments. Supported image formats are JPEG, Canon CRW and Canon THM. Read-only support is currently available for PNG and TIFF format and includes TIFF-based RAW formats: Adobe DNG, Canon CR2, Fujifilm RAF, Minolta MRW, Nikon NEF, Olympus ORF, Pentax PEF, Sony ARW and Sony SR2.

ACTIONS
The action argument is only required if it is not clear from the options which action is implied.

pr | print
    Print image metadata. This is the default action, i.e., the command exiv2 image.jpg will print a summary of the image Exif metadata.

ex | extract
    Extract metadata to *.exv, *.xmp and thumbnail image files. Modification commands can be applied on-the-fly.

in | insert
    Insert metadata from corresponding *.exv, *.xmp and thumbnail files. Use option -S .suf to change the suffix of the input files. Since files of any supported format can be used as input files, this command can be used to copy the metadata between files of different formats. Modification commands can be applied on-the-fly.

rm | delete
    Delete image metadata from the files.

ad | adjust
    Adjust Exif timestamps by the given time. Requires at least one of the options -a time, -Y yrs, -O mon or -D day.

mo | modify
    Apply commands to modify (add, set, delete) the Exif, IPTC and XMP metadata of image files. Requires option -c, -m or -M.

mv | rename
    Rename files and/or set file timestamps according to the Exif create timestamp. Uses the value of tag Exif.Photo.DateTimeOriginal or, if not present, Exif.Image.DateTime to determine the timestamp. The filename format can be set with -r fmt, timestamp options are -t and -T.

fi | fixiso
    Copy the ISO setting from one of the proprietary Nikon or Canon makernote ISO tags to the regular Exif ISO tag, Exif.Photo.ISOSpeedRatings. Does not overwrite an existing standard Exif ISO tag.

OPTIONS

-h  Display help and exit.

-V  Show the program version and exit.

-v  Be verbose during the program run.

-b  Show large binary values (default is to suppress them).

-u  Don't show unknown tags.

-k  Preserve file timestamps when updating files (keep). Can be used with all options which update files. The flag is ignored by read-only options.

-t  Set the file timestamp according to the Exif create timestamp in addition to renaming the file (overrides -k). This option is only used with the 'rename' action.

-T  Only set the file timestamp according to the Exif create timestamp, do not rename the file (overrides -k). This option is only used with the 'rename' action. Note: On Windows you may have to set the TZ environment variable for this option to work correctly.

-f  Do not prompt before overwriting existing files (force overwrite).

-F  Do not prompt before renaming files (Force rename). Appends '_1' ('_2', ...) to the name of the new file.

-a time
    Time adjustment in the format [-]HH[:MM[:SS]]. This option is only used with the 'adjust' action. Examples: 1 adds one hour, 1:01 adds one hour and one minute, -0:00:30 subtracts 30 seconds.

-Y yrs
    Time adjustment by a positive or negative number of years, for the 'adjust' action.

-O mon
    Time adjustment by a positive or negative number of months, for the 'adjust' action.

-D day
    Time adjustment by a positive or negative number of days, for the 'adjust' action.

-p mode
    Print mode for the 'print' action. Possible modes are:
    s : print a summary of the Exif metadata (the default)
    t : interpreted (translated) Exif data (shortcut for -Pkyct)
    v : plain Exif data values (shortcut for -Pxgnycv)
    h : hexdump of the Exif data (shortcut for -Pxgnycsh)
    i : IPTC data values
    x : XMP properties
    c : JPEG comment

-P cols
    Print columns for the Exif taglist ('print' action), allows detailed control of the print output. Valid are:
    x : print a column with the tag value
    g : group name
    k : key
    l : tag label
    n : tag name
    y : type
    c : number of components (count)
    s : size in bytes
    v : plain data value
    t : interpreted (translated) data
    h : hexdump of the data

-d tgt
    Delete target(s) for the 'delete' action. Possible targets are:
    a : all supported metadata (the default)
    e : Exif section
    t : Exif thumbnail only
    i : IPTC data
    x : XMP packet
    c : JPEG comment

-i tgt
    Insert target(s) for the 'insert' action. Possible targets are the same as those for the -d option, plus:
    X : Insert XMP packet from <file>.xmp
    Only JPEG thumbnails can be inserted (not TIFF thumbnails), they need to be named file-thumb.jpg.

-e tgt
    Extract target(s) for the 'extract' action. Possible targets are the same as those for the -d option, plus:
    X : Extract XMP packet to <file>.xmp

-r fmt
    Filename format for the 'rename' action. The format string follows strftime(3) and supports the following keywords:
    :basename: - original filename without extension
    :dirname: - name of the directory holding the original file
    :parentname: - name of parent directory
    Default filename format is %Y%m%d_%H%M%S.

-c txt
    JPEG comment string to set in the image ('modify' action). This option can also be used with the 'extract' and 'insert' actions to modify metadata on-the-fly.

-m file
    Command file for the 'modify' action. This option can also be used with the 'extract' and 'insert' actions to modify metadata on-the-fly.

-M cmd
    Command line for the 'modify' action. This option can also be used with the 'extract' and 'insert' actions to modify metadata on-the-fly. The format for the commands is the same as that of the lines of a command file.

-l dir
    Location (directory) for files to be inserted or extracted.

-S .suf
    Use suffix .suf for source files in 'insert' action.

COMMANDS
Commands for the 'modify' action can be read from a command file, e.g.,

   exiv2 -m cmd.txt image.jpg

or given on the command line, as in

   exiv2 -M"add Iptc.Application2.Credit String Mr. Smith" image.jpg

Note the quotes. Multiple -m and -M options can be combined.

When writing Exif, IPTC and XMP metadata, exiv2 enforces only a correct metadata structure. It is possible to write tags with types and values different from those specified in the standards, duplicate Exif tags, undefined tags, or incomplete metadata. While exiv2 is able to read all metadata that it can write, other programs may have difficulties with images that contain non standard-conforming metadata.

  Command format
The format of a command is

set | add | del key [[type] value]

set Set the value of an existing tag with a matching key or add the tag.

add Add a tag (unless key is a non-repeatable IPTC key; nothing prevents you from adding duplicate Exif tags).

del Delete all occurrences of a tag (requires only a key).

key Exiv2 Exif or IPTC key.

type
    Byte | Ascii | Short | Long | Rational | Undefined | SShort | SLong | SRational | Comment for Exif keys,
    String | Date | Time | Short | Undefined for IPTC keys, and
    XmpText | XmpAlt | XmpBag | XmpSeq | LangAlt for XMP keys.

    A default type is used if none is explicitely given. The default is determined based on key.

value
    The remaining text on the line is the value. It can optionally be enclosed in single quotes ('value') or double quotes ("value").

    The format of Exif Comment values includes an optional charset specification at the beginning:

    [charset=Ascii|Jis|Unicode|Undefined ]comment

    Undefined is used by default if the value doesn't start with a charset definition.

    The format for IPTC Date values is YYYY-MM-DD (year, month, day), that for IPTC Time values is HH:MM:SS+|-HH:MM, where HH:MM:SS refers to local hour, minute and seconds and +|-HH:MM refers to hours and minutes ahead or behind Universal Coordinated Time (+|- means either a + or a - sign is required).

    The format of XMP LangAlt values includes an optional language qualifier:

    [lang=language-code ]text

    x-default is used by default if the value doesn't start with a language qualifier.

An additional command is available to register XMP namespaces:

reg prefix namespace

  Command file format
Empty lines and lines starting with # in a command file are ignored (comments). Remaining lines are commands as described above.

EXAMPLES

exiv2 *.jpg
    Prints a summary of the Exif information for all JPEG files in the directory.

exiv2 -pi image.jpg
    Prints the IPTC metadata of the image.

exiv2 rename img_1234.jpg
    Renames img_1234.jpg (taken on 13-Nov-05 at 22:58:31) to 20051113_225831.jpg

exiv2 -r':basename:_%Y%m' rename img_1234.jpg
    Renames img_1234.jpg to img_1234_200511.jpg

exiv2 ex img1.jpg img2.jpg
    Extracts metadata from the two files into files img1.exv and img2.exv.

exiv2 -et img1.jpg img2.jpg
    Extracts the Exif thumbnails from the two files into img1-thumb.jpg and img2-thumb.jpg.

exiv2 -it img1.jpg img2.jpg
    Inserts (copies) metadata from img1.exv to img1.jpg and from img2.exv to img2.jpg.

exiv2 -M"set Exif.Photo.UserComment charset=Ascii New Exif comment" image.jpg
    Sets the Exif comment to an ASCII string.

exiv2 -M"set Exif.GPSInfo.GPSLatitude 4/1 15/1 33/1" \
    -M"set Exif.GPSInfo.GPSLatitudeRef N" image.jpg
    Sets the latitude to 4 degrees, 15 minutes and 33 seconds north. The Exif standard stipulates that the GPSLatitude tag consists of three Rational numbers for the degrees, minutes and seconds of the latitude and GPSLatitudeRef contains either 'N' or 'S' for north or south latitude respectively.

exiv2 insert -l/tmp -S.CRW /data/*.JPG
    Copy all metadata from CRW files in the /tmp directory to JPG files with corresponding basenames in the /data directory. Note that this copies metadata as is, without any modifications to adapt it to the requirements of the target format. Some tags copied like this may not make sense in the target image.

SEE ALSO

http://www.exiv2.org/sample.html#modify
    Sample command files.

http://www.exiv2.org/metadata.html
    Taglists with key and default type values.

AUTHORS
exiv2 was written by Andreas Huggel <ahuggel@gmx.net>.

This manual page was originally written by KELEMEN Peter <fuji@debian.org>, for the Debian project.