2 Stimmen

AVCaptureSession benutzerdefinierte Auflösung angeben

Weiß jemand, wie man eine benutzerdefinierte Auflösung in einer benutzerdefinierten iOS-Kamera mit AVFoundation (AVCaptureStillImageOutput) festlegen?

Ich weiß, dass man mit AVCaptureSession eine Voreinstellung auswählen kann, aber ich benötige eine Ausgabeauflösung von 920x920 (die nicht durch eine Voreinstellung bereitgestellt wird). Derzeit verwende ich AVCaptureSessionPresetHigh und ändere die Größe des UIImage nach, aber das scheint dumm und eine Menge zusätzliche, unnötige Verarbeitung.

1voto

Andrea Punkte 25384

Das können Sie nicht, aber Sie können sich durch alle AVCaptureDeviceFormat Sie suchen diejenige, die Ihrer Entschließung am nächsten kommt. Um eine vollständige Liste aller verfügbaren Formate zu erhalten, fragen Sie das Aufnahmegerät einfach mit der Eigenschaft -formats .
Dieses Beispiel von Apple zeigt, wie man die beste Bildrate auswählt:

- (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];
        }
    }
}

0voto

Alex Salom Punkte 3054

Bitte sehen Sie sich eine meiner alten Fragen an, die ich selbst beantwortet habe, vielleicht hilft sie Ihnen.

Erfassen von Bildern aus Videos mit AVFoundation

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X