GPUImage +获取空白视频作为视频文件覆盖的输出

时间:2013-06-27 12:18:21

标签: ios overlay avfoundation gpuimage

我正在使用GPUImage框架,它非常好。在我的应用程序中,我有录制视频,然后在录像机视频上添加叠加。 (由于我的要求。)

第1步:录制视频工作正常,我收到了正确的视频。

第2步:在视频文件上添加叠加层,这里我遇到问题,并以小尺寸输出黑色视频。

我的代码如下:

    self.movieFile = [[GPUImageMovie alloc] initWithURL:capturevideoURL];
    self.movieFile.delegate = self;
    self.movieFile.runBenchmark = YES;
    self.movieFile.playAtActualSpeed = YES;

    [self.movieFile addTarget:self.filter];

    UIImage *inputImage = self.overlayImage;
    GPUImagePicture *overlayPicture = [[GPUImagePicture alloc] initWithImage:inputImage];
    [overlayPicture addTarget:self.filter];
    [overlayPicture processImage];

    // Only rotate the video for display, leave orientation the same for recording
    GPUImageView *filterView = (GPUImageView *)self.view;
    [self.filter addTarget:filterView];


    [CommonFunction DeleteFileFromApp:@"Movie.m4v"];
    NSString *pathToMovie = [CommonFunction GetPathForFileName:@"Movie.m4v"];

    unlink([pathToMovie UTF8String]); // If a file already exists, AVAssetWriter won't let you record new frames, so delete the old movie
    NSURL *movieURL = [NSURL fileURLWithPath:pathToMovie];

    self.movieWriter = [[GPUImageMovieWriter alloc] initWithMovieURL:movieURL size:CGSizeMake(320.0, 480.0)];
    [self.filter addTarget:self.movieWriter];

    // Configure this for video from the movie file, where we want to preserve all video frames and audio samples
    self.movieWriter.shouldPassthroughAudio = YES;
    self.movieFile.audioEncodingTarget = self.movieWriter;
    [self.movieFile enableSynchronizedEncodingUsingMovieWriter:self.movieWriter];

    [self.movieWriter startRecording];
    [self.movieFile startProcessing];
    NSLog(@"Start Overlaying...");

    __weak GPUImageNormalBlendFilter *filterlocal = self.filter;
    __weak GPUImageMovieWriter *moviewriterlocal = self.movieWriter;
    __weak typeof(self) weakSelf = self;

    [movieWriter setCompletionBlock:^{
        [filterlocal removeTarget:moviewriterlocal];
        [moviewriterlocal finishRecording];
        [weakSelf loadVideo];
    }];

你能建议我,如何解决这个黑色视频输出问题?

由于

0 个答案:

没有答案