如何将静态图像添加到AVComposition?

时间:2010-11-24 14:03:35

标签: ios avfoundation avmutablecomposition avcomposition

我有一个带有视频轨道的AVMutableComposition,我想在视频轨道中添加静止图像,以便显示一段时间。静止图像只是一个PNG。我可以将图像作为资产加载,但这是关于它的,因为生成的资产没有任何轨道,因此无法使用insertTimeRange…方法简单地插入。

有没有办法将静止图像添加到合成中?看起来答案在Core Animation的某个地方,但整个事情似乎有点高于我的头脑,我会很感激代码示例或一些信息指针。

2 个答案:

答案 0 :(得分:12)

行。来自WWDC的一个名为使用AV Foundation编辑媒体的精彩视频解释了很多。您无法将图像直接插入AVComposition时间轴,至少我没有找到任何方法。但是在导出或播放资产时,您可以参考AVVideoComposition。这可能不是该类的完美名称,因为它允许您在资源中的各种视频轨道之间进行混合,非常类似AVAudioMix对音频的影响。 AVVideoComposition具有animationTool属性,可让您将核心动画图层(CALayer)投射到混合中。 CALayer具有contents属性,可以为其分配CGImageRef。在我的情况下没有帮助,可能会帮助别人。

答案 1 :(得分:0)

我的作品中还需要静止图像。我的思路有点不同。插入即时黑色电影代替图像应该出现(可能一个这样的视频就足够了)。为每个这样的插入添加字典引用,将组合时间范围链接到真正想要的图像。当正确的时间范围到达我的全时自定义合成器时,拉出所需的图像并将其绘制到输出像素缓冲区中,忽略合成中传入的黑色帧。我认为这是另一种做法。