I am trying to copy all metadata from one image to another, including custom exif fields (in this case absolute and relative altitudes present in images from my DJI drone) using the command:

exiftool -tagsfromfile orig.jpg -all:all new.jpg

however only the standard tags are copied:

exiftool -s orig.jpg | grep -i alt

> GPSAltitudeRef                  : Above Sea Level
> AbsoluteAltitude                : -10.68
> RelativeAltitude                : +60.90
> GPSAltitude                     : 60.9 m Above Sea Level

exiftool -s new.jpg | grep -i alt

> GPSAltitudeRef                  : Above Sea Level
> GPSAltitude                     : 60.9 m Above Sea Level

Is there any way to copy all the tags across automatically, or do I have to add them one at a time?

Thanks for your help

2 Answers 2


exiftool -tagsfromfile orig.jpg -exif new.jpg

Edit: See the last few paragraphs of Exiftool FAQ #9. A similar command is mentioned there but unfortunately was inaccurate until today.

  • 1
    perfect - once I figured out which group the custom tags were in (using "exiftool -s -g orig.jpg" - in this case the xmp group), I fixed it using -xmp instead of -exif from your example. Thanks for the help! Jan 13, 2016 at 21:08

As you say, AbsoluteAltitude and RelativeAltitude do not appear to be defined tags. exiftool cannot copy them if it does not know how they are defined. In Phil Harvey's (author of exiftool) answer in this discussion at exiftool's forum, you must create a user-defined tag in order for exiftool to write it.

Please see the exiftool sample config file for details and examples.

  • Thanks for the detailed response - really useful to understand the flexibility offered using a custom config file. Found the solution below this to be a simpler approach for a quick fix though. Jan 13, 2016 at 21:11
  • That's a much better solution! I would much rather just have a simple command line than writing custom tags
    – scottbb
    Jan 13, 2016 at 23:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.