Фильмы могут быть загружены в рамки через класс GPUImageMovie, отфильтрованы, а затем выписаны с использованием GPUImageMovieWriter. GPUImageMovieWriter также достаточно быстр, чтобы записывать видео в реальном времени с камеры iPhone 4 на 640x480, поэтому в него можно загрузить источник с прямым фильтром.
Ниже приведен пример того, как вы могли бы загрузить образец кино, передать его через pixellation и вращения фильтра, а затем записать результат на диск как h.264 фильм 480 х 640:
movieFile = [[GPUImageMovie alloc] initWithURL:sampleURL];
pixellateFilter = [[GPUImagePixellateFilter alloc] init];
GPUImageRotationFilter *rotationFilter = [[GPUImageRotationFilter alloc] initWithRotation:kGPUImageRotateRight];
[movieFile addTarget:rotationFilter];
[rotationFilter 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 startRecording];
[movieFile startProcessing];
После завершения записи, вы должны удалить рекордер кино из цепи фильтра и закрыть запись с помощью кода, как следующее:
[pixellateFilter removeTarget:movieWriter];
[movieWriter finishRecording];
фильм не будет использоваться до тех пор, пока не прикончил, так что если это прерывается до этого момента, запись будет Потерянный.
Вот хороший учебник:
http://www.sunsetlakesoftware.com/2012/02/12/introducing-gpuimage-framework
Смотрите раздел "Фильтрация и повторного кодирования фильма" раздел.
У меня есть один и тот же вопрос. – Imran