我正在使用苹果公司的WWDC 2010示例包中的AVEditDemo项目,并且我正在尝试更改导出视频的帧率。视频是使用frameDuration设置如下的AVMutableComposition导出的:
videoComposition.frameDuration = CMTimeMake(1, 30); // 30 fps出于某种原因,将30更改为25不会更改使用AVAssetExportSession导出的视频的framerate。有人知道为什么吗?
发布于 2012-03-27 16:10:54
AVAssetExportSession预设似乎优先于AVVideoComposition frameDuration。我打开了一个bug报告:
http://openradar.appspot.com/11127156
发布于 2014-10-27 20:46:30
回答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
发布于 2019-07-03 01:46:55
客户端可以将sourceTrackIDForFrameTiming设置为kCMPersistentTrackID_Invalid,将frameDuration设置为适当的值,以便指定与源轨道定时无关的最大输出帧速率。
videoComposition.sourceTrackIDForFrameTiming = kCMPersistentTrackID_Invalid;
videoComposition.frameDuration = CMTimeMake(1, 30);https://stackoverflow.com/questions/9725193
复制相似问题