如何在 Android 中的视频顶部添加叠加图像或文本?

How can I add overlay images or text on top of videos in Android?

我正在尝试在 Android 应用程序内的 mp4 视频之上添加叠加层 images/text。 大多数解决方案都指向 FFmpeg(或 appunits AndroidFFmpeg),但不稳定且维护起来非常复杂。 有使用 Android SDK 的本机方法吗? (MediaCodec?MediaMuxer?)

谢谢, 奥里

有两种方式可以理解你的问题:

  1. 您想临时叠加带有附加信息的视频。 这可以使用标准布局程序完成:

使用内置 VideoView。您可能需要将 textView /imageView 包裹在一个额外的布局中以将其推到前面:

 <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>
  1. 您想将附加信息添加到视频本身。 这显然要困难得多。您可以使用 OpenCV for this. For information on OpenCV+Android visit their website

更新: 正如 this answer, the ExtractMpegFramesTest 中所指出的,您可能会感兴趣