录制时逐帧处理Android视频

时间:2012-01-12 17:04:49

标签: android video effects frames

我要做的是创建一个在录制时为视频添加效果的应用程序。有没有办法让回调方法接收帧,然后对它应用一个效果并记录下来。 Android Market(Videocam Illusion)目前有一个应用程序声称它是唯一可以执行此操作的应用程序。任何人都知道Videocam Illusion是如何做到这一点的,或者有一些链接指向概述Android视频处理的可能教程?

这是一个没有答案的类似问题:

Android preview processing while video recording

1 个答案:

答案 0 :(得分:11)

不幸的是,(除非我不知道API提供的其他方法)这样做的方法是使用直接流到相机并通过使用某种本地代码来修改流来操纵它。我之前在制作眼镜机时做过类似的事情 - 所以我会告诉你它基本上是如何工作的。

  1. 使用NDK打开流(可能是api,具体取决于实现)
  2. 修改流的字节 - 每个帧作为单独的数据包发送。您必须从相机中抓取每个数据包,然后进行修改。您可以替换颜色,也可以翻译。您还可以使用OpenGL通过添加玻璃效果等内容来完全修改图像。
  3. 将图像展平回来
  4. 将图像发送到要显示的视图控制器。
  5. 您必须注意的一件事是数据包的加载和发送&对于每帧,图像以约1/30秒发生。所以代码必须进行极其优化。