Лучше, чем использовать процессор для обмена компонентами, было бы написать простой фрагментный шейдер, чтобы эффективно делать это на графическом процессоре при рендеринге изображения.
И лучший лучший способ - полностью удалить этап копирования с помощью iOS5 CoreVideo CVOpenGLESTextureCache, который позволяет выполнять рендеринг прямо в CVPixelBufferRef, исключая вызов glReadPixels.
ps Япочти уверен, что AVAssetWriter хочет данные в формате BGRA (на самом деле он, вероятно, хочет это в yuv, но это другая история).
ОБНОВЛЕНИЕ: что касается ссылок, документ, похоже, все еще находится под NDA, но есть два свободно доступных примера кода:
GLCameraRipple и RosyWriter
Сами заголовочные файлы содержат хорошую документацию, и эквивалент Mac очень похож (CVOpenGLTextureCache), поэтому у вас должно быть достаточно для начала работы.