我正在玩来自 Apple 的 WWDC 2010
示例包的 AVEditDemo
项目,我正在尝试更改导出视频的帧速率。视频使用 AVMutableComposition
导出,frameDuration 设置如下:
videoComposition.frameDuration = CMTimeMake(1, 30); // 30 fps
出于某种原因,将 30 更改为 25 不会更改使用 AVAssetExportSession
导出的视频的 framerate
。有谁知道为什么?
最佳答案
回复MonsieurDart的回答:
我没有尝试 AVEditDemo
但我在 iOS 8 上没有遇到这个问题,在 iOS 7 上也没有。
我正在使用 AVMutableVideoComposition
并将其设置为 AVAssetExportSession 的
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 是从 Assets 创建的 AVMutableCompositionTrack
关于iphone - 设置 AVMutableComposition 的 frameDuration,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9725193/