あなたがすることはできませんが、何を行うことができますことはあなたの解像度に近い1を探しているすべてのAVCaptureDeviceFormat
Sを反復処理です。 利用可能なすべてのフォーマットの完全なリストを取得するには、プロパティ-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];
}
}
}
:
アップルからこの例では、最高のフレームレートを選択する方法を示しています。あなた自身でスケーリングしてから、ターゲットフォーマットでエンコードする必要があります。 –