GPUImage:将文件应用于现有的video文件
我试图使用GPUImage
框架的videofilter。 我遵循过滤和重新编码电影教程。 它给我错误Unknown type name GPUImageRotationFilter
。 所以我试图将一个简单的filter应用到我的video文件
这是我的代码
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 。
堆栈跟踪
- Iam做错了什么?
- 任何可以解释我如何将GPUImagefilter应用到现有的video文件?
首先用最新的GPUImageFramework
来更新你的GPUImageFramework
。 你可以从这里得到新的。
仔细检查moviewWriter的大小。 它应该是CGSizeMake(640.0, 480.0)
而不是CGSizeMake(480.0, 640.0)
。
或者,您可以创buildvideo资源,然后在大小参数中提供video资源的大小。
AVURLAsset *asset = [AVURLAsset URLAssetWithURLNSURL fileURLWithPath:pathToMovie] options:nil]; AVAssetTrack *videoAssetTrack = [[asset tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0]; movieWriter = [[GPUImageMovieWriter alloc] initWithMovieURL:movieURL size:CGSizeMake(videoAssetTrack.naturalSize.width, videoAssetTrack.naturalSize.height)];
它为我工作。
- GPUImagePicture与imageFromCurrentlyProcessedOutput不会得到UIImage
- 如何减lessGPUImageGaussianSelectBlurFilter效果中的内存消耗?
- 与GPUImage混合:如何控制第一个图像上的第二个图像的位置
- GPUImage遮罩透明度
- GPUImage:GPUImageToneCurveFilter不起作用
- 使用GPUImage重新创buildiOS 7 Glass效果
- 使用GPUImage过滤video
- GPUImageMovieWriter – 崩溃时,状态为2时无法调用方法
- 如何使用GPUImage实现GPUImageMaskFilter