Сохранение произвольных метаданных в файле QuickTime с помощью AVCaptureMovieFileOutput и AVMutableDataItems

Все:

Я записываю фильм, используя AVCaptureMovieFileOutput. Поскольку происходят различные события, я хочу сохранить название/время события в записываемом фильме QuickTime. Таким образом, у меня может быть 20-30 точек данных, которые я хочу связать с конкретным фильмом.

Моя стратегия заключается в использовании метаданных, но мне не очень повезло. Может кто-нибудь, пожалуйста, скажите мне, прежде всего:

а) Могу ли я хранить произвольные метаданные или только те ключи и значения, которые определены в AVMetadataFormat.h? Я хотел бы иметь возможность хранить массив.

б) Если я могу сохранить произвольный массив, какой ключ поможет? Если нет, могу ли я хранить свои метаданные в поле комментария (некрасиво, но я мог достаточно быстро разобрать 20-30 пунктов).

c) Показанный ниже код не работает, так как независимо от того, что я ввел для item.key (AVMetadataQuickTimeMetadataKeyArtist, AVMetadataCommonKeyArtist или всевозможные другие вещи, оканчивающиеся на Artist), я никогда ничего не вижу в окне Get Info iTunes.

    - (IBAction)recordEvent:(id)sender {

NSLog(@"Record a metadata point here ...");

// is there any metadata associated with the file yet?
NSArray * existingMetaData = self.aMovieFileOutput.metadata;
NSMutableArray * newMetadataArray = nil;
if(existingMetaData){
    newMetadataArray = [existingMetaData mutableCopy];
} else {
    newMetadataArray = [[NSMutableArray alloc]init];
}

AVMutableMetadataItem * item = [[AVMutableMetadataItem alloc]init];

item.keySpace = AVMetadataKeySpaceCommon;
item.key = AVMetadataQuickTimeMetadataKeyArtist;

item.value = @"Enya, really!"; // in practice this will be the title of (UIButton *)sender

item.time = CMTimeMake(0.0,1.0);

[newMetadataArray addObject:item];
self.aMovieFileOutput.metadata = newMetadataArray;

}

Мы будем очень признательны за любые советы.

Спасибо!


person Michael Rogers    schedule 25.11.2011    source источник
comment
Ты когда-нибудь продвинулся в этом, Майкл? Я пытаюсь вставить маркеры глав, которые, как я полагаю, также являются метаданными, но мне тоже не очень повезло.   -  person Sean McMains    schedule 10.05.2013


Ответы (1)


Сохранение метаданных в файле QuickTime через AVCaptureMovieFileOutput и AVMutableDataItems позволяет хранить только значения для ключей, предопределенных в пространстве ключей AVMetadataKeySpaceCommon, т.е. е. AVMetadataCommonKey* как ключи

Все остальные данные игнорируются

person voromax    schedule 29.03.2012