建议先看懂这篇文章音频叠加之后再来看我所写的
找了特别久才摸索到视频叠加技术点。首先篇文章写的是视频叠加方面。
有两个方式,一种是两个视频收尾相接合并成一个视频,一种是两个视频同时在屏幕上播放合并成的叠加视频。
收尾相加视频步骤:
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
网友评论