IOS 剪辑编辑器

本文详细介绍了iOS视频剪辑的核心技术,包括AVMutableComposition的视频轨道插入和素材合成,AVMutableVideoComposition的转场、特效处理,以及自定义compositor实现更复杂的编辑功能。通过实例展示了如何使用AVFoundation进行视频剪辑、滤镜应用和转场效果的实现。
摘要由CSDN通过智能技术生成

最近这两年视频剪辑非常火,很多APP都内置了视频剪辑功能。

IOS视频剪辑主要依赖AVFoundation实现。

1、AVMutableComposition

视频剪辑需要创建一个工程,这个工程只负责把来自不同素材的视频和音频重新组合到自己的轨道track上,等于在内存里把不同素材重新构建成一个新的视频素材。因此你可以直接在AVPlayer上播放这个工程,就像播放一个正常的视频,AVMutableComposition可以等同于AVAsset被使用。

如果你只想把不同的素材拼接起来,仅使用AVMutableComposition就足够了。

composition结构

1.1 插入视频轨道

let composition = AVMutableComposition()
​
let track = composition.addMutableTrack(withMediaType: .video, preferredTrackID: kCMPersistentTrackID_Invalid)

1.2 插入素材

var path = Bundle.main.path(forResource:"clip", ofType:"mp4")
​
let asset =AVURLAsset(url:URL(fileURLWithPath: path!))
​
let assetTrack = asset.tracks(withMediaType: .video).first
​
var assetTimeRange = CMTimeRangeMake(start:CMTime.zero, duration: assetA.duration)
​
​
​
var startTime = CMTime.zero
​
trystack.insertTimeRange(assetTimeRange, of: assetTrackA, at: startTime)

插入音频的方法大同小异,如果只是为了拼接视频,到这里就足够了。

2、AVMutableVideoComposition

如果你想对合并后的视频素材进行处理,例如转场、特效、滤镜、文本、贴图这样的操作,你需要在AVMutableVideoComposition里完成。

video composition结构

2.1 直接创建

let videoComposition = AVMutableVideoComposition(propertiesOf:composition)

当在composition上创建videoComposition之后,会自动创建AVMutableVideoCompositionInstruction和AVMutableVideoCompositionLayerInstruction。

2.1.1 AVMutableVideoCompositionInstruction

一个等待处理的视频剪辑composition会根据插入素材的情况被自动划分为多个可剪辑的区域,例如0-1秒或者2-5秒,你不需要去思考,当你直接创建videoComposition的时候instruction会被自动的创建出来,每一个instruction代表一个

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值