我有一个 AVMutableComposition
有视频轨道,我想在视频轨道中添加静止图像,以便显示一段时间。静止图像只是一个PNG。我可以将图像作为资产加载,但这就是它,因为生成的资产没有任何轨道,因此不能简单地使用 insertTimeRange…
方法。
有没有办法将静止图像添加到合成中?看起来答案在Core Animation的某个地方,但整个事情似乎有点高于我的头脑,我会很感激代码示例或一些信息指针。
我有一个 AVMutableComposition
有视频轨道,我想在视频轨道中添加静止图像,以便显示一段时间。静止图像只是一个PNG。我可以将图像作为资产加载,但这就是它,因为生成的资产没有任何轨道,因此不能简单地使用 insertTimeRange…
方法。
有没有办法将静止图像添加到合成中?看起来答案在Core Animation的某个地方,但整个事情似乎有点高于我的头脑,我会很感激代码示例或一些信息指针。
好。有一个很棒的视频叫做 使用AV Foundation编辑媒体 从 WWDC 这解释了很多。您无法将图像直接插入 AVComposition
时间表,至少我没有找到任何办法。但是在导出或播放资产时,您可以参考 AVVideoComposition
。这可能不是这个类的完美名称,因为它允许您在资产中的各种视频轨道之间进行混合,非常类似 AVAudioMix
对于音频。而且 AVVideoComposition
有一个 animationTool
允许您投掷核心动画图层的属性(CALayer
)混合。 CALayer
有一个 contents
可以分配的属性 CGImageRef
。在我的情况下没有帮助,可能会帮助别人。
我的构图中还需要静止图像。我的思路有点不同。插入即时黑色电影代替图像应该出现(可能一个这样的视频就足够了)。为每个这样的插入添加字典引用,将组合时间范围链接到真正想要的图像。当正确的时间范围到达我的全时自定义合成器时,拉出所需的图像并将其绘制到输出像素缓冲区中,忽略合成中传入的黑色帧。我认为这是另一种做法。