フレームワークのビデオフィルターを使用しようとしていましたGPUImage
。映画のチュートリアルのフィルタリングと再エンコードに従いました。それは私にエラーを与えますUnknown type name GPUImageRotationFilter
。だから私は自分のビデオファイルに簡単なフィルターを適用しようとしました
ここに私のコード
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 フィルターを既存のビデオ ファイルに適用する方法を教えてもらえますか?