在 AVComposition 中编辑视频时序
Posted
技术标签:
【中文标题】在 AVComposition 中编辑视频时序【英文标题】:Editing video-timing in AVComposition 【发布时间】:2014-10-22 13:35:08 【问题描述】:我有一个AVComposition
,其中包含多个视频和音频轨道。到目前为止,它是纯编程的,没有 GUI。我希望用户能够通过单击按钮将一个轨道前后推动几帧。例如:标题为“-10 帧”的按钮会将轨道向后推 10 帧,而“+10 帧”会将其向前推 10 帧。在使用insertTimeRange:ofTrack:atTime:
添加轨道后,我找不到任何实际移动轨道的方法。
我尝试删除它并像这样重新添加它:
[secondAudioTrack removeTimeRange:CMTimeRangeMake(kCMTimeZero, kCMTimeIndefinite)];
[secondAudioTrack insertTimeRange:range ofTrack:[[secondAsset tracksWithMediaType:AVMediaTypeAudio] firstObject] atTime:newTime error:nil];
而且它实际上并没有移动这么远(虽然我可能做错了什么),但我觉得这是一种非常老套的做法。任何人都知道一种正确的方法来给已经存在的新时间在AVComposition
中添加了曲目?
【问题讨论】:
最好的办法是在每次更改后重建音轨布局和合成,我们有一个使用 4 个视频和 4 个音轨的应用程序,效果很好 【参考方案1】:我认为没有。在涉及视频合成之前,应规划完整的视频。让用户只提供信息,保存它,然后仅当您从用户那里获得足够的信息时才运行视频合成。每次开始清洁。您永远不必更改 AVMutableCompositionTrack 内的时间范围。
【讨论】:
以上是关于在 AVComposition 中编辑视频时序的主要内容,如果未能解决你的问题,请参考以下文章
AVPlayerItemVideoOutput 文件不能在 AVComposition IOS7 中使用
在 IOS 上使用 AVComposition 混合两个音频文件
前端每日实战:37# 视频演示如何把握好 transition 和 animation 的时序,创作描边按钮特效