项目中需要将原视频的音频和视频添加新的音频进行重新合成,最终生成一个视频
目前采用方案是先将两个音频混合成一个音频后再跟视频合成,音频混合功能代码如下
+(void)audioMixture:(AVAsset *)firstAsset secondAsset:(AVAsset *)secondAsset outputPath:(NSString *)outputPath withResult:(void (^)(BOOL bIsSuccess))result
{
//第一个音频asset
AVURLAsset *firstAudioAsset = (AVURLAsset *)firstAsset;
//第二个音频asset
AVURLAsset *secondAudioAsset = (AVURLAsset *)secondAsset;
//创建可变的音频视频组合
AVMutableComposition *mixComposition = [AVMutableComposition composition];
//第一个音频轨道
AVMutableCompositionTrack *firstAudioTrack = [mixComposition addMutableTrackWithMediaType:AVMediaTypeAudio preferredTrackID:kCMPersistentTrackID_Invalid];
//第一个音频asset添加到轨道
[firstAudioTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, firstAudioAsset.duration) ofTrack:[firstAudioAsset tracksWithMediaType:AVMediaTypeAudio].firstObject atTime:kCMTimeInvalid error:nil];
//第二个音频轨道
AVMutableCompos