5

Gram w projekcie AVEditDemo z przykładowego pakietu Apple WWDC 2010 i próbuję zmienić liczbę klatek wyeksportowanego wideo. Film jest eksportowany przy użyciu AVMutableComposition na którym frameDuration jest ustawiony tak:Ustawienie ramki AVMutableCompositionDuration

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

Z jakiegoś powodu, zmieniając 30 do 25 nie zmienia framerate wideo eksportowanego z AVAssetExportSession. Czy ktoś ma pomysł, dlaczego?

Odpowiedz

4

odpowiadanie odpowiedź MonsieurDart za: nie spróbować AVEditDemo ale nie jestem posiadające ten problem na iOS 8, ani nie mam go na iOS 7.

Używam AVMutableVideoComposition i ustawiam go jako wideoComposition 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; 

gdzie Videotrack jest AVMutableCompositionTrack stworzony z aktywów