是啥让一些 EXIF 标签不可写?

Posted

技术标签:

【中文标题】是啥让一些 EXIF 标签不可写?【英文标题】:What makes some EXIF tags non-writable?是什么让一些 EXIF 标签不可写? 【发布时间】:2019-02-10 18:45:04 【问题描述】:

某些 EXIF 标签,例如here 列出的许多 QuickTime 标签,是普通 EXIF 编辑器不可写的。

This list 的可写与不可写由 Phil Harvey 的 exiftool 维护,但我发现尝试使用 MetaClean 等其他工具编辑相同标签的类似结果。我对这些标签的编辑不会持续存在,并且当我重新加载文件时会返回原始值。

这是为什么呢?某个标签使它无法编辑怎么办,有没有手动的方法来覆盖它?

【问题讨论】:

此类工具这样做是为了防止意外后果。例如,更改 ISO 映像的标签会使映像变得无用。没有什么能阻止任何人编写删除或更改标签的 EXIF 工具。 我在下面接受了一个有用的答案,如果有帮助,这就是我如何满足我的特定需求(擦洗一些与个人身份相关的 iTunes 相关的QuickTime 标签):在 Sublime Text 中打开音频文件,搜索我从 exiftool 知道的 HEX 编码值(请注意,您需要每 4 个 HEX 字符插入空格),然后用 0s 覆盖。 【参考方案1】:

首先,您链接的标签不是 EXIF 标签,它们是 Quicktime 标签。 EXIF 只是所有类型元数据的一个常见但狭窄的子集。对不起,我是一个迂腐的混蛋。

对于 exiftool,尤其是视频文件,这些标签的标准和格式,正如 Phil Harvey(exiftool 作者)所说,完全是一团糟。各种程序和相机如何实现此类元数据显然存在很多差异。 Phil 觉得他没有时间解决所有不同的差异和边缘情况。举个例子,他最近开始在视频文件中添加对 gps 轨道的读取支持。这最终膨胀到不得不支持超过 20 种不同的 geotracks。这只是为了阅读。

后续:从 exiftool 版本 11.39 开始,a number 中更有用的标签已变为可写。 Exiftool 现在将它们列在组 ItemList 而不是 Quicktime 下,尽管它们仍然是 Quicktime 组的一部分。

【讨论】:

谢谢。这很有帮助,你说得对:我曾认为 EXIF 是大多数元数据类型的总称,但现在我明白它是一个不同的子集。 编写元数据主要意味着重建整个文件,即使您成功解析现有文件元数据格式也可能非常痛苦。大多数 ExifTool 用户不会理解修补一个元数据值(保留相同数量的字节)总是有效的。

以上是关于是啥让一些 EXIF 标签不可写?的主要内容,如果未能解决你的问题,请参考以下文章

是啥让用户定义的类不可散列?

是啥让一个指向页表条目的指针数组比拥有一个页表条目数组更好?

Project loom:是啥让使用虚拟线程时性能更好?

是啥让 ES6 如此特别?

是啥让 <button> 元素上的文本垂直居中?

是啥让 <button> 元素上的文本垂直居中?