是否有人知道如何使用AVFoundation(AVCaptureStillImageOutput)在自定義iOS相機中設置自定義分辨率?AVCaptureSession指定自定義分辨率
我知道你可以使用AVCaptureSession來選擇一個預置,但是我需要920x920的輸出分辨率(不是由預置提供)。目前我使用AVCaptureSessionPresetHigh並調整了UIImage的大小,但似乎很愚蠢,而且還有很多額外的不必要的處理。
是否有人知道如何使用AVFoundation(AVCaptureStillImageOutput)在自定義iOS相機中設置自定義分辨率?AVCaptureSession指定自定義分辨率
我知道你可以使用AVCaptureSession來選擇一個預置,但是我需要920x920的輸出分辨率(不是由預置提供)。目前我使用AVCaptureSessionPresetHigh並調整了UIImage的大小,但似乎很愚蠢,而且還有很多額外的不必要的處理。
你不能,但你可以做的是通過所有的AVCaptureDeviceFormat
正在找一個更接近你的分辨率迭代。 要獲得所有可用格式的完整列表,只需使用屬性-formats
查詢捕獲設備。
從蘋果這個例子說明了如何挑選最好的幀速率:
- (void)configureCameraForHighestFrameRate:(AVCaptureDevice *)device
{
AVCaptureDeviceFormat *bestFormat = nil;
AVFrameRateRange *bestFrameRateRange = nil;
for (AVCaptureDeviceFormat *format in [device formats]) {
for (AVFrameRateRange *range in format.videoSupportedFrameRateRanges) {
if (range.maxFrameRate > bestFrameRateRange.maxFrameRate) {
bestFormat = format;
bestFrameRateRange = range;
}
}
}
if (bestFormat) {
if ([device lockForConfiguration:NULL] == YES) {
device.activeFormat = bestFormat;
device.activeVideoMinFrameDuration = bestFrameRateRange.minFrameDuration;
device.activeVideoMaxFrameDuration = bestFrameRateRange.minFrameDuration;
[device unlockForConfiguration];
}
}
}
有沒有辦法在一個自定義分辨率據我所知捕捉。您將不得不自己縮放,然後以目標格式對其進行編碼。 – 2012-03-23 00:37:58