#iphone
#iPhone
Вопрос:
У меня есть программа, позволяющая пользователю записывать видео. Я должен предоставить такие параметры, как черно-белый, кристалл и т.д. например, как работает приложение «Viddy» для iPhone для установки дополнительных эффектов к записанному видео. Как я могу добиться этого программно?
Пожалуйста, направьте меня.
Спасибо!
Ответ №1:
Вот один из способов:
- Начните захват видеокадров с помощью AVCaptureSession AVCaptureVideoDataOutput
- Преобразуйте кадры в текстуры OpenGL для отображения
- Напишите GLSL-шейдеры для каждого желаемого эффекта и примените к текстурам с шага 2
- Считайте текстуры эффект и записывайте в файл фильма
- Оптимизируйте, пока производительность не станет достаточной
- переход 5
5, вероятно, самый важный шаг. Вам нужно настроить алгоритм, качество видео, размер текстуры, частоту кадров, шейдеры и т.д.
Наслаждайтесь!
Комментарии:
1. Мое приложение не является приложением OpenGL.
2. Я не думаю, что вы можете избежать OpenGL здесь.
3. На шаге 4 — как бы вы отнеслись к считыванию текстур и сохранению в файл? UIImage? что-то еще?
4. либо glReadPixels> CGBitmapContext > CGImage > UIImage > UIImagePNGRepresentation, либо RenderTexture в CVOpenGLESTextureCache, управляемом CVPixelBuffer, а затем CGBitmapContext и т.д., и т.п., и т.п. Хотя это кажется ужасно длинным, я уверен, что вы могли бы найти более простое решение с меньшим количеством копий. p.s. вероятно, это должен быть новый вопрос.