Since I believe Android Studio now supports Python plugins &/or invoking Python scripts I personally would use MoviePy (https://zulko.github.io/moviepy/) as a wrapper around FFMPEG &
ImageMagick (https://www.imagemagick.org/script/index.php) - this combination will allow you to have a script that takes in an image or video, resizes it to a specified size, adds the text, (either scrolling it in or fading in/out or even with some special effects), then saves the output video. There are example scripts on the MoviePy site on how to do these. While you could do it yourself with FFMPEG & ImageMagick plus command line parameters I personally find using MoviePy much more clear & maintainable.
If you want the end user to be able to supply the image/video then you will need to set up a server somewhere that can take in the POSTed image and return the processed results.