前言
从本文开始逐渐学习iOS自带的多媒体处理框架,例如AVFoundation,VideoToolbox,CoreMedia,CoreVideo实现多媒体的处理,并且将实现方式以及效果和ffmpeg的方式做对比
截取一个音视频文件中的某个时间段的音视频然后保存是很常见的需求,AVFoundation就提供了这样的接口,它其实也是利用AVMutableComposition来实现的
本文的目的:
截取一个音视频文件中的某个时间段的音视频然后保存到本地
音视频截取相关流程
image.png
上图介绍了AVFoundation框架中关于音视频截取的相关的对象关系图,可以看到使用AVFoundation截取音视频中某一段还是相对比较简单的。
相关对象及函数介绍
-
1、AVURLAsset
容器对象,代表了要操作的容器。封装,解封装,音视频播放,以及音视频合并等等操作的基础都涉及到这个对象。 -
2、AVAssetTrack
音视频轨道对象,代表了文件中的一路音频流或者一路视频流,它作为每一个要被合并的音频或者视频流被添加到组合对象中最终进行合并 -
3、AVMutableCompositionTrack
组合轨道对象,它作为音视频合并的基础,通过它添加要合并的音频流或者视频流,分为两种类型:音频组合轨道对象和视频组合轨道对象,音频组合轨道对象只能添加