我的iPhone应用程序中有一个小视频片段,我希望在其中执行以下操作 -
由于视频尺寸非常小(不到一分钟),我所能想到的是通过提取每个帧然后执行上述操作将视频转换为图像。 有谁能提出更好的主意?
谢谢
答案 0 :(得分:7)
实现这些操作的一种简单快捷的方法是使用GPUImage framework。您应该查看GPUImageMovie
中的GPUImage
课程来编辑iOS中的电影。该框架已经附带了一组过滤器,您可以使用这些过滤器来执行所需的操作。有关如何使用GPUImage编辑视频的详细信息,请参阅this section。
简而言之,您首先要创建一个GPUImageMovie
对象:
movieFile = [[GPUImageMovie alloc] initWithURL:sampleURL];
然后创建一些过滤器并将过滤器应用于对象。
cropFilter = [[GPUImageCropFilter alloc] init];
[movieFile addTarget:cropFilter];
您可以通过向链中的previousFilter添加目标来在链中添加更多过滤器。最后,当您准备转换视频时,请执行以下操作:
NSString *pathToMovie = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/Movie.m4v"];
unlink([pathToMovie UTF8String]);
NSURL *movieURL = [NSURL fileURLWithPath:pathToMovie];
movieWriter = [[GPUImageMovieWriter alloc] initWithMovieURL:movieURL size:CGSizeMake(480.0, 640.0)];
[pixellateFilter addTarget:movieWriter];
movieWriter.shouldPassthroughAudio = YES;
movieFile.audioEncodingTarget = movieWriter;
[movieFile enableSynchronizedEncodingUsingMovieWriter:movieWriter];
[movieWriter startRecording];
[movieFile startProcessing]