Добавить наложение при записи видео на Android
Я хочу записывать видео с камеры на моем устройстве Android. Мне нужно добавить оверлейное изображение поверх записанного фильма. В iOS я бы использовал GPUImage. В Android я нашел Android GPUImage. Я пытался использовать его, но не нашел способа добавить фильтр во время записи видео. В приведенном примере я могу добавить фильтры только для фотографирования. Есть ли способы записи видео с фильтрами с помощью Android GPUImage? Существуют ли другие способы добавления изображений поверх видео в режиме реального времени? Если нет, есть ли способы добавить наложение изображений поверх записанного видео при постобработке?
2 ответа
Вы можете добавить наложение изображения на видео, используя фильтр наложения.
О записи видео: библиотека android-gpuimage не поддерживает ее, но вы можете попробовать использовать библиотеку android-gpuimage-videorecording. Это форк gpu-изображения для Android, который также обеспечивает функцию записи видео
увидеть класс GPUImageMovieWriter
Это должно указать вам правильное направление для разработки вашего собственного видео писателя поверх GPUImage.
Идея состоит в том, чтобы:
- рисовать на текущей поверхности экрана
- переключиться на входную поверхность энкодера и снова нарисовать буфер предыдущего кадра
- переключиться обратно на поверхность экрана
другие полезные ссылки: EGL Surface Helper, Media Encoder
Этот проект ( MagicCamera) имеет много входных фильтров. Вы можете написать свой собственный фрагментный шейдер для наложения изображения на текстуру камеры (аналогично MagicN1977Filter). Это также включает в себя запись видео.