6

AVEditDemoApple のサンプル パックのプロジェクトで遊んでいてWWDC 2010、エクスポートされたビデオのフレーム レートを変更しようとしています。ビデオはAVMutableComposition、frameDuration が次のように設定されている を使用してエクスポートされます。

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

framerate何らかの理由で、30 を 25 に変更しても、 でエクスポートされたビデオのは変更されませんAVAssetExportSession。誰かが理由を知っていますか?

4

3 に答える 3

5

MonsieurDart の回答への返信: 試したAVEditDemoことはありませんが、iOS 8 ではこの問題は発生していません。

を使用して、 videoCompositionAVMutableVideoCompositionとして設定しています。AVAssetExportSession's

.
.
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アセットから作成されます

于 2014-10-27T12:46:29.893 に答える
4

AVAssetExportSessionプリセットよりも優先されるようですAVVideoComposition frameDuration。バグレポートを開きました:

http://openradar.appspot.com/11127156

于 2012-03-27T08:10:53.600 に答える