我已经查过this的问题。Android视频删除色度键背景
这是非常相似的: 我想用安卓相机录制视频。 之后,用库去除背景,这是与色度键。 首先,我认为我应该使用android NDK以逃离SDK内存限制并使用整个内存。 视频的长度很短,几秒钟也许可以处理它。 我倾向于使用SDK实现并设置android:largeHeap="true"
,因为.so文件体系结构不匹配。
请提供SDK或NDK的任何库建议。
我已经查过this的问题。Android视频删除色度键背景
这是非常相似的: 我想用安卓相机录制视频。 之后,用库去除背景,这是与色度键。 首先,我认为我应该使用android NDK以逃离SDK内存限制并使用整个内存。 视频的长度很短,几秒钟也许可以处理它。 我倾向于使用SDK实现并设置android:largeHeap="true"
,因为.so文件体系结构不匹配。
请提供SDK或NDK的任何库建议。
IMO你应该更喜欢基于NDK的解决方案,因为视频处理是一个消耗CPU的操作,Java代码不会给你更好的性能。此外,最流行和可靠的媒体处理库通常用C或C++编写。我建议你看看FFmpeg。它提供了应对多媒体的能力。 chromakey
过滤器可以帮助您删除绿色背景(或任何你想要的颜色)。然后,如果需要,您可以使用另一个视频作为新背景。请参阅blend
过滤器文档。
Filters是一个很好的和强大的概念。它们可以通过ffmpeg
工具命令行或通过libavfilter
API使用。对于前一种情况,您应该找到为Android编译的ffmpeg
二进制文件,并使用传统的Runtime.exec()
运行它。对于后一种情况 - 您需要编写本机代码,这会创建适当的过滤器图并执行处理。此代码必须链接到FFmpeg库。
我想试试这个。我是android新手。所以它有点混淆你写的东西。你能否指定我可以迅速进行的确切步骤?我会非常感激你。 –