无法使用GPUImage编辑video
我使用AVFoundation创build了video,现在我想通过GPUImage框架进行编辑。
我在这里提到了所有的设置。 看到他的“SimpleVideoFileFilter”的例子后,我刚刚复制他的代码,并replace我的video资产URL。 这是代码。
movieFile = [[GPUImageMovie alloc] initWithURL:player.contentURL]; pixellateFilter = [[GPUImagePixellateFilter alloc] init]; [movieFile addTarget:pixellateFilter]; 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]; NSLog(@"precess started"); [movieWriter setCompletionBlock:^{ [pixellateFilter removeTarget:movieWriter]; [movieWriter finishRecording]; dispatch_async(dispatch_get_main_queue(), ^{ NSLog(@"completed"); }); }];
但我得到以下错误。
请帮我解决这个问题。
通过阅读这个我知道这个错误发生在video没有audio时。
我有同样的问题。 我没有audio我的资产(video)。 所以面对这个错误。
为了解决这个错误,我只是取而代之
movieFile.audioEncodingTarget = movieWriter;
至
movieFile.audioEncodingTarget = nil;
和代码工作正常。
不知道这是否是正确的答案,但我希望它在正确的方向。
36055的 status
值是0x8CD7 – 缺less附件 。
摘自苹果论坛 – GL Framebuffer完整性和布告问题
#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 #define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 #define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 #define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB #define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC #define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD
根据论坛,
原来你必须打电话给:
glDrawBuffer(GL_NONE)
glReadBuffer(GL_NONE)在源和目标缓冲区。 即两个缓冲区必须被读取和绘制完成。
这就是为什么当我检查他们时,我在缓冲区中看到了翻转的状态。
干杯。
YJ