2012-01-17 51 views
3

我試圖抓住框架並從Bodelin Proscope HR USB顯微鏡預覽視頻。我有一個簡單的Cocoa應用程序,使用AVCaptureSessionAVCaptureDeviceInput用於Proscope HR,AVCaptureVideoPreviewLayer顯示輸出。如何在Mac OS X Lion上使用AVCaptureSession從Bodelin ProScope HR捕獲幀?

所有這些與內置的iSight攝像頭都可以正常工作,但Proscope HR的輸出卻被混淆不清。

使用捆綁的Proscope軟件時,我有時會在嘗試使用更高分辨率時看到相同的瑕疵。我的懷疑是所用的硬件比較缺乏規格,這是由於在最低320x200分辨率的情況下,捆綁軟件以30fps捕捉,但當你提高分辨率時,幀速率會急劇下降,直到在640x480下達到15fps,最高分辨率達到1600x1200時降至3.75fps。編輯:我原本以爲或許AVCaptureSession嘗試的幀速率太高,但我已經證實(至少在理論上)捕獲會話正在請求AVCaptureDevice通告的幀速率。

我應該注意到,我已經嘗試了標題中定義的所有標準AVCaptureSessionPreset*常量預設,並且它們都沒有改進Proscope HR的結果。 (他們也不過似乎影響到內置iSight大約預期的方式。)

這裏是顯示了從ProScope HR亂碼輸出的抓屏:

ProScope HR output

和公正的比較,從一個普通的攝像頭輸出:

Generic WebCam output

+0

您能附上演示問題的簡短視頻嗎? – Kentzo 2012-01-19 18:47:19

回答

1

按照documentation你應該配置AVCaptureDevice而不是AVCaptureSession

編輯: AV框架是在IOKit之上開發的,它完全依賴於你沒有硬件問題的事實。就你而言,它看起來像你的問題的根源是硬件相關的,所以你應該考慮直接使用IOKit。

+0

我已經確認使用調試器,AVCaptureSession自動使用AVCaptureDevice功能...因此,我的目標是懷疑幀速率不好。 ProScope HR存在其他一些看似獨一無二的問題。 – 2012-01-20 15:21:58

+0

所以你試圖給AVCaptureDevice的activeVideoMinFrameDuration屬性賦值不同的值? – Kentzo 2012-01-20 17:38:28

+0

我做過了,它仍然沒有產生ProScope HR設備的任何可用輸出。我懷疑Bodelin的硬件有些不符合要求,儘管事實上他們宣稱它不需要特殊的MacOS X驅動程序。 – 2012-01-20 21:42:26