2016-06-02 3 views
2

я уже снимать видео с помощью камеры телефона с AVCaptureMovieFileOutput Object,Как добавить метаданные в видео (.mov) в прошивкой

Я хочу, чтобы добавить новые мета-данные в файл,

Я пытаюсь использовать AVAssetExportSession для сделайте это, это работы!

но это стоило много времени, я думаю, этот метод имеет перекодировать файл,

Я просто хочу, чтобы добавить новую мету (Location),

Я пытаюсь использовать setMetadata метод в AVCaptureMovieFileOutput

Но я не имею ни малейшего представления о том, как сделать так,

стараюсь

мета:

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]]; 

я могу начать запись нормально, но выходной файл не содержит никакой информации!

У кого-нибудь есть предложения? Спасибо!

+0

Привет, Девин, вы найдете решение для этого? встретились с одной и той же проблемой – armnotstrong

ответ

0

Это работает для меня:

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