在上一篇的结尾我们提到,现在两个视频之间是没有过渡动画的,一般的视频编辑软件都会提供一些片段之间的过渡动画,这一篇我们也来简单给两个视频加上几个过渡动画。
相关类
在视频合成的基础上,本节内容又会增加几个新的类,而且理解上比较有挑战。
AVVideoComposition
这个类和AVComposition完全没有关系,不是继承至avasset,所有不能直接播放,主要回来管理视频渲染相关的内容。比如render的size,scale等。当然还有一个比较重要也就是我们这节需要用到的instructions属性,该属性是一个AVMutableVideoCompositionInstruction对象的数组。这些对象存储了渲染过程中的一些指令。
AVMutableVideoCompositionInstruction && AVMutableVideoCompositionLayerInstruction
AVMutableVideoCompositionInstruction类存储了一个视频的过渡动画相关信息,其中比较重要的是layerInstructions,这是一个存储AVMutableVideoCompositionLayerInstruction对象的数组,一个AVMutableVideoCompositionLayerInstruction对象表示一个具体的转场效果。
具体编码
基于上一节的代码,我们给01和02视频之间添加一些过渡动画。
step0 创建两个videotrack,
|
|
step1 给videotrack插入视频片段
|
|
step2 获取默认过渡对象
|
|
step3 自定义过渡效果
默认转场是没有添加任何效果的,这里我们来加一些自己的过渡效果。
|
|
step4 预览
|
|
step5 导出
|
|
经过以上步骤,简单的视频过渡效果就完成了,这里只是实现了几个比较基础的效果,更多内容可以后续在扩展。