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

James Darnley james.darnley at gmail.com
Wed Mar 4 12:41:17 EET 2020


On 2020-03-04 01:51, Ulf Zibis wrote:
> 
> Am 04.03.20 um 00:34 schrieb James Darnley:
>> On 2020-03-04 00:16, James Darnley wrote:
>>> It is clearly present in the input file's metadata so how is it not
>>> copied into the output file?
> 
> Even with normal transcoding "creation_time" is listed in the OUTPUT
> metadata, but in the resulting output file it is missing.

I think the answer to that is shown in a previous log.

> $ ~/Projects/ffmpeg/ffmpeg-git-20200211-amd64-static/ffmpeg -i
> 20200205_165401.mp4 -f ffmetadata 20200205_165401.meta

> Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '20200205_165401.mp4':
>   Metadata:
>     major_brand     : mp42
>     minor_version   : 0
>     compatible_brands: isommp42
>     creation_time   : 2020-02-05T19:55:01.000000Z
>     location        : -00.7655-047.1715/
>     location-eng    : -00.7655-047.1715/
>     com.android.version: 8.0.0
>   Duration: 00:00:58.65, start: 0.000000, bitrate: 17273 kb/s

>     Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661),
> yuv420p(tv, bt709), 1920x1080, 17013 kb/s, SAR 1:1 DAR 16:9, 29.99 fps,
> 30 tbr, 90k tbn, 180k tbc (default)
>     Metadata:
>       creation_time   : 2020-02-05T19:55:01.000000Z
>       handler_name    : VideoHandle

>     Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz,
> stereo, fltp, 256 kb/s (default)
>     Metadata:
>       creation_time   : 2020-02-05T19:55:01.000000Z
>       handler_name    : SoundHandle

> File '20200205_165401.meta' already exists. Overwrite? [y/N] y
> Output #0, ffmetadata, to '20200205_165401.meta':
>   Metadata:
>     major_brand     : mp42
>     minor_version   : 0
>     compatible_brands: isommp42
>     com.android.version: 8.0.0
>     location        : -00.7655-047.1715/
>     location-eng    : -00.7655-047.1715/
>     encoder         : Lavf58.38.100
> Stream mapping:
> Press [q] to stop, [?] for help
> size=       0kB time=-577014:32:22.77 bitrate=N/A speed=N/A
> video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
> muxing overhead: unknown
> Output file is empty, nothing was encoded 

The *other* creation time metadata is on the streams.  The ffmetadata
output file has no streams.  Therefore it has no stream metadata

I have no idea if you can change that.

>> 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

You're probably right.

>> I would say: use ffprobe to get the metadata of files.
> 
> But how to transfer it to the output video?

Modify ffmpeg to remove the line I showed before, currently in
fftools/ffmpeg_opt.c at line 2608.

Or get o->metadata_global_manual to be false.  You seem to be able to do
that with -map_metadata 0 but I thought that was the default anyway.

I manually added creation_time to a file, used that as input for an
ffmetadata output and sure enough, there it was.  To which I said "what
the flaming fuck".



More information about the ffmpeg-user mailing list