首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设置AVMutableComposition的frameDuration

设置AVMutableComposition的frameDuration
EN

Stack Overflow用户
提问于 2012-03-16 01:41:31
回答 3查看 5.2K关注 0票数 6

我正在使用苹果公司的WWDC 2010示例包中的AVEditDemo项目,并且我正在尝试更改导出视频的帧率。视频是使用frameDuration设置如下的AVMutableComposition导出的:

代码语言:javascript
复制
videoComposition.frameDuration = CMTimeMake(1, 30); // 30 fps

出于某种原因,将30更改为25不会更改使用AVAssetExportSession导出的视频的framerate。有人知道为什么吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-27 16:10:54

AVAssetExportSession预设似乎优先于AVVideoComposition frameDuration。我打开了一个bug报告:

http://openradar.appspot.com/11127156

票数 4
EN

Stack Overflow用户

发布于 2014-10-27 20:46:30

回答MonsieurDart的回答:我没有尝试过AVEditDemo,但我在iOS 8上没有这个问题,在iOS 7上也没有这个问题。

我正在使用AVMutableVideoComposition并将其设置为AVAssetExportSession's videoComposition。

代码语言:javascript
复制
.
.
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

票数 5
EN

Stack Overflow用户

发布于 2019-07-03 01:46:55

客户端可以将sourceTrackIDForFrameTiming设置为kCMPersistentTrackID_Invalid,将frameDuration设置为适当的值,以便指定与源轨道定时无关的最大输出帧速率。

代码语言:javascript
复制
videoComposition.sourceTrackIDForFrameTiming = kCMPersistentTrackID_Invalid;
videoComposition.frameDuration = CMTimeMake(1, 30);
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9725193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档