exiv2 - Online in the Cloud

This is the command exiv2 that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

PROGRAM:

NAME


exiv2 - Image metadata manipulation tool

SYNOPSIS


exiv2 [options] [action] file ...

DESCRIPTION


exiv2 is a program to read and write Exif, IPTC, XMP metadata and image comments and can
read many vendor makernote tags. The program optionally converts between Exif tags, XMP
properties and IPTC datasets as recommended by the Exif Standard, the IPTC Standard, the
XMP specification and Metadata Working Group guidelines.
The following image formats are supported:

Type Exif IPTC XMP Image comments
─────────────────────────────────────────────────────────────
JPEG Read/Write Read/Write Read/Write Read/Write
EXV Read/Write Read/Write Read/Write Read/Write
CR2 Read/Write Read/Write Read/Write -
CRW Read/Write - - Read/Write
MRW Read Read Read -
TIFF Read/Write Read/Write Read/Write -
DNG Read/Write Read/Write Read/Write -
NEF Read/Write Read/Write Read/Write -
PEF Read/Write Read/Write Read/Write -
ARW Read Read Read -
RW2 Read Read Read -
SR2 Read Read Read -
SRW Read/Write Read/Write Read/Write -
ORF Read/Write Read/Write Read/Write -
PNG Read/Write Read/Write Read/Write Read/Write
PGF Read/Write Read/Write Read/Write Read/Write
RAF Read Read Read -
EPS - - Read/Write -
XMP - - Read/Write -
GIF - - - -
PSD Read/Write Read/Write Read/Write -
TGA - - - -
BMP - - - -
JP2 Read/Write Read/Write Read/Write -

· Support for GIF, TGA and BMP images is minimal: the image format is recognized, a MIME
type assigned to it and the height and width of the image are determined.

· Reading other TIFF-like RAW image formats, which are not listed in the table, may also
work.

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 sidecar (*.xmp) and thumbnail image files.
Modification commands can be applied on-the-fly.

in | insert
Insert metadata from corresponding *.exv, XMP sidecar (*.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.

fc | fixcom
Fix the character encoding of Exif Unicode user comments. Decodes the comment
using the auto-detected or specified character encoding and writes it back in
UCS-2. Use option -n to specify the current encoding of the comment if necessary.

COMMAND SUMMARY


exiv2 [ opt [arg] ]+ [ act ] file ...

option [arg] long option description
-a tim --adjust Modify time stamps. [+|-]HH[:MM[:SS[.mmm]]]
-b --binary Show large binary values (default is to suppress them).
-c txt --comment JPEG comment string to set in the image ('modify' action). ...
-d tgt --delete Delete target(s) for the 'delete' action. ...
-D +-n --days Time adjustment by a positive or negative number of days ...
-e tgt --extract Extract target(s) for the 'extract' action.
-f --force Do not prompt before overwriting existing files ...
-F --Force Do not prompt before renaming files (Force rename) ...
-g key --grep Only output info for this Exiv2 key (grep).
-h --help Display help and exit.
-i tgt --insert Insert target(s) for the 'insert' action. ...
-k --keep Preserve file timestamps when updating files (keep)
-K Key --key Report key. Similar to -g (grep) however key must match exactly.
-l dir --location Location (directory) for files to be inserted or extracted.
-m file --modify read commands from cmd-file
-M cmd --Modify Command line for the 'modify' action. ...
-n enc --encode Charset to decode Exif Unicode user comments. See: man 3 iconv_open
-O +-n --months Time adjustment by a positive or negative number of months, ...
-p mod --print Print report (common reports)
-P flg --Print Print report (fine grained control)
-q --quiet Silence warnings and error messages from the Exiv2 library ...
-Q lvl --log Set the log-level to 'd'(ebug), 'i'(nfo), 'w'(arning), 'e'(rror)
-r fmt --rename Filename format for the 'rename' action. ...
-S suf --suffix Use suffix .suf for source files for insert command.
-t --timestamp Set the file timestamp according to the Exif create timestamp ...
-T --Timestamp Only set the file timestamp according to Exif create timestamp ...
-u --unknown Show unknown tags ...
-v --verbose verbose
-V --version Show the program version and exit.
-Y +-n --years Time adjustment by a positive or negative number of years ...

act pr | ex | in | rm | ad | mo | mv | fi | fc
print, extract, insert, delete, adjust, modify, rename, fixiso,fixcom

cmd See "Commands" below.

flg E | I | X | x | g | k | l | n | y | c | s | v | t | h
Exif , IPTC, XMP, num, grp, key, label, name , type, count, size, vanilla, translated, hex

fmt Default format is %Y%m%d_%H%M%S.

lvl d | i | i | w | e
debug, info, warning, error

mod s | a | t | v | h | i | x | c | p | i | S | X :
summary, add, translated, vanilla, hex ...
iptc ,xmp, comment, preview, Structure,XMP raw

tgt a | c | e | i | t | x
all, comment, exif, iptc, thumb, xmp

OPTIONS


-h Display help and exit.

-V Show the program version and exit.
When -V is combined with -v (Verbose version), build information is printed to
standard output along with a list of shared libraries which have been loaded into
memory. Verbose version is supported on Windows (MSVC, Cygwin and MinGW builds),
MacOSX and Linux and is provided for test and debugging.

-v Be verbose during the program run.

-q Silence warnings and error messages from the Exiv2 library during the program run
(quiet). Note that options -v and -q can be used at the same time.

-Q lvl Set the log-level to 'd'(ebug), 'i'(nfo), 'w'(arning), 'e'(rror) or 'm'(ute). The
default log-level is 'w'. -Qm is equivalent to -q. All log messages are written to
standard error.

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

-u Show unknown tags (default is to suppress tags which don't have a name).

-g key Only keys which match the given key (grep).
Multiple -g options can be used to grep info for several keys. This option uses
the system regular expression engine: see man 3 regex. Platforms which do not
support regex use key for a substring match. You can determine the availability of
regex using the command: exiv2 -v -V -g have_regex

exiv2 -g Date -pt R.jpg
Exif.Image.DateTime Ascii 20 2012:08:07 16:01:05
Exif.Photo.DateTimeOriginal Ascii 20 2011:09:18 16:25:48
Exif.Photo.DateTimeDigitized Ascii 20 2011:09:18 16:25:48

-K key Only report data for given key.
Multiple -K options can be used to report more than a single key.

exiv2 -K Exif.Photo.DateTimeDigitized -K Exif.Photo.DateTimeOriginal -pt R.jpg
Exif.Photo.DateTimeOriginal Ascii 20 2011:09:18 16:25:48
Exif.Photo.DateTimeDigitized Ascii 20 2011:09:18 16:25:48

-n enc Charset to use to decode Exif Unicode user comments. enc is a name understood by
iconv_open(3), e.g., 'UTF-8'.

-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)
a : print Exif, IPTC and XMP metadata (shortcut for -Pkyct)
t : interpreted (translated) Exif tags (-PEkyct)
v : plain Exif tag values (-PExgnycv)
h : hexdump of the Exif data (-PExgnycsh)
i : IPTC datasets (-PIkyct)
x : XMP properties (-PXkyct)
c : JPEG comment
p : list available image previews, sorted by preview image size in pixels
S : print image structure information (jpg, png and tiff only)
X : print "raw" XMP (jpg, png and tiff only)

-P flgs
Print flags for fine control of the tag list ('print' action). Allows control of
the type of metadata as well as data columns included in the print output. Valid
flags are:
E : include Exif tags in the list
I : IPTC datasets
X : XMP properties
x : print a column with the tag number
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 an optional modifier:

X : Insert metadata from an XMP sidecar file <file>.xmp. The remaining insert
targets determine what metadata to insert from the sidecar file. Possible are Exif,
IPTC and XMP and the default is all of these. Note that the inserted XMP properties
include those converted to Exif and IPTC.
This is option is intended for "filter" operations on the XMP such as:
$ exiv2 -e{tgt}- filename | xmllint .... | exiv2 -i{tgt}- filename

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 a target to extract preview images and a modifier to
generate an XMP sidecar file:
p[<n>[,<m> ...]] : Extract preview images. The optional comma separated list of
preview image numbers is used to determine which preview images to extract. The
available preview images and their numbers are displayed with the 'print' option
-pp.

X : Extract metadata to an XMP sidecar file <file>.xmp. The remaining extract
targets determine what metadata to extract to the sidecar file. Possible are Exif,
IPTC and XMP and the default is all of these.

- : Output sidecar file to stdout (see -i tgt for example)

-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, and a non-standard XMP
namespace registered.

exiv2 -M"reg myprefix http://ns.myprefix.me/" -M"add Xmp.myprefix.Whom Mr. Smith" -M"set Exif.Image.Artist Mr. Smith" image.jpg

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, IPTC or XMP 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 explicitly 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 value is optional. Not providing any value is equivalent to an empty value ("")
and is mainly useful to create an XMP array property, e.g., a bag.

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 an IPTC Date value is:
YYYY-MM-DD (year, month, day)

The format for an IPTC Time value is:
HH:MM:SS (hours, minutes, seconds)
and may optionally be followed by:
-HH:MM or +HH:MM (hours, minutes ahead/behind UTC)

The format of Rational (and SRational) is one of:
integer
integer-numerator/integer-denominator
Fnumber
fnumber

Rational Examples:
exiv2 "-Mset Exif.Photo.MaxApertureValue 557429/62500" X.jpg
exiv2 "-Mset Exif.Photo.MaxApertureValue F5.6" X.jpg

The Rational format Fnumber (or fnumber) is for the convenience of setting aperture
values. Aperture values are stored in Exif is an APEX value which can be evaluated
by the expression:

apex-value = log(Fnumber) * 2.0 / log(2.0)
Fnumber = exp(apex-value * log(2.0) / 2.0)

The Rational format Fnumber is valid for any Rational, even when the key is not an
Aperture. More information about APEX value is available from:
http://en.wikipedia.org/wiki/APEX_system

The format of XMP LangAlt values includes an optional language qualifier:
lang="language-code" text

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

exiv2 -M'set Xmp.dc.title lang="de-DE" Euros' X.jpg
exiv2 -M'set Xmp.dc.title lang="en-GB" Pounds' X.jpg
exiv2 -M'set Xmp.dc.title lang="en-US" In God We Trust' X.jpg
exiv2 -M'set Xmp.dc.title All others pay cash' X.jpg

To remove a language specification, set the value to '' (empty string)
exiv2 -M'set Xmp.dc.title lang="en-US"' X.jpg

To remove all language specifications, delete the key:
exiv2 -M'del Xmp.dc.title' X.jpg

To register additional XMP namespaces, combine the command with:

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 -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 -ep1,2 image.jpg
Extracts previews 1 and 2 from the image to the files image-preview1.jpg and
image-preview2.jpg.

exiv2 -eiX image.jpg
Extracts IPTC datasets into an XMP sidecar file image.xmp and in the process
converts them to "IPTC Core" XMP schema.

exiv2 -iixX image.jpg
Inserts IPTC and XMP metadata from an XMP sidecar file image.xmp into image.jpg.
The resulting IPTC datasets are converted from the "IPTC Core" XMP schema
properties in the sidecar file to the older IPTC IIM4 format. The inserted XMP
properties include those in the "IPTC Core" XMP schema.

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.

Use exiv2 online using onworks.net services



Latest Linux & Windows online programs