相关类
AVComposition && AVCompositionTrack
composition在音视频处理中起到最关键的大管家作用,基本上所有操作都需要交给composition进行,而且composition是asset的子类,可以直接用avplayer进行播放,也就是说编辑后是可以直接预览的和导出的,非常方便。
track是可以理解为音视频数据的存储通道,音视频数据通过track进行存储,视频编辑也是在track上进行,比如剪辑一段视频的话,先拿到该视频所在的track,然后指定剪辑的时间范围,最后将选定的内容导出即可。
CMTime && CMTimeRange
cmtime是视频编辑中最基本的单位,表示一个时间节点,比如视频时长duration等。cmtime结构中最主要的属性是value和timescale,value/timescale才是cmtime真正标识的值。
cmtimerange标识一个时间区间,start标识该范围的起点,duration标识该范围的长度,这两个属于一起决定了该段时间范围。
具体编码
这里简单写一个demo,取01.mp4和02.mp4两个视频的前6s,再添加一个03.m4a的音频,然后合成导出一个新的视频。
step0 加载原始资源
|
|
step1 创建composition和track
|
|
step02 裁剪视频
|
|
step03 添加音频
|
|
step04 效果预览
|
|
step05 视频导出到文件和相册
|
|
一个简单的合成视频就完成了,可以进相册看看效果,原视频的音频丢了,取代的是我们添加的音频,现在两段拼接的视频之间还没有加转场动画,下一步可以给两段视频之间加一下过渡动画。