iPhone: Эффекты для записанного видео?

#iphone

#iPhone

Вопрос:

У меня есть программа, позволяющая пользователю записывать видео. Я должен предоставить такие параметры, как черно-белый, кристалл и т.д. например, как работает приложение «Viddy» для iPhone для установки дополнительных эффектов к записанному видео. Как я могу добиться этого программно?

Пожалуйста, направьте меня.

Спасибо!

Ответ №1:

Вот один из способов:

  1. Начните захват видеокадров с помощью AVCaptureSession AVCaptureVideoDataOutput
  2. Преобразуйте кадры в текстуры OpenGL для отображения
  3. Напишите GLSL-шейдеры для каждого желаемого эффекта и примените к текстурам с шага 2
  4. Считайте текстуры эффект и записывайте в файл фильма
  5. Оптимизируйте, пока производительность не станет достаточной
  6. переход 5

5, вероятно, самый важный шаг. Вам нужно настроить алгоритм, качество видео, размер текстуры, частоту кадров, шейдеры и т.д.

Наслаждайтесь!

Комментарии:

1. Мое приложение не является приложением OpenGL.

2. Я не думаю, что вы можете избежать OpenGL здесь.

3. На шаге 4 — как бы вы отнеслись к считыванию текстур и сохранению в файл? UIImage? что-то еще?

4. либо glReadPixels> CGBitmapContext > CGImage > UIImage > UIImagePNGRepresentation, либо RenderTexture в CVOpenGLESTextureCache, управляемом CVPixelBuffer, а затем CGBitmapContext и т.д., и т.п., и т.п. Хотя это кажется ужасно длинным, я уверен, что вы могли бы найти более простое решение с меньшим количеством копий. p.s. вероятно, это должен быть новый вопрос.