Моя концепция - объединить два видео с помощью фильтра смешивания GPUImage Chroma Key.Мой код здесь.
NSString *normalstr=[[NSBundle mainBundle]pathForResource:@"normal" ofType:@"mp4"]; // 25 second video
NSString *greenpath=[[NSBundle mainBundle]pathForResource:@"green" ofType:@"mp4"]; // 25 second video
NSString* finalMoviePath= [DOCUMENTPATHSTORAGE stringByAppendingPathComponent:@"filter.mp4"];
GPUImageMovie *Normalmovie = [[GPUImageMovie alloc] initWithURL:[NSURL fileURLWithPath:normalstr]];
GPUImageMovie *GreenMovie = [[GPUImageMovie alloc] initWithURL:[NSURL fileURLWithPath:greenpath]];
Normalmovie.playAtActualSpeed = YES;
GreenMovie.playAtActualSpeed = YES;
GPUImageChromaKeyBlendFilter *chromakeyfilter = [[GPUImageChromaKeyBlendFilter alloc] init];
[GreenMovie addTarget:chromakeyfilter];
[Normalmovie addTarget:chromakeyfilter];
GPUImageMovieWriter *movieWriter = [[GPUImageMovieWriter alloc] initWithMovieURL:[NSURL fileURLWithPath:finalMoviePath] size:CGSizeMake(720,1280)];
[chromakeyfilter addTarget:movieWriter];
[movieWriter startRecording];
[GreenMovie startProcessing];
[Normalmovie startProcessing];
[movieWriter setCompletionBlock:^{
NSLog(@"Movie writing complete : %@",finalMoviePath);
[movieWriter finishRecording];
[GreenMovie endProcessing];
[Normalmovie endProcessing];
[movieWriter endProcessing];
[GreenMovie removeAllTargets];
[Normalmovie removeAllTargets];
[chromakeyfilter removeAllTargets];
}];
Этот код достигает объема памяти более 1,5 ГБ и после этого происходит сбой приложения.Можете ли вы предложить мне, как это сделать?