2012-12-26 47 views
7

मैं AVCaptureSession के लिए नया हूँ और बेहतर है कि यह कैसे के साथ काम करने को समझने के लिए कामना करता हूं। इसलिए मैंने वीडियो स्ट्रीम को अलग-अलग CIImages के रूप में कैप्चर करने में प्रबंधित किया और उन्हें UIImages में परिवर्तित कर दिया। अब मैं फ़्रेम प्रति सेकेंड कैप्चर की संख्या प्राप्त करने में सक्षम होना चाहता हूं और अधिमानतः इसे सेट करने में सक्षम होना चाहता हूं।आईओएस AVCaptureSession - प्रति सेकंड फ्रेम की संख्या कैसे प्राप्त/सेट करें?

किसी भी विचार है कि कैसे करना है?

उत्तर

7

आप मूल्य सेट करने के लिए AVCaptureConnection के videoMinFrameDuration एक्सेसर का उपयोग कर सकते हैं।

AVCaptureConnection documentation

outputAVCaptureVideoDataOutput वस्तु होने पर विचार करें देखें।

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); 

अधिक जानकारी, अब मान्य नहीं है इस SO question

+0

मैं आपसे सहमत हूँ –

+0

मेरी एफपीएस की गारंटी मेरी न्यूनतम/अधिकतम मान नीचे नहीं छोड़ करने के लिए है? न्यूनतम और अधिकतम की बजाय मैं अपने वर्तमान वास्तविक एफपीएस कैसे प्राप्त कर सकता हूं? –

+0

@TylerPfaff आपको अपने प्रश्न का उत्तर मिला? – Crashalot

10

AVCaptureConnection's videoMinFrameDuration में मेरा उत्तर देखें।

आप सहायक विडियो फ़्रेम दर पर्वतमाला का पता लगाने के AVCaptureDevice गुणों का उपयोग कर सकते हैं और गुणों का उपयोग करके न्यूनतम और अधिकतम फ़्रेम दर प्रदान कर सकते हैं।

device.activeFormat.videoSupportedFrameRateRanges वापसी सभी वीडियो फ्रेम दरों डिवाइस के द्वारा समर्थित पर्वतमाला।

device.activeVideoMinFrameDuration और device.activeVideoMaxFrameDuration फ्रेम अवधि निर्दिष्ट करने के लिए उपयोग किया जा सकता है।