我正在使用来自苹果WWDC 2010
示例包中的AVEditDemo
项目,涉及IT技术,现在我想要改变导出视频的帧率。该视频是使用AVMutableComposition
导出的,其中frameDuration
被设置为:
videoComposition.frameDuration = CMTimeMake(1, 30); // 30 fps
有些原因导致将30改为25不会改变使用AVAssetExportSession
导出的视频的帧率
。有人知道为什么吗?
我正在使用来自苹果WWDC 2010
示例包中的AVEditDemo
项目,涉及IT技术,现在我想要改变导出视频的帧率。该视频是使用AVMutableComposition
导出的,其中frameDuration
被设置为:
videoComposition.frameDuration = CMTimeMake(1, 30); // 30 fps
有些原因导致将30改为25不会改变使用AVAssetExportSession
导出的视频的帧率
。有人知道为什么吗?
sourceTrackIDForFrameTiming
设置为kCMPersistentTrackID_Invalid
,并将frameDuration
设置为适当的值,以指定与源跟踪时间无关的最大输出帧速率。videoComposition.sourceTrackIDForFrameTiming = kCMPersistentTrackID_Invalid;
videoComposition.frameDuration = CMTimeMake(1, 30);
.
.
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
AVAssetExportSession
预设优先于AVVideoComposition
的frameDuration
。我已经提交了一个错误报告:http://openradar.appspot.com/11127156。