1

我的目标是编写一个自定义的相机视图控制器:

  1. 可以使用后置摄像头和前置摄像头(如果有的话)在所有四个界面方向上拍照。
  2. 正确旋转和缩放预览“视频”以及全分辨率照片。
  3. 允许将(简单)效果应用于预览“视频”和全分辨率照片。

我以前的努力记录在这个问题中。我最近的尝试是修改 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 示例(博客文章)切换为使用 AVCaptureSessionPresetPhoto时,我得到了相同的乱码视频结果。

4

2 回答 2

1

问题是它AVCaptureSessionPresetPhoto现在是上下文感知的,并且根据您是显示视频还是静止图像捕获以不同的分辨率运行。

此模式的实时预览不同,因为它用额外的字节填充行。我猜这是某种硬件优化。

无论如何,您可以在这里看到我是如何解决问题的:

iOS CVImageBuffer 从 AVCaptureSessionDataOutput 失真,带有 AVCaptureSessionPresetPhoto

于 2011-11-20T00:47:42.390 回答
-2

AVCaptureSessionPresetPhoto 用于拍照,而不是捕获实时提要。你可以在这里阅读:http: //developer.apple.com/library/ios/#documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/03_MediaCapture.html

(我认为这实际上是两个不同的摄像头或传感器,因为它们的行为非常不同,而且在照片和 640x480 之间切换时会有几秒钟的延迟)。

你甚至不能同时使用这两个预设,在它们之间切换也是一件令人头疼的事情——如何在 AVFoundation Framework 中同时获得视频输出和完整的照片分辨率图像

HTH,虽然不是你想听到的......

奥德。

于 2011-05-17T16:59:50.483 回答