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


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

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


7427
2017-11-24 14:03


起源

您是否在照片进入的轨道上添加了空白时间范围?在设置说明时,您是否仍然将轨道视为存在内容? (过渡到它) - box86rowh
我最后没有去视频合成+核心动画路线,我创建了一个类来从静止帧创建视频并使用视频。 - zoul
很酷,我正在开发一个项目,用户可以自行决定混合视频和照片,因此编译代码必须灵活。我现在正在将照片结束到代码中。 - box86rowh
你能发布一个从静止帧创建视频的例子吗?谢谢! - greenhouse
如何添加过渡效果,我们从图像创建视频,我们想在每个图像之间添加过渡,如交叉进纸,溶解,缩放图像,我们如何获得任何想法的功能, - Jaywant Khedkar


答案:


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


12
2017-11-25 07:59



我刚刚开始进行视频编辑。根据你的回答,纠正我,如果我错了,你是说在实时视频录制之间或录制视频之后投掷图像层? - nr5
录制视频后。 AVVideoComposition 就像一个视频编辑工具 - 一种可编程的Final Cut Pro,如果你愿意的话。因此,您可以将一些视频片段与一些核心动画层拼接在一起。 - zoul
是的,我成功地在录制的视频中插入了一个图像。但这可以用于编辑/插入静态对象到视频中。如果我想玩色调和饱和度以及其他东西怎么办?同时用户将在录制时看到结果。像应用程序商店上的Video Star应用程序。我认为实时视频处理就是答案,但我不确定在用户看到它之前编辑视频帧/摄像机输入是不是一个好主意。 QQQuite资源密集。您可以指向此主题的任何链接? - nr5
对不起,几年前我没有触及AVFoundation这个项目。 - zoul
好吧thanx帮助 - nr5


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


0
2018-01-04 02:10