2012-12-26 17 views
7

Tôi mới tham gia AVCaptureSession và muốn hiểu rõ hơn về cách làm việc với nó. Vì vậy, tôi đã quản lý việc nắm bắt luồng video dưới dạng CIImages riêng biệt và chuyển đổi chúng thành UIImages. Bây giờ tôi muốn có thể nhận được số lượng Khung hình/giây được chụp và tốt nhất là có thể thiết lập nó.iOS AVCaptureSession - Cách nhận/đặt số khung hình trên giây được ghi lại?

Bất kỳ ý tưởng nào về cách thực hiện điều đó?

Trả lời

7

Bạn có thể sử dụng số truy cập AVCaptureConnection 's videoMinFrameDuration để đặt giá trị.

Xem AVCaptureConnection documentation

Cân nhắc output được AVCaptureVideoDataOutput đối tượng.

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

Thông tin thêm, xem câu trả lời của tôi trong này SO question

+0

tôi đồng ý với bạn –

+0

Fps của tôi có được đảm bảo không giảm xuống dưới giá trị tối thiểu/tối đa của tôi không? Làm thế nào tôi có thể nhận được fps thực tế hiện tại của tôi, chứ không phải là min và max? –

+0

@TylerPfaff bạn có tìm thấy câu trả lời cho câu hỏi của mình không? – Crashalot

10

AVCaptureConnection's videoMinFrameDuration bị phản đối.

Bạn có thể sử dụng AVCaptureDevice thuộc tính để phát hiện phạm vi tốc độ khung hình video được hỗ trợ và có thể chỉ định tỷ lệ khung hình tối thiểu và tối đa bằng thuộc tính.

device.activeFormat.videoSupportedFrameRateRanges trả về tất cả các phạm vi tốc độ khung hình video được thiết bị hỗ trợ.

device.activeVideoMinFrameDurationdevice.activeVideoMaxFrameDuration có thể được sử dụng để chỉ định thời lượng khung.

Các vấn đề liên quan