Итак, в моем приложении я могу показать эффекты (например, фильтр размытия, гауссовский) для видео, которое приходит из камеры, используя GPUImage.
В принципе, я (библиотека) будет принимать данные от камеры, получать необработанные байтовые данные, преобразовывать их в формат RGBA из формата YUV, а затем применять эффекты к этому изображению и отображать на Surface
of GLSurfaceView
, используя OpenGL. наконец, для пользователя, это похоже на видео с эффектами.
Теперь я хочу записать кадры Surface
в качестве видео, используя MediaCodec API.
но этот обсуждение говорит, что мы не можем передать предопределенный Surface
в MediaCodec
.
Я видел несколько примеров в bigflake, где он создает Surface
с помощью MediaCodec.createInputSurface()
, но для меня Surface
происходит от GLSurfaceView
.
Итак, как я могу записать кадры Surface
в качестве видео?
Я буду записывать аудио параллельно, объединять это видео и аудио с помощью FFMPEG и представлять пользователю как видео с эффектами.