Add overlay while record video on Android

5.1k Views Asked by At

I want to record video by camera in my Android device. I need to add overlay image over recorded movie. In iOS I would use GPUImage. In Android I found Android GPUImage. I tried to use it but I didn't found any way to add any filter while video recording. In provided example I could add filters only for taking photos. Is there any ways to record video with filters with Android GPUImage? Is there any other ways to add images overlay over recording video in realtime? If not, is there any ways to add images overlay over recorded video in postprocessing?

2

There are 2 best solutions below

0
On

This project (MagicCamera) has many multiple input filters. You can write your own fragment shader to overlay an image on camera texture (similar to MagicN1977Filter). It also includes video recording.

0
On

You can add an overlay image on video using a blend filter.

About video recording: android-gpuimage library does not support it but you can try using the android-gpuimage-videorecording library. It is a fork of the gpu-image for android that provides also the video recording functionality

android-gpuimage-videorecording

see the GPUImageMovieWriter class

It should point you in the right direction for developing your own video writer on top of GPUImage.

The idea is to:

  • draw on current screen surface
  • switch to encoder input surface and draw previous frame buffer again on it
  • switch back to screen surface

other useful links: EGL surface helper, Media encoder