IOS开发 视频叠加整理

2017-05-25  本文已影响0人  Th丶小伟

建议先看懂这篇文章音频叠加之后再来看我所写的

找了特别久才摸索到视频叠加技术点。首先篇文章写的是视频叠加方面。

有两个方式,一种是两个视频收尾相接合并成一个视频,一种是两个视频同时在屏幕上播放合并成的叠加视频。

收尾相加视频步骤:

1.创建一个可变音视频组合AVMutableComposition*comosition

2.使用URL创建一个AVURLAsset*asset

3.利用asset创建视频采集通道AVAssetTrack*assetTrack

4.利用AVMutableComposition创建视频轨AVMutableCompositionTrack*track(使用insertTimeRange:ofTrack:atTime:error函数设置开始时间,持续时间,视频采集通道)

创建多个视频合成在这里写,回到步骤2。不需要添加在走下一步

5.创建视频导出会话对象AVAssetExportSession

视频叠加

1.创建一个可变音视频组合AVMutableComposition*comosition

2.使用URL创建一个AVURLAsset*asset

3.用asset创建视频采集通道AVAssetTrack*assetTrack

4.用comosition创建视频轨AVMutableCompositionTrack*track(使用insertTimeRange:ofTrack:atTime:error函数设置开始时间,持续时间,视频采集通道)

5.使用track创建视频应用层的指令AVMutableVideoCompositionLayerInstruction*videolayerInstruction(使用函数setTransform: atTime:控制视频流的进入时间、大小),可用应用层控制视频流的进入时间、大小、透明度、动画等(控制子视频)

6.创建管理应用层指令AVMutableVideoCompositionInstruction*mainCompositionIns,使用layerInstructions属性添加视频应用层,可设置视频大小、动画等(子视频的控制器)

创建多个视频叠加在这里写,回到步骤2。不需要添加在走下一步

7.创建视频组件AVMutableVideoComposition,这个类是处理视频中要编辑的东西。可以设定所需视频的大小、规模以及帧的持续时间。以及管理并设置视频组件的指令,把6创建的控制器都加进去(总控制器)

8.创建视频导出会话对象AVAssetExportSession;

写到最后:demo过几天上传,看到还没上传的留言,视频合成比较容易,视频叠加就比较难,要控制子视频的位置跟显示时间等,不过步骤多表示可操作性强。

如果有什么遗漏或者错误欢迎指正,共同进步!

转载请注明出处:摩羯小伟

总结:找了好多资料都没有一个视频叠加的整理例子,贴出来希望大牛看到漏洞的东西指导一下,也做个笔记。

demo  链接: https://pan.baidu.com/s/1kUNLSZt 密码: q81t  

上一篇下一篇

猜你喜欢

热点阅读