I'm trying to add overlay images/text on top of mp4 videos inside an Android application.
Most solutions point to FFmpeg (or appunits AndroidFFmpeg) but isn't stable and very complicated to maintain.
Is there a native way to do this using the Android SDK? (MediaCodec? MediaMuxer?)
Thank you,
Ori
There are two ways to understand your question:
- You want to temporarily superimpose video with additional information.
This can be done using the standard layout procedure:
Use the built-in VideoView. You might need to wrap the textView /imageView in an additional layout to push it to the front:
<VideoView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/videoView"
android:background="#00000000"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|center_horizontal"
android:orientation="horizontal">
<TextView
android:id="@+id/txt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Text"/>
</LinearLayout>
- You want to add the additional information to the video itself.
This is obviously much more difficult. You could use OpenCV for this. For information on OpenCV+Android visit their website.
Update: As pointed out in this answer, the ExtractMpegFramesTest might be interesting for you