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