ffprobe:如何获取创建日期的时区?

ffprobe:如何获取创建日期的时区?

[在 StackOverflow 上发帖,然后我意识到这是一个更好的去处]

我有一段用佳能相机(实际上是 PowerShow G5Xm2)拍摄的视频,拍摄时间为2022:08:28 11:25:09-04:00

我想提取创建日期元数据,我发现我可以使用以下命令查看它:

$ ffprobe -i myfile.MP4 -show_entries stream_tags
[.....]
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'myfile.MP4':
  Metadata:
    major_brand     : mp42
    minor_version   : 1
    compatible_brands: mp42avc1CAEP
    make            : 
    make-eng        : 
    model           : 
    model-eng       : 
    creation_time   : 2022-08-28T15:25:09.000000Z
  Duration: 00:00:53.96, start: 0.000000, bitrate: 29939 kb/s
  Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuvj420p(pc, bt709), 1920x1080, 29639 kb/s, 25 fps, 25 tbr, 25k tbn, 50k tbc (default)
    Metadata:
      creation_time   : 2022-08-28T15:25:09.000000Z
      vendor_id       : [0][0][0][0]
  Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 253 kb/s (default)
    Metadata:
      creation_time   : 2022-08-28T15:25:09.000000Z
      vendor_id       : [0][0][0][0]
[STREAM]
TAG:creation_time=2022-08-28T15:25:09.000000Z
TAG:language=eng
TAG:vendor_id=[0][0][0][0]
[/STREAM]
[STREAM]
TAG:creation_time=2022-08-28T15:25:09.000000Z
TAG:language=eng
TAG:vendor_id=[0][0][0][0]
[/STREAM]

创建日期采用 UTC ( 2022-08-28T15:25:09.000000Z) 格式%Y-%m-%dT%H:%M:%S.%fZ。相机有时区信息,实际上它将本地时间转换为 UTC 时间,因此我认为 MP4 应该将时区信息隐藏在某处。

我怎么看呢?

exiftool可以2022:08:28 11:25:09-04:00使用标志以本地+tz 格式(如)显示日期/时间-API QuickTimeUTC。这意味着 tz 信息位于 mp4 的某个位置。如何使用 ffprobe 获取 tz 信息?

编辑:这是一个短视频文件

答案1

尽管它确实似乎ffprobe没有导出 ExifIFD(即使ffprobe -export_all 1 -show_format -- "${file}.mp4"),提及. 如有其他情况,请说明。


exiftool, 然而:

$ exiftool  -a -s -G0:1 -- "${file}.mp4" | grep 'OffsetTime';
[EXIF:ExifIFD]  OffsetTime                      : -04:00
[EXIF:ExifIFD]  OffsetTimeOriginal              : -04:00
[EXIF:ExifIFD]  OffsetTimeDigitized             : -04:00

0x9010 OffsetTime          string ExifIFD (time zone for ModifyDate)
0x9011 OffsetTimeOriginal  string ExifIFD (time zone for DateTimeOriginal)
0x9012 OffsetTimeDigitized string ExifIFD (time zone for CreateDate)

来源:https://exiftool.org/TagNames/EXIF.html


这些是标准视频时间戳,属于 Quicktime 组。根据标准,这些时间戳应该采用 UTC 时间,但是否采用 UTC 时间则取决于您,具体取决于您使用什么软件来处理文件。Adobe 程序会将这些标签读取为本地时间,与 jpg 或 RAW 文件相同。Windows 和 Google Photos 会根据规范将它们读取为 UTC 时间。因此,具体怎么做取决于您。

来源:https://exiftool.org/forum/index.php?topic=11100.msg59329#msg59329

简而言之,MP4 标准以 UTC 记录时间。没有时区规定。如果设备(如手机)知道自己所处的时区,它会将时间记录为 UTC。如果设备不知道自己所处的时区(例如我的相机),它会将时间记录为设备当前设置的任何时间。

来源:https://github.com/drewnoakes/metadata-extractor/issues/529


有关的:
我只需要更改 mp4 中的编码日期
我如何修改 mp4 文件的编码时间?
您应该了解存储在元数据中的日期/时间值之间的差异......

相关内容