[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