Добавить наложение при записи видео на Android

Я хочу записывать видео с камеры на моем устройстве Android. Мне нужно добавить оверлейное изображение поверх записанного фильма. В iOS я бы использовал GPUImage. В Android я нашел Android GPUImage. Я пытался использовать его, но не нашел способа добавить фильтр во время записи видео. В приведенном примере я могу добавить фильтры только для фотографирования. Есть ли способы записи видео с фильтрами с помощью Android GPUImage? Существуют ли другие способы добавления изображений поверх видео в режиме реального времени? Если нет, есть ли способы добавить наложение изображений поверх записанного видео при постобработке?

2 ответа

Вы можете добавить наложение изображения на видео, используя фильтр наложения.

О записи видео: библиотека android-gpuimage не поддерживает ее, но вы можете попробовать использовать библиотеку android-gpuimage-videorecording. Это форк gpu-изображения для Android, который также обеспечивает функцию записи видео

Android-gpuimage-видеозаписи

увидеть класс GPUImageMovieWriter

Это должно указать вам правильное направление для разработки вашего собственного видео писателя поверх GPUImage.

Идея состоит в том, чтобы:

  • рисовать на текущей поверхности экрана
  • переключиться на входную поверхность энкодера и снова нарисовать буфер предыдущего кадра
  • переключиться обратно на поверхность экрана

другие полезные ссылки: EGL Surface Helper, Media Encoder

Этот проект ( MagicCamera) имеет много входных фильтров. Вы можете написать свой собственный фрагментный шейдер для наложения изображения на текстуру камеры (аналогично MagicN1977Filter). Это также включает в себя запись видео.

Другие вопросы по тегам