【发布时间】:2011-02-04 01:27:02
【问题描述】:
我的目标是编写一个自定义的相机视图控制器:
- 可以使用后置摄像头和前置摄像头(如果有的话)在所有四个界面方向上拍照。
- 正确旋转和缩放预览“视频”以及全分辨率照片。
- 允许对预览“视频”和全分辨率照片应用(简单)效果。
我之前的努力记录在this question。我最近的尝试是修改 Apple 的示例 GLVideoFrame(来自 WWDC 2010)。但是,当会话预设为 AVCaptureSessionPresetPhoto 时,我无法让 iPhone 4 正确显示预览“视频”。
有没有人尝试过或知道为什么该示例不适用于此预设?
Apple 的示例使用具有 640x480 视频尺寸和 1280x720 的默认纹理大小的预设。当预设为 AVCaptureSessionPresetPhoto 时,iPhone 4 后置摄像头仅提供 852x640。
预设为 AVCaptureSessionPresetPhoto 时的 iOS 设备相机视频/照片尺寸:
- iPhone 4 背面:视频为 852x640,照片为 2592x1936
- iPhone 4 正面:视频和照片为 640x480
- iPod Touch 4G 背面:视频和照片为 960x720
- iPod Touch 4G 正面:视频和照片为 640x480
- iPhone 3GS:视频为 512x384,照片为 2048x1536
更新
在将 Brad Larson 的 ColorTracking 示例 (blog post) 切换为使用 AVCaptureSessionPresetPhoto 时,我得到了相同的 garbled video 结果。
【问题讨论】:
-
当我将其作为 OpenGL ES 2.0 图像处理的示例进行展示时,我知道您在课堂上:sunsetlakesoftware.com/2010/10/22/…,但是您是否尝试过针对您想要的预设进行调整?如果我没记错的话,AVCaptureSessionPresetHigh 为后置摄像头返回了一个 720p 视频帧。
-
我一定会尝试的。修改 WWDC 示例代码以使用 1280x720 视频大小导致其阻塞,但照片预设实际上以低于此的分辨率提供帧。都是乱码,所以不清楚它是否以 15-30 FPS 的速度处理它们。
-
您的捕获会话中是否同时安装了前置和后置摄像头?也许它正在使用某种最小公分母图像大小。
-
明确地说,我并没有质疑或混淆视频尺寸,我只是让每个人都知道它们是什么。我会将它们全部添加到问题中。
-
@Dex 你能在这里重新发布你的答案或它的摘要,然后链接到完整的吗?我还没有机会尝试它,但这是我见过的最好的,所以我想接受一些东西。
标签: iphone opengl-es avcapturesession