AVFoundation建立视频通道详解

ios 视频的合成、剪辑、特效添加、合成图片、音频、边框 多视频合成等等,你想到的这些功能,第一步就是建立视频片段的资源,即通道的建立,包括视频通道和声音通道,今天着重讲解视频通道的建立,包括参数的含义,声音通道的建立留在下一片文章

先贴一段代码:


//建立视频通道 1 将视频 1 的视频轨道从 [0 -> 最后] 所有长度插入到新建视频轨道的 0 位置上

NSString * videoPath1 = [[NSBundle mainBundle] pathForResource:@"1" ofType:@"mp4"];

AVURLAsset * videoAsset1 = [AVURLAsset URLAssetWithURL:[NSURL fileURLWithPath:videoPath1] options:nil];

AVAssetTrack * videoOldTrack1 = [[videoAsset1 tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0];

AVMutableCompositionTrack *videoNewTrack1 = [mixComposition addMutableTrackWithMediaType:AVMediaTypeVideo preferredTrackID:kCMPersistentTrackID_Invalid];

CMTimeRange videoTimeRange1 = CMTimeRangeMake(kCMTimeZero, videoAsset1.duration);

[videoNewTrack1 insertTimeRange:videoTimeRange1  ofTrack:videoOldTrack1  atTime:kCMTimeZero error:nil];

下面分别讲解:

NSString * videoPath1; 这一句是代表视频的路径,一般为bundle或者沙盒,当然也可以是网络地址 ,如果是网络地址需要先讲视频下载到本地

AVAssetTrack * videoOldTrack1;这个代表原始素材的视频通道

AVMutableCompositionTrack *videoNewTrack1;代表新建立的一个空的视频通道,

CMTimeRange videoTimeRange1; 代表需要截取的原始素材的时间范围


总结:

新建通道就是在新的通道里将旧通道中的某段视频合并到新通道某一时间点上面

你可能感兴趣的:(AVFoundation建立视频通道详解)