3

AVCaptureSessionを使用して分析目的でAVCaptureVideoDataOutputを介してビデオフレームをキャプチャしたいのですが、その結果に基づいて、AVCaptureStillImageOutputを介して静止画像を即座に自動的に取得することが決定されます。したがって、基本的に、両方のキャプチャ出力は、最高の解像度のプリセットAVCaptureSessionPresetPhotoを使用して、AVCaptureSessionインスタンスに追加されます(ドキュメントに記載されている写真、ビデオ852x640の場合-ドキュメントによると、サポートされていませんが、とにかく機能します)。AVCaptureSessionPresetPhotoを使用する2つ目の理由は、「視野」が他の高品質のプリセットよりも拡張され、カメラの近くにオブジェクトを保持して安定した保持を容易にするためです。

iOS 5.1がリリースされるまではすべて正常に機能し、静止画を撮影するときに品質が大幅に低下しました。静止画の解像度が640x480に下がりました。AVCaptureSessionにビデオデータ出力を追加せずに、ボタンを使用して手動で静止画像を撮影してみました。これにより、高品質の画像が再び提供されます(期待どおり)。

この問題の解決策のヒントを提供してくれて本当に感謝しています!!

ありがとう

PS:キャプチャセッションと出力のセットアップは、AVCamなどの他のサンプルアプリに従って行われました。したがって、セットアップの構成に問題があるとは思われません。

4

1 に答える 1

1

ビデオのフレームレートが固定値に設定されていて、明らかに高すぎて期待どおりに処理できないため、問題はすでに解決されています。iOS5.1にはスロットルが組み込まれているようです。責任のあるAVCaptureConnectionのvideoMinFrameDurationとvideoMaxFrameDurationの値を削除すると、問題は解決しました。

于 2012-07-16T09:28:24.477 に答える