我是AVCaptureSession的新手,希望更好地理解如何使用它。 所以我管理捕捉視頻流作爲分離的CIImages並將其轉換爲UIImages。 現在我希望能夠獲得每秒捕獲的幀數,並且最好能夠設置它。iOS AVCaptureSession - 如何獲取/設置每秒記錄的幀數?
任何想法如何做到這一點?
我是AVCaptureSession的新手,希望更好地理解如何使用它。 所以我管理捕捉視頻流作爲分離的CIImages並將其轉換爲UIImages。 現在我希望能夠獲得每秒捕獲的幀數,並且最好能夠設置它。iOS AVCaptureSession - 如何獲取/設置每秒記錄的幀數?
任何想法如何做到這一點?
您可以使用AVCaptureConnection
的videoMinFrameDuration
訪問器來設置值。
見AVCaptureConnection documentation
考慮output
是AVCaptureVideoDataOutput
對象。
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
AVCaptureConnection's videoMinFrameDuration
已被棄用。
您可以使用AVCaptureDevice
屬性檢測支持的視頻幀速率範圍,並可以使用屬性分配最小和最大幀速率。
device.activeFormat.videoSupportedFrameRateRanges
返回設備支持的所有視頻幀速率範圍。
device.activeVideoMinFrameDuration
和device.activeVideoMaxFrameDuration
可用於指定幀持續時間。
我同意你 –
我的fps是否保證不會低於我的最小/最大值?我如何獲得當前的實際fps,而不是最小和最大? –
@TylerPfaff你找到了你的問題的答案? – Crashalot