如何在 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?)
谢谢,
奥里
有两种方式可以理解你的问题:
- 您想临时叠加带有附加信息的视频。
这可以使用标准布局程序完成:
使用内置 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>
- 您想将附加信息添加到视频本身。
这显然要困难得多。您可以使用 OpenCV for this. For information on OpenCV+Android visit their website。
更新: 正如 this answer, the ExtractMpegFramesTest 中所指出的,您可能会感兴趣
我正在尝试在 Android 应用程序内的 mp4 视频之上添加叠加层 images/text。 大多数解决方案都指向 FFmpeg(或 appunits AndroidFFmpeg),但不稳定且维护起来非常复杂。 有使用 Android SDK 的本机方法吗? (MediaCodec?MediaMuxer?)
谢谢, 奥里
有两种方式可以理解你的问题:
- 您想临时叠加带有附加信息的视频。 这可以使用标准布局程序完成:
使用内置 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>
- 您想将附加信息添加到视频本身。 这显然要困难得多。您可以使用 OpenCV for this. For information on OpenCV+Android visit their website。
更新: 正如 this answer, the ExtractMpegFramesTest 中所指出的,您可能会感兴趣