Как добавить метаданные в видео (.mov) в iOS

Я уже снимаю видео через камеру телефона с AVCaptureMovieFileOutput Объект,

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

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

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

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

Я пытаюсь использовать 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]];

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

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

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

Другие вопросы по тегам