设置AVMutableComposition的frameDuration

我正在使用Apple的WWDC 2010样本包中的AVEditDemo项目,我正在尝试更改导出video的帧速率。 使用AVMutableComposition导出video,其中frameDuration的设置如下:

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

出于某种原因,将30更改为25不会更改使用AVAssetExportSession导出的video的framerate 。 有谁知道为什么?

似乎AVAssetExportSession预设优先于AVVideoComposition frameDuration 。 我已经打开了一个错误报告:

http://openradar.appspot.com/11127156

回答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