5

我在使用來自Apple的WWDC 2010樣本包的AVEditDemo項目,並試圖更改導出視頻的幀頻。該視頻是使用在其上frameDuration設置這樣一個AVMutableComposition出口:設置AVMutableComposition的幀持續時間

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

出於某種原因,改變了30〜25不改變與AVAssetExportSession輸出視頻的framerate。有沒有人有一個想法,爲什麼?

回答

3

看起來AVAssetExportSession預設優先於AVVideoCompositionframeDuration。我已經開了一個bug報告:

http://openradar.appspot.com/11127156

+0

你知道,如果這已定? – RSully 2014-04-12 21:28:53

+0

Apple沒有消息... :-( – MonsieurDart 2014-09-15 21:29:18

+0

你在iOS 8或OS X Yosemite上測試過嗎? – RSully 2014-09-21 15:24:34

4

回答MonsieurDart的回答是: 我沒有嘗試的AVEditDemo,但我並沒有在iOS 8這個問題,我也沒有把它在iOS 7。我正在使用AVMutableVideoComposition並將其設置爲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

相關問題