3

我想使用 GPUImage 对电影的某些帧应用效果。我已经成功地为整个电影文件添加了效果,那么有没有办法在不同的帧上添加不同的效果?

例如,我想在 5 秒到 10 秒的视频上应用棕褐色效果。所以我需要 0-5 秒作为原始视频,5-10 秒使用棕褐色效果,10-视频总秒数使用原始视频。

另外,我想使用 GPUImage 在某些帧上绘制文本/图像,可以吗?

任何回应将不胜感激。

4

1 回答 1

1

您可以要求 MPMoviePlayerController 或 AVAssetImageGenerator 在您指定的时间生成缩略图。

iPhone 使用 AVFoundation 从视频中读取 UIimage(帧)

AVAssetImageGenerator 提供旋转的图像

如果您想要视频而不仅仅是帧,您可以从视频中修剪一部分并对其应用效果。这将获取您的视频的 URL 并将其修剪到指定的时间。

    AVURLAsset *videoAsset = [AVURLAsset URLAssetWithURL:videoURL options:nil]; 
    AVAssetExportSession *exportSession = [[AVAssetExportSession alloc] initWithAsset:videoAsset presetName:AVAssetExportPresetHighestQuality];
    exportSession.outputURL = [NSURL fileURLWithPath:outputURL];
    exportSession.outputFileType = AVFileTypeQuickTimeMovie;
    CMTimeRange timeRange = CMTimeRangeMake(CMTimeMake(startMilliseconds, 1000), CMTimeMake(endMilliseconds - startMilliseconds, 1000));
    exportSession.timeRange = timeRange;

    [exportSession exportAsynchronouslyWithCompletionHandler:^{
        switch (exportSession.status) {
            case AVAssetExportSessionStatusCompleted:
                 ///
                // Call something to apply the effect
               ///
                break;
            case AVAssetExportSessionStatusFailed:
                NSLog(@"Failed:%@", exportSession.error);
                break;
            case AVAssetExportSessionStatusCancelled:
                NSLog(@"Canceled:%@", exportSession.error);
                break;
            default:
                break;
        }
    }];

完成后,您将应用您的效果,如果您使用视频剪辑路线,则将它们组合并编码。

如何使用 AVFoundation 组合具有不同方向的视频剪辑

于 2012-05-18T13:16:12.533 回答