【问题标题】:How to add metaData in video(.mov) in iOS如何在 iOS 的视频(.mov)中添加元数据
【发布时间】:2016-06-02 06:17:24
【问题描述】:

我已经通过手机的摄像头使用AVCaptureMovieFileOutput Object 拍摄了视频,

我想将新的元数据添加到文件中,

我尝试使用AVAssetExportSession 来做到这一点,它有效

但是我猜它花费了很多时间,这个方法已经重新编码了文件,

我只想添加新的元(位置),

我尝试在AVCaptureMovieFileOutput 中使用setMetadata 方法

但我不知道该怎么做,

我试试

元:

AVMutableMetadataItem *newItem = [AVMutableMetadataItem metadataItem];
newItem.identifier = [AVMutableMetadataItem identifierForKey:AVMetadataQuickTimeMetadataKeyLocationISO6709 keySpace:AVMetadataKeySpaceCommon];
newItem.key = AVMetadataQuickTimeMetadataKeyLocationISO6709;
newItem.value = [self gpsStringForVideo:gps];

第一:

[_movieFileOutput setMetadata:@[meta]];
[_movieFileOutput startRecordingToOutputFileURL:outPutUrL recordingDelegate:self];

但我无法得到代表的回应。

然后:

[_movieFileOutput startRecordingToOutputFileURL:outPutUrL recordingDelegate:self];
[_movieFileOutput setMetadata:@[meta]];

我可以正常开始录制,但是输出文件不包含任何信息!

有人有什么建议吗? 谢谢!

【问题讨论】:

  • 嗨,Devin,您找到解决方案了吗?遇到了完全相同的问题

标签: ios xcode avfoundation avmetadataitem


【解决方案1】:

这对我有用:

let metadata = AVMutableMetadataItem()
metadata.keySpace = AVMetadataKeySpaceQuickTimeMetadata
metadata.key = AVMetadataQuickTimeMetadataKeyLocationISO6709 as NSString
metadata.identifier = AVMetadataIdentifierQuickTimeMetadataLocationISO6709
metadata.value = String(format: "%+09.5f%+010.5f%+.0fCRSWGS_84", location.coordinate.latitude, location.coordinate.longitude, location.altitude) as NSString
movieFileOutput.metadata = [metadata]
movieFileOutput.startRecording(toOutputFileURL: temporaryFileUrl(), recordingDelegate: self)

对于 Objective-C,您不需要强制转换为 NSString

【讨论】:

    猜你喜欢
    • 2014-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-01
    • 2012-04-30
    • 2013-02-05
    • 2015-11-03
    相关资源
    最近更新 更多