我正在尝试对任何视频应用“绿屏”效果。我使用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];}