Mon*_*art 5 iphone avfoundation ios avmutablecomposition avassetexportsession
我正在使用AVEditDemoApple的WWDC 2010样本包中的项目,我正在尝试更改导出视频的帧速率.使用AVMutableCompositionframeDuration设置的视频导出视频:
videoComposition.frameDuration = CMTimeMake(1, 30); // 30 fps
Run Code Online (Sandbox Code Playgroud)
出于某种原因,将30更改为25并不会更改使用framerate该视频导出的视频AVAssetExportSession.有谁知道为什么?
小智 8
客户端可以设置sourceTrackIDForFrameTiming和kCMPersistentTrackID_Invalid到frameDuration适当的值,以便指定独立于源轨道时序的最大输出帧速率。
videoComposition.sourceTrackIDForFrameTiming = kCMPersistentTrackID_Invalid;
videoComposition.frameDuration = CMTimeMake(1, 30);
Run Code Online (Sandbox Code Playgroud)
小智 5
回复 MonsieurDart 的回答:我没有尝试过,AVEditDemo但在 iOS 8 上没有这个问题,在 iOS 7 上也没有。
我正在使用 aAVMutableVideoComposition并将其设置为AVAssetExportSession'svideoComposition。
.
.
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;
Run Code Online (Sandbox Code Playgroud)
其中 videoTrack 是AVMutableCompositionTrack从资产创建的
看来AVAssetExportSession预设优先于AVVideoComposition frameDuration. 我打开了一个错误报告:
http://openradar.appspot.com/11127156
| 归档时间: |
|
| 查看次数: |
4142 次 |
| 最近记录: |