Я пытаюсь применить эффект Greenscreen к любому видео.Я добился этого с помощью библиотеки gpuimage и ее chromakeyfilter.Сделано идеальное слияние эффекта на видео.Но теперь я хочу установить зеленый эффект на видео через несколько секунд.Например, видео будет воспроизводиться без эффекта после того, как будет установлен 10-секундный эффект, и будет продолжаться видео в течение 10 секунд. Я установил задержку, но оно воспроизводится через 10 секунд с эффектом, но не воспроизводит первую 10-секундную часть, которая не имеет эффекта.
NSURL *effUrl = _effectURL;
NSURL *vidUrl = _videoURL;
AVAsset *asst=[AVAsset assetWithURL:_videoURL];
AVAssetTrack *videoAssetTrack=[[asst tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0];
_gpuMovieFX1=[[GPUImageMovie alloc]initWithURL:effUrl];
_gpuMovieA1=[[GPUImageMovie alloc]initWithURL:vidUrl];
self.filter = [[GPUImageChromaKeyBlendFilter alloc] init];
self.filter.thresholdSensitivity=0.10;
self.filter.smoothing=0.5;
[self.filter setColorToReplaceRed:0 green:1 blue:0];
[self.filter forceProcessingAtSize:videoAssetTrack.naturalSize/*self.videoController.view.frame.size*/];
[_gpuMovieFX1 addTarget:_filter];
_gpuMovieFX1.shouldRepeat=YES;
_gpuMovieFX1.playAtActualSpeed=YES;
_gpuMovieFX1.runBenchmark=YES;
[_filter addTarget:_viewPreview];
[_gpuMovieA1 addTarget:_filter];
_gpuMovieA1.shouldRepeat=YES;
_gpuMovieA1.playAtActualSpeed=YES;
_gpuMovieA1.runBenchmark=YES;
[_filter addTarget:_viewPreview];
[_gpuMovieA1 startProcessing];
[self performSelector:@selector(effectProcess) withObject:nil afterDelay:10];
-(void)effectProcess{
[_gpuMovieFX1 startProcessing];}