2012-12-26 9 views
7

Ich bin neu bei AVCaptureSession und möchte besser verstehen, wie man damit arbeitet. So habe ich es geschafft, den Video-Stream als getrennte CIImages zu erfassen und in UIImages umzuwandeln. Jetzt möchte ich in der Lage sein, die Anzahl der Bilder pro Sekunde zu erfassen und vorzugsweise zu setzen.iOS AVCaptureSession - Wie erhalte ich die Anzahl der Bilder pro Sekunde?

Irgendeine Idee, wie man das macht?

Antwort

7

Sie können AVCaptureConnectionvideoMinFrameDuration Accessor verwenden, um den Wert festzulegen.

Siehe AVCaptureConnection documentation

Betrachten outputAVCaptureVideoDataOutput Objekt sein.

AVCaptureConnection *conn = [output connectionWithMediaType:AVMediaTypeVideo]; 

if (conn.isVideoMinFrameDurationSupported) 
    conn.videoMinFrameDuration = CMTimeMake(1, CAPTURE_FRAMES_PER_SECOND); 
if (conn.isVideoMaxFrameDurationSupported) 
    conn.videoMaxFrameDuration = CMTimeMake(1, CAPTURE_FRAMES_PER_SECOND); 

Weitere Informationen, siehe meine Antwort auf diese SO question

+0

ich stimme zu –

+0

Ist meine fps garantiert nicht unter meine Min/Max-Werte fallen? Wie bekomme ich meine aktuellen tatsächlichen fps, anstatt die min und max? –

+0

@TylerPfaff hast du eine Antwort auf deine Frage gefunden? – Crashalot

10

AVCaptureConnection's videoMinFrameDuration veraltet.

Sie können die Eigenschaften AVCaptureDevice verwenden, um unterstützte Videobildfrequenzbereiche zu erkennen und mithilfe von Eigenschaften minimale und maximale Bildfrequenzen zuweisen.

device.activeFormat.videoSupportedFrameRateRanges Alle vom Gerät unterstützten Videobildratenbereiche zurückgeben.

device.activeVideoMinFrameDuration und device.activeVideoMaxFrameDuration können zur Festlegung der Bilddauern verwendet werden.

Verwandte Themen