PHAsset 视频 EXIF 元数据检索
Posted
技术标签:
【中文标题】PHAsset 视频 EXIF 元数据检索【英文标题】:PHAsset video EXIF metadata retrieval 【发布时间】:2021-02-23 00:09:30 【问题描述】:目前,我正在为 PHAsset 的图像提取 EXIF 元数据,但对视频没有运气。
对于图像,这对我有用:
let imageOptions = PHImageRequestOptions()
imageOptions.isNetworkAccessAllowed = true
imageOptions.isSynchronous = true
imageOptions.version = .current
PHImageManager.default().requestImageDataAndOrientation(for: self.asset!, options: imageOptions) (data, responseString, orientation, info) in
if let imageData: Data = data
if let imageSource = CGImageSourceCreateWithData(imageData as CFData, nil)
let imageProperties = CGImageSourceCopyPropertiesAtIndex(imageSource, 0, nil)! as NSDictionary
)
我需要进行哪些更改才能检索视频资产的元数据?
self.asset!.mediaType == .video
更新
在第一个答案之后,我尝试学习: https://developer.apple.com/documentation/avfoundation/media_assets_and_metadata/retrieving_media_metadata
到目前为止,我仍然无法理解这个概念。我试过了:
let formatsKey = "availableMetadataFormats"
asset.loadValuesAsynchronously(forKeys: [formatsKey])
var error: NSError? = nil
let status = asset.statusOfValue(forKey: formatsKey, error: &error)
if status == .loaded
for format in asset.availableMetadataFormats
let metadata = asset.metadata(forFormat: format)
print (metadata)
我无法提取 PHImageManager.default().requestAVAsset
中的任何内容,结果为空。
我需要的是视频 fps/编解码器/声音(立体声或单声道)/色彩空间。这就对了。我能够到达某个地方:
if let videoTrack = asset.tracks(withMediaType: .video).first
let videoFormatDescription = videoTrack.formatDescriptions.first as! CMVideoFormatDescription
print (videoFormatDescription)
在CMVideoFormatDescription
中,似乎大多数必需的属性都存在,但目前我无法提取它们。
【问题讨论】:
“目前,我正在为 PHAsset 提取图像的 EXIF 元数据,但对图像不满意”不清楚。其中一个词应该是“视频”吗? 确实如此。已更正。 【参考方案1】:致电requestAVAsset(forVideo:options:resultHandler:)
。现在你有一个 AVAsset。它具有 metadata
和 commonMetadata
属性,您可以参加比赛。
【讨论】:
文档中有很好的讨论:developer.apple.com/documentation/avfoundation/… 我试图利用“元数据”的主要原因是获取 EXIF 信息,例如 fps、色彩空间、比特率等。通过阅读这些链接,所有这些似乎都遍布各处. 好吧,标准的 exif 并不像照片那样适用于视频。因此,API 为您提供了它拥有的元数据。有多种格式,这就是为什么您首先要了解甚至存在哪些格式,developer.apple.com/documentation/avfoundation/avmetadataformat。正如我所说,文档在这方面做得很好。 在尝试完成此操作时仍然遇到问题。 OP 已更新。以上是关于PHAsset 视频 EXIF 元数据检索的主要内容,如果未能解决你的问题,请参考以下文章
为啥 PHAsset creationDate 与 exif 元数据不同?