[FFmpeg-user] filter ffmetadata does not output all metadata and is missing in documentation

Moritz Barsnick barsnick at gmx.net
Wed Mar 4 13:10:06 EET 2020

Hallo Ulf,

On Wed, Mar 04, 2020 at 01:51:37 +0100, Ulf Zibis wrote:
> Even with normal transcoding "creation_time" is listed in the OUTPUT
> metadata, but in the resulting output file it is missing.

Interesting and slightly annoying fact: All metadata that is passed to
encoder and muxer is listed. Yet it is up to encoder and muxer, which
of these are actually used. (E.g. as far as I understand, MOV/MP4 has a
limited set of what can be used.)

> >>      ffmpeg: dont copy creation_time as the destination file is not created at that time
> Linux command "mediainfo" distinguishes between "Encoded date" and
> "Tagged date", don't know which is meant to be "creation_time".
> In jpeg EXIF we find "DateTimeOriginal" and "DateTimeDigitized".

Perhaps this could be documented somewhere, but I don't personally
care, in this case.

> > Trac ticket cause: http://trac.ffmpeg.org/ticket/1439
> That may make sense for normal transcoding, but not for:
> ffmpeg -i INPUT.mp4 -f ffmetadata INPUT.meta

In all honesty - also for some other "info" filters and muxers -
information *dumping* should happen at input level, not at output.
That's why ffprobe was mentioned.

On the other hand, in terms of passing on to output, that's of course a
different matter. At least this muxer helped you to notice that this
specific metadata does *not* arrive at the output.

> But how to transfer it to the output video?

Since it's explicitly filtered: Have you tried adding it explicitly,
from the command line?
$ ffmpeg [...] -metadata creation_time=2020-03-04T10:38:45.000000Z [...]

Actually, a quick Google search(!) shows me that there's an option for
passing it from the input:
$ ffmpeg [...] -map_metadata 0:g [...]
and it seems to work for me.


More information about the ffmpeg-user mailing list