MAC OS X:使用AVCaptureSession的sessionPreset设置外部USB摄像头分辨率无效。

6
我正在尝试使用以下代码为捕获会话设置相机的分辨率:
[session setSessionPreset:AVCaptureSessionPresetLow];  // or any others resolutions

似乎没有什么区别。它总是使用相机可以提供的最高分辨率。这是一款符合UVC标准的USB相机,不是由苹果制造。

问题:setSessionPreset能够应用于外部USB非苹果相机吗?还是我的问题出在其他方面?

编辑: 我也尝试了这个测试:

if ([session canSetSessionPreset:AVCaptureSessionPresetLow])
{
    NSLog(@"can presetlow");    // this part got called.
    [session beginConfiguration];
    session.sessionPreset = AVCaptureSessionPresetLow;
    [session commitConfiguration];
}
else
{
    NSLog(@"no, can't presetlow");
}

赏金问题:在这种情况下如何设置相机分辨率?


你具体使用的是哪款相机? - Daniel Saban
其中之一来自eBay。 - user523234
我的建议是:如果你有能力,从一个已知能够满足你需求的相机开始。 - Daniel Saban
1个回答

2

这取决于相机的情况,有些相机可能无法实现。UVC兼容并不意味着支持所有功能。

http://www.mac-compatible-web-cam.com/?ID=McRmr2

根据您的应用程序,一种解决方法可能是在代码中获取高分辨率图像并将其转换为低分辨率。


我一直在进行捕获并将其转换为较低分辨率。但由于应用程序的性质,我尽可能地避免了该过程。 - user523234

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接