【发布时间】:2020-09-10 21:18:32
【问题描述】:
我正在尝试将一些 XMP 元数据附加到我使用 AVAssetExportSession 导出的 QuickTime 视频中。
AVFoundation 确实支持写入元数据 (AVMetadataItem),并且我已成功导出简单值,随后可以使用 exiftool 进行检查:
AVMutableMetadataItem *item = [AVMutableMetadataItem metadataItem];
item.identifier = [AVMetadataItem identifierForKey:AVMetadataCommonKeyTitle keySpace:AVMetadataKeySpaceCommon];
item.value = @"My Title";
exportSession.metadata = @[item];
但我无法配置我的 AVMetadataItem 以正确编码 XMP。根据Adobe XMP spec,QuickTime 视频中的 XMP 应该在 moov / udta / XMP_ 原子下,但我看不到使用 AVFoundation API 或任何对应的键空间制作分层元数据的方法到这部分元数据。
我还需要将 XMP 元数据写入图像,图像 I/O 确实对此有直接支持 (CGImageMetadataCreateFromXMPData),但我在 AVFoundation 中找不到任何等效项。
如果无法使用 AVFoundation(或类似的),我可能会考虑集成 XMP-Toolkit-SDK,但是当 AVFoundation几乎似乎可以满足我的需要时,这感觉就像一个笨拙的解决方案。 p>
【问题讨论】:
标签: ios avfoundation metadata quicktime xmp