在GpuImagefilter中几秒钟后应用效果

时间:2019-01-16 06:36:39

标签: ios objective-c gpuimage video-editing chromakey

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

0 个答案:

没有答案