简而言之: 如何在 iOS 中进行时间拉伸和音高转换?
详细地:
我想做什么?
该应用程序将向用户显示视频缩略图,以从视频文件中选择一定范围的帧。
我必须将渐变慢 Mo仅应用于选定的持续时间或视频帧。
Ramp Slow Mo:(Time Stretching + Pitch shift)动态。我必须在 for 循环中改变时间和音调,比如大约 10 次迭代。它只不过是英文字母“U”的行为。所以,我会增加时间和音高并减少它们。
我如何尝试:
- 查找用户选择的视频的开始/结束时间。
- 通过AVFoundation Mutable Composition分别拆分视频和音频。
- 对于视频:仅在开始/结束时间之间的持续时间内应用时间拉伸。*没问题* 在里面,它的发生如我所料。
- 对于音频:动态进行时间拉伸和音高转换,这也适用于选定的时间范围。我为此使用狄拉克。现在,我想使用 IOS SDK 本身。
- 将音频和视频后期慢动作合并为文件并存储。
分析:
迄今为止,我发现OpenAl或音频单元(单独使用AUVarispeed或AUTimePitch和Time Rate一起使用)可以提供帮助。拆分视频和音频后,我将使用 OpenAL 或音频单元获得音频URL以继续进行。
我的问题:
- 任何人都可以帮助我避免狄拉克(参考项目符号 4)吗?那么如何动态地进行Time Stretching和Pitch shift呢?
- 如何*仅针对选定的帧*s(在开始时间和结束时间之间)?
- 我不知道如何将* AVFoundataion 的* URL与 OpenAL 或音频单元的缓冲区结合起来,在慢动作效果之后,如何最终与 AVFoundation 的视频参考 URL 合并?
任何类型的参考或示例代码都有很大帮助。