如何删除AVExportSession的AVMetadata

时间:2018-07-03 01:54:40

标签: ios swift avfoundation

我正在 swift 4 中进行一些简短的视频编辑,使用NA阅读视频,然后使用 z <- factor(z, levels = c(NA, "A", "B", "C")) levels(z) # "A" "B" "C" 导出结果。除了一件事之外,其他所有东西都工作正常:结果视频保留了原始视频的元数据。 该元数据包括(例如)视频的拍摄时间和位置。 我看到AVAsset()有一个AVExportSession属性,但是我不知道如何使用它。我将其设置为AVExportSession,但它不起作用,它仍然保留旧的元数据。 我阅读了apple's documentation的相关内容,并说您不创建实例,也不能修改元数据项,那该怎么办?如何删除该元数据或向其中写入新生成的元数据? 有关读取元数据的信息很多,但有关编写元数据的信息却很少。

谢谢。

附加链接 https://developer.apple.com/documentation/avfoundation/avassetexportsession

1 个答案:

答案 0 :(得分:2)

您可以使用AVMetadataItemFilter.forSharing()过滤元数据。 根据规范:Removes user-identifying metadata items, such as location information and leaves only metadata releated to commerce or playback itself.(请参阅https://developer.apple.com/documentation/avfoundation/avmetadataitemfilter/1387905-forsharing

只需将其添加到您的导出会话中:

let exportSession = AVExportSession() // choose your appropriate init
exportSession.metadataItemFilter = AVMetadataItemFilter.forSharing()