3

我已经检查了这个问题。

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

请为 SDK 或 NDK 提供任何库建议。

4

1 回答 1

3

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

我建议你看看FFmpeg。它提供了处理多媒体的能力。chromakey过滤器可以帮助您去除绿色背景(或您想要的任何颜色)。然后,如果需要,您可以使用另一个视频作为新背景。请参阅blend过滤器文档。

过滤器是一个不错且强大的概念。它们可以通过ffmpeg工具命令行或libavfilterAPI 使用。对于前一种情况,您应该找到ffmpeg为 android 编译的二进制文件并使用传统Runtime.exec()的 . 对于后一种情况-您需要编写本机代码,以创建适当的过滤器图并执行处理。此代码必须与 FFmpeg 库链接。

于 2016-10-27T07:00:22.230 回答