Ответ 1
Если вы хотите сделать аппаратное ускорение видеокодирования и декодирования видео H.264 на iOS, единственный способ - AVFoundation. Не используйте сторонние библиотеки для кодирования или декодирования, потому что все они в настоящее время связаны с ЦП и намного медленнее, чем вы получаете от AVFoundation. Одной из причин использования стороннего кодировщика или декодера было бы, если вы по умолчанию работаете с форматом, который не поддерживается в iOS.
Для аппаратно-ускоренного декодирования вы захотите использовать экземпляр AVAssetReader (или один из классов проигрывателя для чистого воспроизведения). С AVAssetReader я регулярно получаю скорость воспроизведения 2X или выше для чтения видео с кодировкой H.264, поэтому устройства iOS используют для этого довольно хорошее аппаратное ускорение.
Аналогично, для ускоренного кодирования вы будете использовать AVAssetWriter. Есть несколько трюков, чтобы заставить AVAssetWriter кодироваться с максимальной скоростью (подача в кадрах BGRA с использованием пула пиксельных буферов с использованием кешей текстур iOS 5.0 при чтении из OpenGL ES), которые я подробно описываю в этот ответ.
Если вы хотите увидеть какой-то код, который использует самые быстрые пути, которые я нашел для ускоренного кодирования и декодирования, вы можете посмотреть на мой открытый источник GPUImage, который, в отличие от одного, связанного с Anastasia, полностью свободен в использовании.