在AVComposition中编辑视频计时



我有一个包含多个视频和音频音轨的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中已经添加的曲目一个新时间的正确方法吗?

我认为没有。在涉及视频合成之前,应该计划好完整的视频。让用户只提供信息,保存它,然后只有当你从用户那里获得足够的信息时才运行视频合成。每次开始清洁。您永远不应该更改AVMutableCompositionTrack内的时间范围。

最新更新