5

アップルのWWDC 2010サンプルパックのAVEditDemoプロジェクトで再生していますが、書き出したビデオのフレームレートを変更しようとしています。 25に30を変更することがAVAssetExportSessionでエクスポートビデオのframerateを変更しない、いくつかの理由についてAVMutableCompositionのframeDurationを設定する

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

:ビデオはframeDurationがそのように設定されているAVMutableCompositionを使用してエクスポートされます。なぜ誰かがアイデアを持っていますか?

答えて

3

AVAssetExportSessionプリセットがAVVideoCompositionframeDurationよりも優先されるようです。私はAVEditDemoをしようとしませんでしたが、私はiOSの8でこの問題を持っていないよ、でも私はiOSの7の上にそれを持っていなかった :

MonsieurDartの答えを返信

http://openradar.appspot.com/11127156

+0

あなたは知っていますか? – RSully

+0

Appleからのニュースはありません:-( – MonsieurDart

+0

iOS 8またはOS XのYosemiteでテストしましたか? – RSully

4

:私は、バグレポートを開きました。

私は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です