I don't know the whole process, but I know some:
You might need to use AV Foundation Framework and perhaps Core Video Framework to process individual frames. You will probably use AVWriter:
AVAssetWriter *videoWriter = [[AVAssetWriter alloc] initWithURL:
[NSURL fileURLWithPath:path]
fileType:AVFileTypeQuickTimeMovie
error:&error];
You can maintain a pixel buffer using AVFoundation or CV, and then write it like (this example is for CV):
[pixelBufferAdaptor appendPixelBuffer:buffer withPresentationTime:kCMTimeZero];
To get frames, AVAssetStillImageGenerator
isn't really sufficient.
Alternatively, There may be a filter or instruction that can be used with AVVideoMutableComposition, AVMutableComposition, or AVAssetExportSession.
If you have made progress since you asked in August, please post as I'm interested!