Хорошо, благодаря вашему коду я смог решить проблему. Я использовал инструмент разработки под названием Atom Inpector, чтобы убедиться, что структура данных выглядит совершенно иначе, чем фильмы, с которыми я сейчас работаю. Как я уже сказал, я никогда не создавал фильм из изображений, как вы, но кажется, что это не тот путь, если вы хотите иметь фильм потом. QuickTime распознает клип как «Photo-JPEG», поэтому это не обычный файл фильма. Кажется, причина этого в том, что добавленные изображения НЕ добавляются в дорожку фильма, а просто где-то в фильме. Это также можно увидеть с инспектором атома.
С «movieTimeScaleAttribute» вы устанавливаете timeScale, который не используется!
Чтобы решить эту проблему, я чуть-чуть изменил код.
NSDictionary *outputMovieAttribs = [NSDictionary dictionaryWithObjectsAndKeys:@"jpeg",
QTAddImageCodecType, [NSNumber numberWithLong:codecHighQuality],
QTAddImageCodecQuality,[NSNumber numberWithLong:2997], QTTrackTimeScaleAttribute, nil];
QTTime frameDuration = QTMakeTime(100, 2997);
QTMovie *outputMovie = [[QTMovie alloc] initToWritableFile:@"/Users/flo/Desktop/testing.mov" error:nil];
[outputMovie setAttribute:[NSNumber numberWithBool:YES] forKey:QTMovieEditableAttribute];
[outputMovie setAttribute:[NSNumber numberWithLong:2997] forKey:QTMovieTimeScaleAttribute];
Все остальное без изменений.
О, и кстати. Чтобы напечатать timeValue и timeScale, вы также можете сделать:
NSLog(@"new Duration timeScale : %ld timeValue : %lld \n",
[outputMovie duration].timeScale, [outputMovie duration].timeValue);
Таким образом, вы можете лучше видеть, если ваш код работает так, как вам нужно.
Надеюсь, это поможет!
С наилучшими пожеланиями