3
我試圖使用GPUImage
框架的視頻濾鏡。我跟着Filtering and re-encoding a movie教程。它給我錯誤Unknown type name GPUImageRotationFilter
。於是,我就一個簡單的過濾器適用於我的視頻文件GPUImage:將Filer應用於現有的視頻文件
這裏是我的代碼
viewController.h
@interface ViewController : UIViewController<GPUImageMovieWriterDelegate,GPUImageInput>
{
GPUImageMovie *_movieFile;
GPUImageOutput<GPUImageInput> *_sketchFilter;
GPUImageMovieWriter *_movieWriter;
}
@property (nonatomic,retain) GPUImageMovie *movieFile;
@property (nonatomic,retain) GPUImageOutput<GPUImageInput> *sketchFilter;
@property (nonatomic,retain) GPUImageMovieWriter *movieWriter;
@end
viewController.m
NSURL *sampleURL = [[NSBundle mainBundle] URLForResource:@"sample_iPod" withExtension:@"m4v"];
self.movieFile = [[GPUImageMovie alloc] initWithURL:sampleURL];
self.sketchFilter = [[GPUImageSketchFilter alloc] init];
[self.movieFile addTarget:self.sketchFilter];
NSString *pathToMovie = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/Movie.m4v"];
unlink([pathToMovie UTF8String]);
NSURL *movieURL = [NSURL fileURLWithPath:pathToMovie];
self.movieWriter = [[GPUImageMovieWriter alloc] initWithMovieURL:movieURL size:CGSizeMake(480.0, 640.0)];
[self.sketchFilter addTarget:self.movieWriter];
[self.movieWriter startRecording];
[self.movieFile startProcessing];
[self.movieWriter setCompletionBlock:^{
[self.sketchFilter removeTarget:self.movieWriter];
[self.movieWriter finishRecording];
}];
這其中還贈送我BAD_ACCESS。
堆棧跟蹤
- 什麼蔭做錯了什麼?
- 任何可以解釋我如何將GPUImage過濾器應用到現有的視頻文件?
你的代碼看起來不錯。你在哪裏得到EXC_BAD_ACCESS?你是如何定義movieFile,sketchFilter和movieWriter的? GPUImageRotationFilter是舊的過濾器,不再可用,您應該使用GPUImageTransformFilter來代替。 – 2013-05-02 10:07:19
@TomasCamin我不知道我在哪裏得到糟糕的訪問。查看我更新的問題 – 2013-05-02 10:28:27
您的項目是否使用ARC?您定位的是哪個iOS版本? – 2013-05-02 10:37:01