假设您有20秒的视频(可能是使用设备相机拍摄的),并且您想要在视频中添加叠加层。
(叠加层只是一个普通的光栅图像,即Android Image
(doc)。)
您想要创建一个新视频,将叠加层作为视频图像的一部分,然后保存视频。
事实上,可以使用MediaCodec SDK来完成这项工作吗?
https://developer.android.com/reference/android/media/MediaCodec
在过去,你通常会使用FFMPEG来解决这个问题,但这很麻烦而且很慢。
MediaCodec可以在这里吗?
因为它是“新的”我只是找不到任何关于这个的信息.....
这可以使用MediaCodec。首先,看看DecodeEditEncode示例from here
此示例显示如何使用OpenGL ES着色器调整视图大小。您要做的是使用OpenGL ES着色器在视频上渲染叠加层。
MediaCodec can be found here上另一个很好的示例来源
在这里,您可以找到有关如何使用基本渲染技术的一些示例。看看硬件定标器练习器。
当视频部分启动并运行时,这可能是实际斗争开始的地方,因为在OpenGl ES中没有标准方法来渲染文本。我可能只是将文本绘制到Canvas并从中制作纹理,但可能很慢。
如果您有静态叠加层,例如水印,则可以事先创建它并作为资源发布。