AVFoundation简单音视频处理,看不懂,先记着系列
所属分类:ios | 发布于 2024-12-10
最新更新:又看到了一个人的描述,有用fcpx或者其它剪辑软件剪辑过视频的人会更容易理解。
AVAsset:素材库里的素材;
AVAssetTrack:素材的轨道;
AVMutableComposition:一个用来合成视频的工程文件;
AVMutableCompositionTrack:工程文件里的轨道,有音频轨、视频轨等,里面可以插入各种对应的素材
AVMutableVideoCompositionLayerInstruction:视频轨道中的一个视频,可以缩放、旋转等;
AVMutableVideoCompositionInstruction:一个视频轨道,包含了这个轨道上的所有的视频素材;
AVMutableVideoComposition:管理所有视频轨道,可以决定最终视频的尺寸,裁剪需要在这里进行。
AVAssetExportSession:配置渲染参数并渲染
1、AVAsset
Assets 可以来自一个文件或用户的相册,可以理解为多媒体资源,通过URL作为一个asset对象的标志。这个URL可以是本地文件路径或者网络流。
2、AVAssetTrack
AssetTrack是资源轨道的意思,比如audio, video, text, closed, captions, subtitles等等,一个AVAsset 包含很多轨道,是AVAssetTrack的结合。
3、AVComposition / AVMutableComposition
使用 AVMutableComposition 类可以增删 AVAsset 来讲单个或多个 AVAsset 集合到一起,用来合成新视频。除此之外,若想将集合到一起的视听资源以自定义的方式进行播放,需要使用 AVMutableAudioMix 和 AVMutableVideoComposition 类对其中的资源进行协调管理。
4、AVVideoComposition / AVMutableVideoComposition
AVFoundation 类API中最核心的类是 AVVideoComposition / AVMutableVideoComposition。
AVVideoComposition / AVMutableVideoComposition 对两个或多个视频轨道组合在一起的方法给出了一个总体描述。它由一组时间范围和描述组合行为的介绍内容组成。这些信息出现在组合资源内的任意时间点。
AVVideoComposition / AVMutableVideoComposition 管理所有视频轨道,可以决定最终视频的尺寸,裁剪需要在这里进行。
5、AVMutableCompositionTrack
AVMutableCompositionTrack 是将多个 AVAsset 集合到一起合成新视频的轨道,有音频轨、视频轨等,里面可以插入各种队友的素材,如画中画、水印等。
6、AVMutableVideoCompositionLayerInstruction
AVMutableVideoCompositionLayerInstruction 主要用于对视频轨道中的一个视频处理缩放、模糊、裁剪、旋转等。
7、AVMutableVideoCompositionInstruction
AVMutableVideoCompositionInstruction表示一个指令,决定一个timeRange内每个轨道的状态,每一个指令包含多个AVMutableVideoCompositionLayerInstruction;而AVVideoComposition由多个 AVVideoCompositionInstruction 构成。
AVVideoCompositionInstruction 所提供的最关键的一段数据是组合对象时间轴内的时间范围信息。这一时间范围是在某一组合形式出现时的时间范围。要执行的组合特质是通过其 AVMutableVideoCompositionLayerInstruction集合定义的。
8、AVAssetExportSession
AVAssetExportSession 主要用于导出视频。
9、AVAssetTrackSegment
AVAssetTrackSegment 不可变轨道片段。
10、AVCompositionTrackSegment
AVCompositionTrackSegment 可变轨道片段,继承自 AVAssetTrackSegment。