捕获视频而不显示实际的视频源

时间:2012-07-05 14:48:00

标签: iphone objective-c ios video camera

所以我有一个应用程序,可以使用前置iphone相机捕获视频,然后实时处理视频输入。但是,我要做的是让这个过程在后台运行并将其他控件放在屏幕上。例如,假设我想运行相机并处理图像输入,但我希望用户看到黑屏,上面有一些按钮。关于如何做到这一点的任何想法?

2 个答案:

答案 0 :(得分:16)

正因为如此,我们得到了正确的术语,“在后台”,您的意思是在应用程序处于前台时运行相机捕获,但不显示实际的视频源。这是可能的,但我想说清楚,如果你将整个应用程序移到后台,那么你将无法访问相机。

有几种方法可以做到这一点,但我花费最多的时间是通过AV Foundation抓取视频(或照片)帧。使用AVCaptureDevice和AVCaptureSession,您可以获取视频帧并将其路由到编码器,以便保存到磁盘或使用您自己的自定义代码进行处理。这些都不需要在屏幕上显示摄像机输入,因此您可以放置​​任何您喜欢的界面并进行此视频录制或照片捕获,而无需任何屏幕指示。

我要提醒您,您应该向用户明确说明您正在做什么,这样您就不会冒着侵犯他人隐私的风险。 Apple没有对那些做这件事的人做出善意的反应(理由很充分)。

我在我的开源GPUImage视频和照片处理框架中封装了很多内容,因此您可以查看GPUImageVideoCamera类的代码,以了解如何配置捕获输入。我将视频帧关闭到OpenGL ES以应用过滤器和其他处理操作,但如果您只是想进行自己的编码或处理,则可以忽略它的一部分。

答案 1 :(得分:1)

来自Apple的文档的例子: http://developer.apple.com/library/ios/#samplecode/PhotoPicker/Introduction/Intro.html 还有自定义相机界面的方法。