Android 视频移除色键背景

Android video remove chroma key background

我已经检查了 this 个问题。

非常相似: 我想用 android 相机录制视频。 之后,使用库删除带有色度键的背景。 首先我想我应该使用 android NDK 来摆脱 SDK 内存限制并使用整个内存。 视频的长度很短,几秒钟,所以也许能够处理它。 我更愿意使用 SDK 实现并设置 android:largeHeap="true" ,因为 .so 文件架构不匹配。

请提供任何关于 SDK 或 NDK 的库建议。

IMO,您应该更喜欢基于 NDK 的解决方案,因为视频处理是一项 CPU 消耗操作,并且 java 代码不会为您提供更好的性能。此外,最流行和最可靠的媒体处理库通常是用 C 或 C++ 编写的。

我建议您看一下 FFmpeg. It offers reach abilities to cope with multimedia. chromakey filter may help you to remove green background (or whatever color you want). Then you can use another video as new background, if needed. See blend 过滤器文档。

Filters are a nice and powerful concept. They may be used both via ffmpeg tool command line or via libavfilterAPI。对于前一种情况,您应该找到 ffmpeg 为 android 和 运行 使用传统 Runtime.exec() 编译的二进制文件。对于后一种情况 - 您需要编写本机代码,以创建适当的过滤器图并执行处理。此代码必须链接到 FFmpeg 库。