我想从一些图像创建一个视频,并添加一个图像之间的交叉溶解效果。
如何做到这一点?我知道图像可以写入视频文件,但我不知道该在哪里应用特效。是否应该将每个图像转换为视频,然后将视频写入具有过渡效果的填充视频?
我到处搜索,但找不到太多关于如何做到这一点的信息,例如如何使用AVMutableComposition,以及是否可以创建由单个图像组成的视频,然后应用交叉溶解效果。
我们将非常感谢您提供的任何信息。
发布于 2013-11-01 05:39:19
如果你想深入了解AVFoundation,我强烈建议你准备好做大量的工作来完成这件事……
如果你想快几个数量级开始工作,并且不介意加入一个第三方库,我非常愿意使用recommend you try GPUImage
您会发现,将图像推送到视频中并随意交换它们,以及对过渡应用任意数量的混合滤镜非常简单,只需在过渡发生时改变混合滤镜的单个混合属性即可。
发布于 2013-11-01 06:27:58
我现在正在做这件事。简而言之:您需要一个可以放入可以为空的AVPlayerItem的AVPlayer。然后,需要将AVPlayerItem的forwardPlaybackEndTime设置为动画的持续时间。然后,您可以创建一个使用AVPlayer启动的AVPlayerLayer。(实际上,如果您不想在动画中放置视频,则可能不需要AVPlayerLayer。然后是重要的部分,您要创建一个使用以前的AVPlayerItem启动的AVSynchronizedLayer。此AVSynchronizedLayer及其包含的任何子层将与您的AVPlayerItem同步。然后,您可以创建一些包含图像的简单CALayer (通过contents属性),并将CAKeyframeAnimation添加到opacity属性上的层中。现在,这些子层上的任何动画都将遵循AVPlayerItem的时间。要启动动画,只需在AVPlayer上调用play即可。这就是回放的理论。如果你想在mp4中导出这个动画,你需要使用AVVideoCompositionCoreAnimationTool,但它非常相似。
有关代码示例,请参见code snippet to create animation
https://stackoverflow.com/questions/19715205
复制相似问题