2012-06-13 31 views
3

使用AVCaptureSession我想通過AVCaptureVideoDataOutput捕獲視頻幀以進行分析,並根據結果決定通過AVCaptureStillImageOutput自動拍攝靜止圖像。所以基本上,兩個捕獲輸出都添加到AVCaptureSession實例中,使用預設的AVCaptureSessionPresetPhoto獲得最佳分辨率(照片如文檔所述,對於視頻852x640-文檔說它不受支持但仍然可用)。使用AVCaptureSessionPresetPhoto的第二個原因是因爲「視野」比其他高質量預設更加擴展,允許將物體保持在距離相機較近的位置,以便輕鬆穩定保持)。iOS爲視頻數據和照片合併捕獲輸出

這一切都運行良好,直到iOS 5.1發佈,這導致在拍攝靜止圖像時質量明顯降低。靜止圖像的分辨率已降至640x480。我嘗試使用按鈕手動拍攝靜止圖像,但未將視頻數據輸出添加到AVCaptureSession中,AVCaptureSession再次提供高質量圖像(如預期的那樣)。

我真的很感謝給這個問題的解決方案提示!

感謝

PS:捕獲會話和輸出的設置是根據其他樣本應用程序,如AVCam等,所以我並不在配置設置懷疑的問題做。

回答

1

它已經解決了,問題出現了,因爲視頻幀率設置爲固定值,顯然太高而無法按預期進行處理。 iOS 5.1似乎有一個油門合併。一旦刪除了負責任的AVCaptureConnection的videoMinFrameDuration和videoMaxFrameDuration的值,問題就解決了。