Установка AVMutableComposition's frameDuration - PullRequest
5 голосов
/ 15 марта 2012

Я играю с проектом AVEditDemo, из пакета WWDC 2010 от Apple, и пытаюсь изменить частоту кадров экспортируемого видео.Видео экспортируется с использованием AVMutableComposition, для которого frameDuration установлена ​​следующим образом:

videoComposition.frameDuration = CMTimeMake(1, 30); // 30 fps

По некоторым причинам, изменение 30 на 25 не меняет framerate видео, экспортированного с AVAssetExportSession.У кого-нибудь есть идеи почему?

Ответы [ 3 ]

4 голосов
/ 27 октября 2014

отвечая MonsieurDart ответ: Я не пробовал AVEditDemo, но у меня нет этой проблемы на iOS 8 и не было на iOS 7.

Я использую AVMutableVideoComposition и устанавливаю его как AVAssetExportSession's videoComposition.

.
.
AVMutableVideoCompositionInstruction * instruction = [AVMutableVideoCompositionInstruction videoCompositionInstruction];
AVMutableVideoCompositionLayerInstruction *layerInstruction = [AVMutableVideoCompositionLayerInstruction videoCompositionLayerInstructionWithAssetTrack:videoTrack];
AVMutableVideoComposition *compositionInstruction = [AVMutableVideoComposition videoComposition];
compositionInstruction.instructions = @[instruction];
compositionInstruction.frameDuration = CMTimeMake(1, 30);
.
.    
AVAssetExportSession *exporter = [[AVAssetExportSession alloc] initWithAsset:composition AVAssetExportPresetHighestQuality];
exporter.videoComposition = compositionInstruction;

, где videoTrack - это AVMutableCompositionTrack, созданный из ресурса

4 голосов
/ 27 марта 2012

Похоже, что пресет AVAssetExportSession имеет приоритет над AVVideoComposition frameDuration. Я открыл сообщение об ошибке:

http://openradar.appspot.com/11127156

0 голосов
/ 02 июля 2019

Клиент может установить sourceTrackIDForFrameTiming на kCMPersistentTrackID_Invalid и frameDuration на соответствующее значение, чтобы указать максимальную частоту кадров на выходе независимо от синхронизации исходного трека.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...